简介
LoRaWAN 是一种低功耗广域网络协议,用于连接大量低功耗设备,实现物联网的应用场景。Lora-device-payloader 是一个 npm 包,可以帮助开发者方便地将数据转换为 LoRaWAN 格式的可用负载。本文将详细介绍该 npm 包的使用。
安装
npm install lora-device-payloader
使用
该包中暴露一个函数 encode_payload()
, 它需要三个参数:payload
,fport
,appSkey
。其中 payload
是要发送的数据,fport
是数据的端口,appSkey
是应用密钥。
const { encode_payload } = require("lora-device-payloader"); const payload = "hello world"; const fport = 1; const appSkey = "2b7e151628aed2a6abf7158809cf4f3c"; const lorawanPayload = encode_payload(payload, fport, appSkey); console.log(lorawanPayload);
输出:
"f86c010068656c6c6f20776f726c64"
说明
该 npm 包将原始数据编码为 LoRaWAN 格式,具体格式为:
帧头 | DevAddr | FCtrl | FCnt | FOpts | FPort | FRMPayload | MIC |
---|---|---|---|---|---|---|---|
1 | 4 | 1 | 2 | 0-15 | 1 | 0-242 | 4 |
- 帧头:1 字节
- DevAddr:设备地址,4 字节
- FCtrl:帧控制,1 字节。其中,低 2 bit 为 ADR 标志位,第 3 bit 为 ACK 标识位,第 4 bit 为 FOpts 标志位,第 5 bit 为 FPending 标志位,第 6~8 bit 保留。
- FCnt:帧计数器,2 字节,可以防止重放攻击。
- FOpts:选项字段,可变长。
- FPort:数据端口,1 字节,用于区分不同的数据类型。
- FRMPayload:帧负载,可变长。
- MIC:信息完整性校验,4 字节,用于校验信息是否被篡改。
总结
本文介绍了 npm 包 lora-device-payloader 的使用方法,从安装到实际使用都进行了详细的介绍,让开发者可以更加便捷地实现 LoRaWAN 应用场景。同时,本文也对 LoRaWAN 数据包的格式进行了介绍,方便开发者理解数据在网络中的传输规则。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600553ad81e8991b448d0ea4