我的网关使用 Raspi 和 RFM95 配置,运行频率为 915 MHz。我正在使用 tfelkamp ( https://github.com/tftelkamp/single_chan_pkt_fwd )的单通道数据包转发器代码。
我的网关只检测它收到的第一条消息,然后忽略所有消息。它仍然连接到 TTN 服务器,但不再接收任何消息。
谁能解释这可能是什么原因?可能是因为 RFM95 休眠或代码不再转发来自收发器的消息。
谢谢
我的网关使用 Raspi 和 RFM95 配置,运行频率为 915 MHz。我正在使用 tfelkamp ( https://github.com/tftelkamp/single_chan_pkt_fwd )的单通道数据包转发器代码。
我的网关只检测它收到的第一条消息,然后忽略所有消息。它仍然连接到 TTN 服务器,但不再接收任何消息。
谁能解释这可能是什么原因?可能是因为 RFM95 休眠或代码不再转发来自收发器的消息。
谢谢
我遇到了类似的问题。请注意,您的发件人使用不同的频道,但以频道(0)开头。这是您收到的第一条成功消息。您的单通道接收器只能接收通道(0)。对于您的发件人,这里有一个解决此问题的方法
这听起来像是您的发射器使用跳频发送消息,而您的接收器没有正确处理它(或相反)。
Semtech 的 SX1272数据表第 4.1.1.8 章中的跳频定义:
当单个数据包的持续时间可能超过与最大允许信道停留时间相关的监管要求时,通常会使用跳频扩频 (FHSS)。这在美国操作中最为明显,其中 902 至 928 MHz ISM 频段为跳频操作提供了条件。[...]
如果您为您的节点使用 LMIC-Arduino 库,那么是的,默认情况下它在一个范围内传输,并且 single_chan_pkt_fwd 网关仅以您在 global_conf.json 或 .cpp 源中指定的频率接收(取决于您的选择的图书馆)。
假设您使用的是arduino-lmic库,请进行 Rainer 链接的此 TTN 论坛帖子中提到的更改/添加,这与我遇到的相同。
另外...您会在线程的下方找到此内容:在src > lmic > lmic.c
编辑以下内容:
void LMIC_disableChannel (u1_t channel) {
if( channel < 72+MAX_XCHANNELS )
//LMIC.channelMap[channel>>4] &= ~(1<<(channel&0xF)); // comment this one
LMIC.channelMap[channel/16] &= ~(1<<(channel&0xF)); // add this one
}
然后在通道 0 上选择一个频率,并为节点和数据包转发器设置该频率。这是此页面的表格片段。我选择了 902300000,它工作正常。
"freq": 902300000,
"spread_factor": 7,