lorawan

一 星纵网关日志:

image

 二 收发确认标志:

lora_radio_driver提供SX126x/SX127x等LoRa芯片的驱动层支持,负责物理层通信;

lorawan_ed_stack是基于LoRaMAC-Node实现的终端设备协议栈,依赖前者完成射频操作

数据接收:通过lorawan_ed_app_callback_t 注册lorawan_ed_receive_message()函数,在该函数中释放事件标志LORAWAN_RX_DOWN,根据不同配置端口进行端口数据lorawan_ed_appdata_t解析【包含了接收信号的RSSI/SNR,可以据此实时分析信号质量】;

数据发送:

void OnTxDone( void ) {
    rt_event_send(tx_event, LORA_TX_OK);  // 触发事件标志
}
Lorawan节点发送成功确认

方法1:lora_radio_driverOnTxDone仅表示射频层发送完成

  • ‌中断触发点‌:在RadioEvents.TxDone回调函数(通常为OnTxDone)中设置事件标志。该回调由射频芯片(如SX126x/SX127x)的硬件中断触发,需在中断服务程序(ISR)中调用rt_event_send()发送LORA_TX_OK标志【注意用RT_IPC_FLAG_PRIO防止优先级反转】
  • ‌代码位置‌:需在驱动初始化时注册回调函数,例如:
    cCopy Code
     
    RadioEvents.TxDone = OnTxDone; // 注册发送完成回调 Radio.Init(&RadioEvents); // 初始化射频模块

方法2:lorawan_ed_stackOnTxDone表示节点协议层收到网关的ACK确认,MAC层确认(含ACK验证),这才是真正的发送成功标志。位置LoRaMacHandleTxDone函数内调用应用层回调

 
posted on 2025-08-22 16:03  杰瑞鼠  阅读(8)  评论(0)    收藏  举报