#ham-radio #xml-parser #ham #xml-data #callsign #clublog

hamcall

业余无线电呼号分析器和 ClubLog XML 解析器

3 个不稳定版本

0.2.1 2024年2月24日
0.2.0 2023年10月31日
0.1.0 2023年9月24日

#2 in #ham

每月下载量 27

MPL-2.0 许可证

58KB
879 代码行数(不含注释)

业余无线电呼号分析器

该库实现了 ClubLog XML 文件的解析器。基于数据,实现了呼号的解析器,以获取进一步的信息,如实体名称、ADIF 标识符或大洲。

用法

examples/ 文件夹中的简单应用程序展示了库的基本用法。此外,这两个模块还提供了一些测试。这些测试假设在 data/clublog/cty.xml 路径下有 ClubLog XML 文件。主要使用 cty.xml 实现了,该文件列出了时间戳 2023-09-22T07:31:24+00:00,以及同时下载的 cty.xsd。最新测试的版本是 2023-11-25T20:31:27+00:00。文件未来的更改可能会破坏给定的代码。显然,除了 cty.xml 中的时间戳外,文件没有版本控制。

有关如何获取 cty.xml 或获取下载文件的 API 密钥,请查看 ClubLog 网站。

呼号分析

分析呼号并不容易。除了像DL1ABCF/DL1ABC这样的明显呼号之外,还有一些复杂的呼号,例如SV1DC/A(SV/A代表阿索斯山,SV代表希腊。这个确切的呼号对阿索斯山有效,但例如SV1ABC/A不一定代表阿索斯山),CE0Y/PG5M(哪个部分是前缀?)或F0BAU/FC(前缀在后面!)。提供的实现应该能够处理相当多的这种呼号,但绝不能假设它能正确分析所有呼号,尤其是非常特殊的呼号。您可以在下面的已知限制部分查看。如果您想了解哪些特殊呼号被覆盖,请查看测试。

无论如何,收到的QSL卡上列出的实体应被视为正确的。您也可以直接使用ClubLog的在线呼号分析器。尽管这里使用的数据是由他们提供的,但他们有时拥有XML文件中不包含的更多信息。

错误报告

如果您遇到一个库返回意外信息的呼号,例如错误的实体或大陆,或者呼号分析返回错误,首先请查看ClubLog XML文件并检查您的呼号是否与那里的信息相符。如果您能找到一个导致对呼号有不同解释的条目,请打开一个问题,包括您期望错误分析的方式错误的呼号,以及时间戳、ClubLog XML的日期以及根据哪个条目(参考record属性)您期望得到不同的信息。

已知限制

  • LS/A:阿根廷的呼号可能使用单个字符后缀,例如LS4AA/F。这可能也适用于其他国家。在这种情况下,额外的/F表示法国实体,这将实际上由呼号分析程序返回。仅使用ClubLog XML数据无法涵盖这些呼号来自阿根廷的事实,需要更多专门的规则,这超出了XML文件中的信息。
  • 3D2/RSV/A:ClubLog XML的前缀列表包含特殊条目,如SV/A3D2/R。到目前为止,这些前缀的解释并不像应该的那样清晰。如上所述,呼号SV1ABC/A可能不适用于阿索斯山(SV/A)。由于阿索斯山目前已被列入白名单,这不是什么大问题,但并非所有特殊前缀都引用了白名单中的实体。

依赖关系

~4.5–6.5MB
~117K SLoC