npm 包 aprs-parser 使用教程

阅读时长 5 分钟读完

APRS是一种业余无线电协议,用于在无线电爱好者之间共享位置和其他信息。aprs-parser是npm上一款相当实用的APRS解析器,该包可以解析APRS数据流,并将其转换为可读的JSON格式。在本文中,我们将学习如何使用aprs-parser解析APRS数据流。

安装

aprs-parser可以使用npm进行安装,在控制台中执行以下命令即可安装:

解析

安装完成后,我们就可以开始使用aprs-parser解析APRS数据。在代码中引入模块并实例化:

接下来,我们需要使用.aprs()方法解析数据,例如从串口中读取数据,或者解析从某个IP地址或域名上收到的数据包,如下所示:

-- -------------------- ---- -------
----------
----- ---------- - ----------------------
----- ---- - --- ------------------------------------ - --------- ---- ---

------------------- -------- -- -
    --------------------
---

--------------- ------ -- -
    -------------------
---

---------
----- ----- - -----------------
----- ------ - ---------------------------

-------------------- ----- ------ -- -
    ------------------
---

------------------

.aprs()方法接收一个Buffer对象,我们可以使用Node.js提供的Buffer API将字符串转换为Buffer,例如:

解析结果

aprs-parser将APRS数据解析为具有以下属性的JSON对象:

属性 描述
decoder.path 过滤前的从APRS数据流提取的原始路径。
decoder.body 过滤前的从APRS数据流中提取的原始body。
decoder.symbolTable 过滤前的原始符号表编号。
decoder.symbolCode 过滤前的未转义的原始符号编码。
details.packetType APC的类型:位置,对象,消息等。
details.source 发送APRS数据的呼号
details.destination 接收APRS数据的呼号
details.path 传输路径(图形符号打头)
details.base 包含有关所报告对象的信息(如高度,速度等)
details.body 文本消息或某些APRS对象的描述信息。
details.comment 额外评论(通常以"/"开头)。
position.lat 纬度
position.lng 经度
position.alt 高度(如果提供)
position.symbolTable ASCII字符表和符号: "/" 或""
position.symbolCode 原始APRS符号代码
telemetry(对象或位置) 附加信息,例如飞机的海拔,温度,湿度等。
course 方向(如果提供)

示例代码

以下是解析一个APRS位置数据的示例代码:

-- -------------------- ---- -------
----- ---------- - -----------------------
----- ------ - --- -------------

----- -------- - --------------------------------------------------------------------------

------------------- ---------------- -
    -----------------------------------
    -----------------------------
---

------------------------------------

输出结果如下:

总结

aprs-parser是一款非常实用的npm包,用于解析APRS数据流和转换成JSON格式。在本教程中,我们介绍了如何安装、解析和检查aprs-parser的解析结果。希望这个教程能够帮助你进行APRS数据流的解析和使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005586281e8991b448d598f

纠错
反馈