node rfm9x
v1.0.1
Node.js模块与RFM9X LORA无线模块接口。旨在与Adafruit Radio引擎盖一起使用。
该代码仅在Raspberry Pi上进行了测试,但从技术上讲,该代码也可以在ONOFF和SPI设备支持的其他董事会上工作。
有关接收和发送数据的简单示例,请参见example/pingpong.js 。
这些模块导出一个类RFM9x 。
RFM9x代表Lora模块的类。构造函数不需要争论。
const rfm9x = require ( 'rfm9x' ) ;
const module = new rfm9x ( ) ;
await module . init ( { ... } ) ;debug - 输出SPI调试信息debug将此属性设置为true ,以将所有SPI通信打印到控制台。
注意:因为在大多数情况下, console.log()呼叫是同步的,因此可以影响时间!例如,这可能导致从发送到接收模式的切换足够慢,可以错过其他节点的响应。
init(options) - 初始化模块和洛拉设置startReceive() - 将Lora模块置于接收模式并启用receive事件stopReceive() - 将洛拉模块放在待机模式下,然后停止接收数据包send(payload) - 通过lora发送数据包getVersion() - 从模块获取芯片版本号init(options)options - 选项对象(请参见下文)。所有属性都是可选的,当省略时将使用默认值。初始化模块和LORA设置。在使用任何无线电功能之前,需要调用。
返回没有价值的诺言。
支持以下选项:
frequencyMhz MHz中的基本频率,默认值: 915preambleLength -lora preambenth在字节中的长度,默认值: 8bandwidthHz HZ中的洛拉带宽,默认值: 500000codingRate -lora编码率,有效值为5 (4/5)至8 (4/8),默认值: 5spreadingFactor factor -lora扩展因子,有效值为6至12 ,默认值: 7enableCrcChecking是否启用CRC检查传入数据包,默认值: falsetxPowerDb db中的发射器功率,有效值为5至23 (目前仅支持高功率模式),默认值: 23enableAgc是否启用自动增益控制,默认值: falseresetPin RFM9X RESET线连接到的GPIO PIN的数量,默认值: 25dio0Pin rfm9x dio0系列连接到的GPIO PIN的数量,默认值: 22dio1Pin目前未使用。 RFM9X DIO1系列连接到的GPIO PIN的数量,默认值: 23dio2Pin目前未使用。 RFM9X DIO2系列连接到的GPIO PIN的数量,默认值: 24spiSpeedHz HZ中SPI通信的速度,默认值: 100000txTimeoutMs最大时间以毫秒为等待数据包传输完成,默认值: 2000 startReceive()将LORA模块置于接收模式,并启用receive事件。
返回没有价值的诺言。
stopReceive()将Lora模块放在待机模式下,并停止接收数据包。
返回没有价值的诺言。
send(payload)payload - 最多255个字节的Buffer通过洛拉发送包装。
返回一个诺言,该诺言在传输完成后没有价值而没有价值。
注意:传输数据包后,模块会自动切换到备用模式。如果要在传输后继续接收数据包,则需要在完成变速箱后致电startReceive() 。
getVersion()从模块获取芯片版本号。
返回一个通过版本编号(单字体整数)解决的承诺。
receive(packet) - 收到Lora数据包时发射receiveError()到无效的Lora包装时发射receive(packet)收到洛拉数据包时发出的事件。
packet是包含以下属性的对象:
payload - 包含数据包内容的BufferrssiDb -DB中的数据包RSSIsnrDb数据包中的SNR receiveError()当收到Lora数据包但由于收到错误而被丢弃的事件(例如CRC检查失败)。