# Gateway **Repository Path**: wzjahucm/gateway ## Basic Information - **Project Name**: Gateway - **Description**: Conductor Galloping Gateway - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-05 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gateway Introduction ## 重要记录 1. **关键的FLASH参数(服务器参数信息)不要使用FlashDB!!!由于外部电源24h会重启一下,因此,重要的参数不要随意更新到FLASH中!!!** 2. **硬件修改:贴片电容引脚尽量不要打过孔,以免虚焊** 3. **硬件修改:DC-DC处的电容最少选择16V耐压(1206),防止电路进水后电容被击穿!!!** 4. **目录结构说明:** - **Bootloader_Pro须在出厂时烧录一次** - **Gateway_Air780_UM980_I1_Double_4G是继远双4G版本** - **Gateway_Air780_UM980_SouthGrid_BeidouWithAccelaration_Single_4G是南网北斗或纯加速度单4G版本** - **Gateway_Air780_UM980_SouthGrid_PureBeidou_Single_4G是南网北斗不带加速度单4G版本** - **Gateway_Air780_UM980_PWV是面雨量计版本** 5. **串口波特率已一律改为115200!** ## 注意 1. SD卡仅在测试环境下用于记录关键日志时启用,生产环境可以不插卡,f_mount失败后会自动忽略日志文件写入 。**SD卡不再考虑使用,因为是SPI通信,写入文件速度较慢,可以考虑直接购买串口记录模块** 3. 数据疯发可能是4G信号不好,引起复位,复位后又立马发送数据导致的 // 已完成,**已添加fast_send_cnt标志位,限制4G一完成初始化就发送数据包的总次数** 4. 远程配置MQTT服务器IP端口、用户名、密码、设备ID,Client_ID,物联网卡会锁IP,配置完需要修改物联网卡的IP池 ## OTA重要 1. OTA升级时,编译gateway.bin文件,必须配置Options->Target->IROM1为 0x8010000 0x30000 2. python add_crc.py生成gateway_with_crc.bin升级文件 3. 为了防止频繁复位(电池电压过低、温度过低等因素)导致OTA自动恢复到APP1区,我们将OTA修改为直接升级APP1区(此方法会导致出厂程序被完全覆盖) 4. 我们使用EC800的UFS(最大支持152KB)存储升级包,再在Bootloader中进行FLASH写入升级,即便OTA过程中频繁断电,仍能保证OTA升级成功 5. **我们的OTA是基于HTTPS的,而物联网SIM卡一般会绑定服务器IP** 7. 可在串口中输入:OTA={"msgType":"cloudReq", "mid":63507, "cmd":"upgrade", "paras":{"url":"https://10.164.220.149:1443/iotcenter/file-manager-service/v1/file/manager/download?fileFolder=1735024f-58a3-11f0-9cf6-f43bd8741e05&fileName=gateway_with_crc.bin"}, "serviceId":"command", "deviceId":""},进行升级测试 ## 测试记录 1. 统计时间范围:1月9日上午9点--1月10日上午9点 实发数据包38包,应发数据包36包,实发心跳包252,应发心跳包288,最大存活时间20小时,网关电压13.1V,筒子电压11.6V,RTK模式4正常,舞动数据正常(筒子已经关闭,期间模拟数据正常) 2. 目前完成了网关远程参数配置(mqtt参数查询和配置、标定点设置、获取设置采样间隔、设备的远程重启;设备OTA暴力测试约50次已完成,OTA需约40秒,包含OTA过程中异常断电等特殊情况,仍能100%升级成功;舞动筒子数据正常间隔40分钟上报,能进模式4,包括筒子关闭情况下网关仍能模拟数据;微气象温湿度、风速风向、大气压、雨量数值获取正常,下一步需要对方提供加密SIM卡和安全证书与数据上报的平台接口) ## 本地参数配置 @722"1002"40"0"0"0"0"0"0"0"0"0"HLC124110002"CMCC"8.136.109.126"1883"mosquitto"hfut"/HLC124110002/datas"/HLC124110002/command"/HLC124110002/commandResponse" @722"1058"40"0"0"0"0"0"0"0"0"0"BDDX18AA2411221058"CMIOTGZDWYPT.GZ"10.164.220.149"1883"00000000000000000018AA2411221058"123456abC^"/v1/devices/BDDX18AA2411221058/datas"/v1/devices/BDDX18AA2411221058/command"/v1/devices/BDDX18AA2411221058/commandResponse" 1. 串口输入FSSEND可以快速上报一次数据 2. **串口输入SET_LORA=0可以设置为新版470Mhz的LORA版本号,输入SET_LORA=1设置为旧版本的LORA版本(已经记录在FLASH中)** 3. CMIOTGZDWYPT.GZ是APN配置 4. 可在串口中输入:SET_RTK={"msgType":"cloudReq","mid":153013,"cmd":"RTKConfig","paras":{"caster":"10.164.220.150","port":"7001","mountpoints":"RTCM32_DBD","username":"SWKJ1343","passwd":"Qkhmch79692!"},"serviceId":"command","deviceId":""},进行筒子的差分账号下发 ## 远程CMD配置 1. OTA升级,url必须为HTTPS链接(**物联卡得认这个IP才可以**) {"msgType":"cloudReq", "mid":63507, "cmd":"upgrade", "paras":{"url":"https://gitee.com/wzjahucm/gateway/raw/master/gateway_with_crc.bin"}, "serviceId":"command", "deviceId":""} 2. 设备重启 {"msgType":"cloudReq","mid":56977,"cmd":"reboot","paras":{"reboot":1},"serviceId":"command","deviceId":""} 3. 获取采样间隔 {"msgType":"cloudReq","mid":59458,"cmd":"reqTime","paras":{"property":"?"},"serviceId":"command","deviceId":""} 4. 设置采样间隔 {"msgType":"cloudReq","mid":59707,"cmd":"setTime","paras":{"sample_plus_intv":60},"serviceId":"command","deviceId":""} 5. 配置MQTT,包括服务器IP、端口、用户名、密码,ClientID、DeviceID必须配置正确 {"msgType":"cloudReq","mid":59940,"cmd":"MqttConfig","paras":{"ip":"101.33.237.185","port":"1883","name":"mosquitto","passwd":"hfuthfut123","clientID":"HLC124110002"},"serviceId":"command","deviceId":"HLC124110002"} 6. 读取MQTT配置 {"msgType":"cloudReq","mid":59940,"cmd":"MqttConfig","paras":{"mqttConfig":"?"},"serviceId":"command","deviceId":""} 7. 获取差分服务配置 {"msgType":"cloudReq","mid":153013,"cmd":"RTKConfig","paras":{"rtkConfig":"?"},"serviceId":"command","deviceId":""} 8. 配置差分服务(**以前好像出现过用户名和密码反了的情况???**) {"msgType":"cloudReq","mid":153013,"cmd":"RTKConfig","paras":{"caster":"202.96.185.34","mountpoints":"0020008002","port":"2102","passwd":"zhdgps","username":"16071234"},"serviceId":"command","deviceId":""} ## 工作记录 1. 南网物管平台要求设备侧调用下载文件接口有所更改,https://10.164.220.149:1443/iotcenter/file-manager-service/v1/file/manager/download?fileFolder=fd9169c5-9387-44e4-b4a8-1030a67a6712&fileName=gateway.bin,注意该GET请求需包含fileFolder和fileName参数。 2. 南网物管平台要求使用第三方应用通过POST调用上传文件接口(上传fileFolder(UUID),和file文件对象),上传接口:https://10.164.220.149:1443/iotcenter/file-manager-service/v1/file/manager/upload。 3. TODO:现场有一台设备出现过FLASH存储丢失了网关id和服务器配置信息,因此对于关键参数,不再使用FlashDB,因为重要的参数,基本不会更新,无需使用FlashDB。 - FlashDB: 0x08060000 - 0x0806FFFF - 网关关键配置参数(不经常修改且非常重要的如服务器配置参数): #define KEY_PARAMS_ADDR1 0x08040000 #define KEY_PARAMS_ADDR2 0x08050000 - OTA参数: #define OTA_PARAMS_ADDR1 0x0807B000 #define OTA_PARAMS_ADDR2 0x0807C000 4. **致命bug记录:当LORA初始化失败时,程序会5分钟自动修改LORA版本,但是此处忘记打了标志位,导致每秒程序都在写入FLASH,导致单片机出现致命问题!!!LORA初始化失败引起的LORA版本自动修改的相关程序,已经修改,将lora_tx_done设置为1,确保该程序只会写入一次FLASH,同时修改为12小时判断,增大判断的时间间隔。当前版本已将这段程序删除。** 5. **FLASH字段不到万不得已时候不可轻易更改,否则会导致所有之前上线的网关无法批量远程更新。**