APRS是一种业余无线电协议,用于在无线电爱好者之间共享位置和其他信息。aprs-parser是npm上一款相当实用的APRS解析器,该包可以解析APRS数据流,并将其转换为可读的JSON格式。在本文中,我们将学习如何使用aprs-parser解析APRS数据流。
安装
aprs-parser可以使用npm进行安装,在控制台中执行以下命令即可安装:
npm install aprs-parser --save
解析
安装完成后,我们就可以开始使用aprs-parser解析APRS数据。在代码中引入模块并实例化:
const aprsParser = require('aprs-parser'); const parser = new aprsParser();
接下来,我们需要使用.aprs()方法解析数据,例如从串口中读取数据,或者解析从某个IP地址或域名上收到的数据包,如下所示:
-- -------------------- ---- ------- ---------- ----- ---------- - ---------------------- ----- ---- - --- ------------------------------------ - --------- ---- --- ------------------- -------- -- - -------------------- --- --------------- ------ -- - ------------------- --- --------- ----- ----- - ----------------- ----- ------ - --------------------------- -------------------- ----- ------ -- - ------------------ --- ------------------
.aprs()方法接收一个Buffer对象,我们可以使用Node.js提供的Buffer API将字符串转换为Buffer,例如:
const str = 'KG6WXD-1>APRS,TCPIP*,qAS,KG6WXD-2::BLN1 :test message'; parser.parse(Buffer.from(str));
解析结果
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位置数据的示例代码:
-- -------------------- ---- ------- ----- ---------- - ----------------------- ----- ------ - --- ------------- ----- -------- - -------------------------------------------------------------------------- ------------------- ---------------- - ----------------------------------- ----------------------------- --- ------------------------------------
输出结果如下:
VE6AB-9 { lat: '50.416666666666664', lng: '-115.039', symbolTable: '/', symbolCode: 'O', altitude: '9950' }
总结
aprs-parser是一款非常实用的npm包,用于解析APRS数据流和转换成JSON格式。在本教程中,我们介绍了如何安装、解析和检查aprs-parser的解析结果。希望这个教程能够帮助你进行APRS数据流的解析和使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005586281e8991b448d598f