2 Commits

Author SHA1 Message Date
YuanHongbin 9907a27ab7 fix(register): 注册payload合法性校验,拦截串台乱码注册
- 新增RegPayloadValid校验: SensorN非0/PayloadLen与条目数匹配/传感器类型白名单(SensorTypeDataLen表内且非保留)/MAC非全0全FF且非网关MAC/注册帧GWMac非空时必须与本网关匹配
- 频偏串台误解调的乱码帧几乎必然被拦截(随机类型命中合法类型概率约0.03%), 不再占用注册表槽位
- GWMac为全0/全FF视为未填放行, 兼容老固件; 已注册设备重注册路径不受影响
2026-09-08 10:07:29 +08:00
YuanHongbin 3045db0ef6 feat(lora): 宽频信道表扩展为120信道(433.1MHz~492.6MHz)
- sx127x.h: 信道宏CH0~CH119, 基准433100000ul+500kHz步进(CH0=433.1MHz, CH119=492.6MHz)
- sx127x.h: SX1276_CHANNEL_MAX 46 -> 120, LoraSetChannel范围检查自动跟随
- sx127x.c: gdwSx1276ChannelTbl信道表扩为120项
- sx127x.c: LoraSetFreqCent频率校验范围改为433.1MHz~492.6MHz(原470.1下限会拒绝CH0~CH73)
- main.c: 频率校验失败回退默认值改为CH0(433.1MHz)
- 注意: 信道号与窄频版(develop)语义不同, 同编号对应不同频率, 两种固件设备互不相通
- 默认信道CH8在宽频下为437.1MHz
2026-09-07 18:50:25 +08:00
3 changed files with 136 additions and 55 deletions
@@ -478,7 +478,14 @@ const uint32_t gdwSx1276ChannelTbl[SX1276_CHANNEL_MAX]={
CH10, CH11, CH12, CH13, CH14, CH15, CH16, CH17, CH18, CH19,
CH20, CH21, CH22, CH23, CH24, CH25, CH26, CH27, CH28, CH29,
CH30, CH31, CH32, CH33, CH34, CH35, CH36, CH37, CH38, CH39,
CH40, CH41, CH42, CH43, CH44, CH45
CH40, CH41, CH42, CH43, CH44, CH45, CH46, CH47, CH48, CH49,
CH50, CH51, CH52, CH53, CH54, CH55, CH56, CH57, CH58, CH59,
CH60, CH61, CH62, CH63, CH64, CH65, CH66, CH67, CH68, CH69,
CH70, CH71, CH72, CH73, CH74, CH75, CH76, CH77, CH78, CH79,
CH80, CH81, CH82, CH83, CH84, CH85, CH86, CH87, CH88, CH89,
CH90, CH91, CH92, CH93, CH94, CH95, CH96, CH97, CH98, CH99,
CH100, CH101, CH102, CH103, CH104, CH105, CH106, CH107, CH108, CH109,
CH110, CH111, CH112, CH113, CH114, CH115, CH116, CH117, CH118, CH119
};
//LORAPT_CHANNEL
@@ -666,7 +673,7 @@ bool LoraSetRegPreamble(uint8_t RegPreamble)
}
bool LoraSetFreqCent(uint32_t FreqCent)
{
if(FreqCent < 470100000 || FreqCent > 492600000)
if(FreqCent < 433100000 || FreqCent > 492600000) //lora-wide: 433.1MHz~492.6MHz(与信道表匹配)
return false;
LoRaPara.dwFreqHz = FreqCent;
return true;
+122 -48
View File
@@ -660,7 +660,7 @@ typedef enum{
LORAPT_MAX
}Sx1276LoraParaType;
#define SX1276_CHANNEL_MAX 46
#define SX1276_CHANNEL_MAX 120
#define LORA_SPI_NSS_SET() SPI2_NSS_SET()
#define LORA_SPI_NSS_CLR() SPI2_NSS_CLR()
@@ -758,54 +758,128 @@ typedef struct {
#endif
/*
Lora频率:470100000ul + 500000*N, N=0~45, 共46个信道(470.1MHz~492.6MHz)
Lora频率:433100000ul + 500000*N, N=0~119, 共120个信道(433.1MHz~492.6MHz) [lora-wide宽频版]
*/
#define CH0 (470100000ul + 0) //470.1MHz
#define CH1 (470100000ul + 500000)
#define CH2 (470100000ul + 1000000)
#define CH3 (470100000ul + 1500000)
#define CH4 (470100000ul + 2000000)
#define CH5 (470100000ul + 2500000)
#define CH6 (470100000ul + 3000000)
#define CH7 (470100000ul + 3500000)
#define CH8 (470100000ul + 4000000)
#define CH9 (470100000ul + 4500000)
#define CH10 (470100000ul + 5000000)
#define CH11 (470100000ul + 5500000)
#define CH12 (470100000ul + 6000000)
#define CH13 (470100000ul + 6500000)
#define CH14 (470100000ul + 7000000)
#define CH15 (470100000ul + 7500000)
#define CH16 (470100000ul + 8000000)
#define CH17 (470100000ul + 8500000)
#define CH18 (470100000ul + 9000000)
#define CH19 (470100000ul + 9500000)
#define CH20 (470100000ul + 10000000)
#define CH21 (470100000ul + 10500000)
#define CH22 (470100000ul + 11000000)
#define CH23 (470100000ul + 11500000)
#define CH24 (470100000ul + 12000000)
#define CH25 (470100000ul + 12500000)
#define CH26 (470100000ul + 13000000)
#define CH27 (470100000ul + 13500000)
#define CH28 (470100000ul + 14000000)
#define CH29 (470100000ul + 14500000)
#define CH30 (470100000ul + 15000000)
#define CH31 (470100000ul + 15500000)
#define CH32 (470100000ul + 16000000)
#define CH33 (470100000ul + 16500000)
#define CH34 (470100000ul + 17000000)
#define CH35 (470100000ul + 17500000)
#define CH36 (470100000ul + 18000000)
#define CH37 (470100000ul + 18500000)
#define CH38 (470100000ul + 19000000)
#define CH39 (470100000ul + 19500000)
#define CH40 (470100000ul + 20000000)
#define CH41 (470100000ul + 20500000)
#define CH42 (470100000ul + 21000000)
#define CH43 (470100000ul + 21500000)
#define CH44 (470100000ul + 22000000)
#define CH45 (470100000ul + 22500000) //492.6MHz
#define CH0 (433100000ul + 0) //433.1MHz
#define CH1 (433100000ul + 500000)
#define CH2 (433100000ul + 1000000)
#define CH3 (433100000ul + 1500000)
#define CH4 (433100000ul + 2000000)
#define CH5 (433100000ul + 2500000)
#define CH6 (433100000ul + 3000000)
#define CH7 (433100000ul + 3500000)
#define CH8 (433100000ul + 4000000)
#define CH9 (433100000ul + 4500000)
#define CH10 (433100000ul + 5000000)
#define CH11 (433100000ul + 5500000)
#define CH12 (433100000ul + 6000000)
#define CH13 (433100000ul + 6500000)
#define CH14 (433100000ul + 7000000)
#define CH15 (433100000ul + 7500000)
#define CH16 (433100000ul + 8000000)
#define CH17 (433100000ul + 8500000)
#define CH18 (433100000ul + 9000000)
#define CH19 (433100000ul + 9500000)
#define CH20 (433100000ul + 10000000)
#define CH21 (433100000ul + 10500000)
#define CH22 (433100000ul + 11000000)
#define CH23 (433100000ul + 11500000)
#define CH24 (433100000ul + 12000000)
#define CH25 (433100000ul + 12500000)
#define CH26 (433100000ul + 13000000)
#define CH27 (433100000ul + 13500000)
#define CH28 (433100000ul + 14000000)
#define CH29 (433100000ul + 14500000)
#define CH30 (433100000ul + 15000000)
#define CH31 (433100000ul + 15500000)
#define CH32 (433100000ul + 16000000)
#define CH33 (433100000ul + 16500000)
#define CH34 (433100000ul + 17000000)
#define CH35 (433100000ul + 17500000)
#define CH36 (433100000ul + 18000000)
#define CH37 (433100000ul + 18500000)
#define CH38 (433100000ul + 19000000)
#define CH39 (433100000ul + 19500000)
#define CH40 (433100000ul + 20000000)
#define CH41 (433100000ul + 20500000)
#define CH42 (433100000ul + 21000000)
#define CH43 (433100000ul + 21500000)
#define CH44 (433100000ul + 22000000)
#define CH45 (433100000ul + 22500000)
#define CH46 (433100000ul + 23000000)
#define CH47 (433100000ul + 23500000)
#define CH48 (433100000ul + 24000000)
#define CH49 (433100000ul + 24500000)
#define CH50 (433100000ul + 25000000)
#define CH51 (433100000ul + 25500000)
#define CH52 (433100000ul + 26000000)
#define CH53 (433100000ul + 26500000)
#define CH54 (433100000ul + 27000000)
#define CH55 (433100000ul + 27500000)
#define CH56 (433100000ul + 28000000)
#define CH57 (433100000ul + 28500000)
#define CH58 (433100000ul + 29000000)
#define CH59 (433100000ul + 29500000)
#define CH60 (433100000ul + 30000000)
#define CH61 (433100000ul + 30500000)
#define CH62 (433100000ul + 31000000)
#define CH63 (433100000ul + 31500000)
#define CH64 (433100000ul + 32000000)
#define CH65 (433100000ul + 32500000)
#define CH66 (433100000ul + 33000000)
#define CH67 (433100000ul + 33500000)
#define CH68 (433100000ul + 34000000)
#define CH69 (433100000ul + 34500000)
#define CH70 (433100000ul + 35000000)
#define CH71 (433100000ul + 35500000)
#define CH72 (433100000ul + 36000000)
#define CH73 (433100000ul + 36500000)
#define CH74 (433100000ul + 37000000)
#define CH75 (433100000ul + 37500000)
#define CH76 (433100000ul + 38000000)
#define CH77 (433100000ul + 38500000)
#define CH78 (433100000ul + 39000000)
#define CH79 (433100000ul + 39500000)
#define CH80 (433100000ul + 40000000)
#define CH81 (433100000ul + 40500000)
#define CH82 (433100000ul + 41000000)
#define CH83 (433100000ul + 41500000)
#define CH84 (433100000ul + 42000000)
#define CH85 (433100000ul + 42500000)
#define CH86 (433100000ul + 43000000)
#define CH87 (433100000ul + 43500000)
#define CH88 (433100000ul + 44000000)
#define CH89 (433100000ul + 44500000)
#define CH90 (433100000ul + 45000000)
#define CH91 (433100000ul + 45500000)
#define CH92 (433100000ul + 46000000)
#define CH93 (433100000ul + 46500000)
#define CH94 (433100000ul + 47000000)
#define CH95 (433100000ul + 47500000)
#define CH96 (433100000ul + 48000000)
#define CH97 (433100000ul + 48500000)
#define CH98 (433100000ul + 49000000)
#define CH99 (433100000ul + 49500000)
#define CH100 (433100000ul + 50000000)
#define CH101 (433100000ul + 50500000)
#define CH102 (433100000ul + 51000000)
#define CH103 (433100000ul + 51500000)
#define CH104 (433100000ul + 52000000)
#define CH105 (433100000ul + 52500000)
#define CH106 (433100000ul + 53000000)
#define CH107 (433100000ul + 53500000)
#define CH108 (433100000ul + 54000000)
#define CH109 (433100000ul + 54500000)
#define CH110 (433100000ul + 55000000)
#define CH111 (433100000ul + 55500000)
#define CH112 (433100000ul + 56000000)
#define CH113 (433100000ul + 56500000)
#define CH114 (433100000ul + 57000000)
#define CH115 (433100000ul + 57500000)
#define CH116 (433100000ul + 58000000)
#define CH117 (433100000ul + 58500000)
#define CH118 (433100000ul + 59000000)
#define CH119 (433100000ul + 59500000) //492.6MHz
/*Lora中心频率默认值(编译期用于频道表等)
实际运行频率由Boot参数区(BootPara_t.LoraFreq)配置, APP启动时覆盖ConfigPara.Lora.FreqCent*/
+1 -1
View File
@@ -235,7 +235,7 @@ void GateWayInit(void)
}
if(LoraSetFreqCent(GateWay.ConfigPara.Lora.FreqCent) == false)
{
GateWay.ConfigPara.Lora.FreqCent = 470100000;
GateWay.ConfigPara.Lora.FreqCent = 433100000; //lora-wide: 回退到CH0
LoraSetFreqCent(GateWay.ConfigPara.Lora.FreqCent);
}
if(LoraSetPower(GateWay.ConfigPara.Lora.ucPower) == false) {