feat: 新增信号质量查询指令(sig)

1. 新增GWTOMD_CMD_SIGNAL(0x09)指令,Payload为空,GWAddr填0
2. 不依赖注册状态,同频段网关收到后返回SNR和RSSI
3. 传感器收到回应后读取本地SX1276的SNR/RSSI
4. 通过调试串口打印TX(上行)/RX(下行)两方向信号质量
5. 新增sig调试指令,内置设备忙状态保护
This commit is contained in:
2026-07-14 10:13:17 +08:00
parent 9f200e2e83
commit de545c9919
3 changed files with 111 additions and 0 deletions
+37
View File
@@ -840,6 +840,32 @@ static void DebugCmdReboot(int argc, char *argv[])
while(1);
}
/*****************************************************************************************
* Function: DebugCmdSignal
* Description: 信号质量查询
* Input: argc, 参数个数
argv, 参数列表
* Output: 无
*****************************************************************************************/
static void DebugCmdSignal(int argc, char *argv[])
{
DBG_LOG("\r\n");
if(argc > 1)
{
if(strcmp(argv[1], "?") == 0) {
DBG_LOG("Debug Cmd: sig\r\n");
DBG_LOG(" brief --> Query signal quality with gateway.\r\n");
return;
}
}
if(SGCP.GWStatus != GW_STATUS_IDLE) {
DBG_LOG("Device is busy, please try again later.\r\n");
return;
}
SGCP.GWStatus = GW_STATUS_SIGNAL;
}
void DebugCmdHelp(int argc, char *argv[])
{
DBG_LOG("\r\n");
@@ -988,6 +1014,16 @@ void DebugCmdHelp(int argc, char *argv[])
token = strtok(NULL, " ");
}
DebugCmdReboot(argc1, argv1);
memset(Data, 0x00, 10);
len = strlen("sig ?\0");
memcpy(Data, "sig ?\0", len);
token = strtok(Data, " ");
for(argc1 = 0; (token != NULL && argc1 < 10); argc1++) {
argv1[argc1] = token;
token = strtok(NULL, " ");
}
DebugCmdSignal(argc1, argv1);
}
const DBGFunType DebugFun[DEBUG_CMD_CNT] = {
@@ -1006,6 +1042,7 @@ const DBGFunType DebugFun[DEBUG_CMD_CNT] = {
"res", DebugCmdRestoreFactory,
"dch", DebugCmdChannel,
"reboot", DebugCmdReboot,
"sig", DebugCmdSignal,
};
#endif