diff --git a/Project/GateWay/source/Module/GateWay_Debug/DebugCmd.c b/Project/GateWay/source/Module/GateWay_Debug/DebugCmd.c index fccbfcb..772cdc8 100644 --- a/Project/GateWay/source/Module/GateWay_Debug/DebugCmd.c +++ b/Project/GateWay/source/Module/GateWay_Debug/DebugCmd.c @@ -52,10 +52,10 @@ void vcom_Print(uint8_t sLen) } /***************************************************************************************** -* 函数名称: Debug_Printf -* 功能描述: RS485通道1任务函数 -* 参 数: 任务参数入口 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Debug_Printf +* 鍔熻兘鎻忚堪: RS485閫氶亾1浠诲姟鍑芥暟 +* 鍙 鏁: 浠诲姟鍙傛暟鍏ュ彛 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void Debug_Printf(char *format, ...) { @@ -92,10 +92,10 @@ void Debug_Printf(char *format, ...) va_end(args); } /***************************************************************************************** -* 函数名称: RS485Ch2_Thread_Entry -* 功能描述: RS485通道1任务函数 -* 参 数: 任务参数入口 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch2_Thread_Entry +* 鍔熻兘鎻忚堪: RS485閫氶亾1浠诲姟鍑芥暟 +* 鍙 鏁: 浠诲姟鍙傛暟鍏ュ彛 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void Debug_Thread_Entry(void *parameter) { @@ -106,7 +106,7 @@ void Debug_Thread_Entry(void *parameter) if(DebugRev_Sem == RT_NULL) { rt_kprintf("DebugRev Sem Create Failed!\r\n"); } - rt_kprintf("DebugRev Thread is running!\r\n"); + rt_kprintf("DebugRev Thread is running锛乗r\n"); while(1) { result = rt_sem_take(DebugRev_Sem, RT_WAITING_FOREVER); @@ -119,10 +119,10 @@ void Debug_Thread_Entry(void *parameter) } /***************************************************************************************** -* 函数名称: RS485Ch2RxIrqCallback -* 功能描述: RS485通道1中断处理回调函数 -* 参 数: rData 接收到的数据 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch2RxIrqCallback +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓柇澶勭悊鍥炶皟鍑芥暟 +* 鍙 鏁: rData 鎺ユ敹鍒扮殑鏁版嵁 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DbgRxIrqCallback(uint8_t rData) { @@ -148,12 +148,12 @@ void DebugRxOverhandler(void) } /***************************************************************************************** -* 函数名称: DebugAnalyze -* 功能描述: 调试指令解析 -* 参 数: GateWay, 网关参数句柄 - rData,输入数据 - rLen, 输入数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugAnalyze +* 鍔熻兘鎻忚堪: 璋冭瘯鎸囦护瑙f瀽 +* 鍙 鏁: GateWay, 缃戝叧鍙傛暟鍙ユ焺 + rData,杈撳叆鏁版嵁 + rLen, 杈撳叆鏁版嵁闀垮害 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) { @@ -186,17 +186,17 @@ void DebugAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) for(int i = 0; i < DEBUG_CMD_CNT; i++) { if(strcmp(argv[0], DebugFun[i].DBGCmd) == 0) { DebugFun[i].DBGExec(argc, argv); - break; // 添加break避免继续匹配 + break; // 娣诲姞break閬垮厤缁х画鍖归厤 } } } /***************************************************************************************** -* 函数名称: DebugCmdMainOnOff -* 功能描述: 主调试信息开关 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdMainOnOff +* 鍔熻兘鎻忚堪: 涓昏皟璇曚俊鎭紑鍏 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdMainOnOff(int argc, char *argv[]) { @@ -220,11 +220,11 @@ void DebugCmdMainOnOff(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdCat1OnOff -* 功能描述: CAT1调试信息开关 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdCat1OnOff +* 鍔熻兘鎻忚堪: CAT1璋冭瘯淇℃伅寮鍏 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdCat1OnOff(int argc, char *argv[]) { @@ -248,11 +248,11 @@ void DebugCmdCat1OnOff(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdCat1OnOff -* 功能描述: CAT1调试信息开关 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdCat1OnOff +* 鍔熻兘鎻忚堪: CAT1璋冭瘯淇℃伅寮鍏 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdRS485Ctrl(int argc, char *argv[]) { @@ -408,11 +408,11 @@ void DebugCmdRS485Ctrl(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdDelCommUnit -* 功能描述: 删除已注册的通讯单元 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdDelCommUnit +* 鍔熻兘鎻忚堪: 鍒犻櫎宸叉敞鍐岀殑閫氳鍗曞厓 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdDelCommUnit(int argc, char *argv[]) { @@ -459,11 +459,11 @@ void DebugCmdDelCommUnit(int argc, char *argv[]) WritePara((uint8_t *)&GateWay->ConfigPara, sizeof(GWConfigPara_t)); } /***************************************************************************************** -* 函数名称: DebugCmdLsCommUnit -* 功能描述: 查看通讯单元信息 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdLsCommUnit +* 鍔熻兘鎻忚堪: 鏌ョ湅閫氳鍗曞厓淇℃伅 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdLsCommUnit(int argc, char *argv[]) { @@ -525,11 +525,11 @@ void DebugCmdLsCommUnit(int argc, char *argv[]) } } /***************************************************************************************** -* 函数名称: DebugCmdExclCommUnit -* 功能描述: 排除指定的通讯单元MAC -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdExclCommUnit +* 鍔熻兘鎻忚堪: 鎺掗櫎鎸囧畾鐨勯氳鍗曞厓MAC +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdExclCommUnit(int argc, char *argv[]) { @@ -560,7 +560,7 @@ void DebugCmdExclCommUnit(int argc, char *argv[]) return; } - for(int i = 0; i < COMMUNIT_NUM_MAX; i++) {//寻找空位 + for(int i = 0; i < COMMUNIT_NUM_MAX; i++) {//瀵绘壘绌轰綅 if(GateWay->ConfigPara.ExclCommUnit[i].ExclFlag == false){ GateWay->ConfigPara.ExclCommUnit[i].ExclFlag = true; memcpy(&GateWay->ConfigPara.ExclCommUnit[i].ExclMac, &mac[0], 6); @@ -568,7 +568,7 @@ void DebugCmdExclCommUnit(int argc, char *argv[]) } } - ret = CheckCommUnitReg(GateWay, mac);//删除注册信息 + ret = CheckCommUnitReg(GateWay, mac);//鍒犻櫎娉ㄥ唽淇℃伅 if(ret > -1) { GateWay->ConfigPara.CommUnitArray[ret].RegFlag = false; } @@ -577,11 +577,11 @@ void DebugCmdExclCommUnit(int argc, char *argv[]) WritePara((uint8_t *)&GateWay->ConfigPara, sizeof(GWConfigPara_t)); } /***************************************************************************************** -* 函数名称: DebugCmdDelExclCommUnit -* 功能描述: 删除指定的被排除的通信单元MAC -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdDelExclCommUnit +* 鍔熻兘鎻忚堪: 鍒犻櫎鎸囧畾鐨勮鎺掗櫎鐨勯氫俊鍗曞厓MAC +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdDelExclCommUnit(int argc, char *argv[]) { @@ -628,11 +628,11 @@ void DebugCmdDelExclCommUnit(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdLsExclCommUnit -* 功能描述: 查看被排除的通讯单元信息 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdLsExclCommUnit +* 鍔熻兘鎻忚堪: 鏌ョ湅琚帓闄ょ殑閫氳鍗曞厓淇℃伅 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdLsExclCommUnit(int argc, char *argv[]) { @@ -662,11 +662,11 @@ void DebugCmdLsExclCommUnit(int argc, char *argv[]) DBG_LOG("\r\n\r\n"); } /***************************************************************************************** -* 函数名称: DebugCmdSetComm -* 功能描述: 设置网关与服务通讯方式 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdSetComm +* 鍔熻兘鎻忚堪: 璁剧疆缃戝叧涓庢湇鍔¢氳鏂瑰紡 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdSetComm(int argc, char *argv[]) { @@ -707,11 +707,11 @@ void DebugCmdSetComm(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdSetCollTime -* 功能描述: 设置数据采集间隔 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdSetCollTime +* 鍔熻兘鎻忚堪: 璁剧疆鏁版嵁閲囬泦闂撮殧 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdSetCollTime(int argc, char *argv[]) { @@ -737,11 +737,11 @@ void DebugCmdSetCollTime(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdReadHisData -* 功能描述: 读取历史数据 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdReadHisData +* 鍔熻兘鎻忚堪: 璇诲彇鍘嗗彶鏁版嵁 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdReadHisData(int argc, char *argv[]) { @@ -816,11 +816,11 @@ void DebugCmdReadHisData(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdDelHisData -* 功能描述: 删除历史数据 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdDelHisData +* 鍔熻兘鎻忚堪: 鍒犻櫎鍘嗗彶鏁版嵁 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdDelHisData(int argc, char *argv[]) { @@ -836,11 +836,11 @@ void DebugCmdDelHisData(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdGetHisInfo -* 功能描述: 获取历史数据信息 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdGetHisInfo +* 鍔熻兘鎻忚堪: 鑾峰彇鍘嗗彶鏁版嵁淇℃伅 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdGetHisInfo(int argc, char *argv[]) { @@ -877,11 +877,11 @@ void DebugCmdGetHisInfo(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdRestoreFactory -* 功能描述: 恢复出厂设置 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdRestoreFactory +* 鍔熻兘鎻忚堪: 鎭㈠鍑哄巶璁剧疆 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdRestoreFactory(int argc, char *argv[]) { @@ -907,11 +907,11 @@ void DebugCmdRestoreFactory(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdUpload -* 功能描述: 上传当前网关状态 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdUpload +* 鍔熻兘鎻忚堪: 涓婁紶褰撳墠缃戝叧鐘舵 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DebugCmdUpload(int argc, char *argv[]) { @@ -946,11 +946,11 @@ static void DebugCmdUpload(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdRegister -* 功能描述: 重新向上位机发起注册 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdRegister +* 鍔熻兘鎻忚堪: 閲嶆柊鍚戜笂浣嶆満鍙戣捣娉ㄥ唽 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DebugCmdRegister(int argc, char *argv[]) { @@ -977,11 +977,11 @@ static void DebugCmdRegister(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdRestoreFactory -* 功能描述: 恢复出厂设置 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdRestoreFactory +* 鍔熻兘鎻忚堪: 鎭㈠鍑哄巶璁剧疆 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdReboot(int argc, char *argv[]) { @@ -999,11 +999,11 @@ void DebugCmdReboot(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdSetSensorCollectTime -* 功能描述: 设置采集时间 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdSetSensorCollectTime +* 鍔熻兘鎻忚堪: 璁剧疆閲囬泦鏃堕棿 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdSetCollectTime(int argc, char *argv[]) { @@ -1065,11 +1065,11 @@ void DebugCmdSetCollectTime(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdTimeSync -* 功能描述: 时间同步 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdTimeSync +* 鍔熻兘鎻忚堪: 鏃堕棿鍚屾 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdTimeSync(int argc, char *argv[]) { @@ -1107,11 +1107,11 @@ void DebugCmdTimeSync(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdTimeSync -* 功能描述: 查询内置通讯单元传感器 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdTimeSync +* 鍔熻兘鎻忚堪: 鏌ヨ鍐呯疆閫氳鍗曞厓浼犳劅鍣 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ extern SensorCommPara_t SComm1Para; extern SensorCommPara_t SComm2Para; @@ -1142,11 +1142,11 @@ void DebugCmdQuerySensor(int argc, char *argv[]) /***************************************************************************************** -* 函数名称: DebugCmdSelDebugChannel -* 功能描述: 选择调试信息输出通道, -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdSelDebugChannel +* 鍔熻兘鎻忚堪: 閫夋嫨璋冭瘯淇℃伅杈撳嚭閫氶亾锛 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdSelDebugChannel(int argc, char *argv[]) { @@ -1198,11 +1198,11 @@ void DebugCmdSelDebugChannel(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdSetLTENet -* 功能描述: 设置Cat1/4G服务器的地址和端口 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdSetLTENet +* 鍔熻兘鎻忚堪: 璁剧疆Cat1/4G鏈嶅姟鍣ㄧ殑鍦板潃鍜岀鍙 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DebugCmdSetLTENet(int argc, char *argv[]) { @@ -1249,11 +1249,11 @@ static void DebugCmdSetLTENet(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdSetMac -* 功能描述: 设置MAC地址 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdSetMac +* 鍔熻兘鎻忚堪: 璁剧疆MAC鍦板潃 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DebugCmdSetMac(int argc, char *argv[]) { @@ -1291,11 +1291,11 @@ static void DebugCmdSetMac(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdGetPara -* 功能描述: 查看参数 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdGetPara +* 鍔熻兘鎻忚堪: 鏌ョ湅鍙傛暟 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DebugCmdGetPara(int argc, char *argv[]) { @@ -1366,11 +1366,11 @@ static void DebugCmdGetPara(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdCali -* 功能描述: 校准传感器 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdCali +* 鍔熻兘鎻忚堪: 鏍″噯浼犳劅鍣 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DebugCmdCali(int argc, char *argv[]) { @@ -1423,12 +1423,12 @@ static void DebugCmdCali(int argc, char *argv[]) } } - for(int i = 0; i < COMMUNIT_NUM_MAX; i++)//参数遍历 + for(int i = 0; i < COMMUNIT_NUM_MAX; i++)//鍙傛暟閬嶅巻 { if(GateWay->ConfigPara.CommUnitArray[i].RegFlag == true) - GateWay->ConfigPara.CommUnitArray[i].CailFlag = true;//校准置位,等待下次此MAC主设备上传数据时下发校准指令(低功耗) + GateWay->ConfigPara.CommUnitArray[i].CailFlag = true;//鏍″噯缃綅锛岀瓑寰呬笅娆℃MAC涓昏澶囦笂浼犳暟鎹椂涓嬪彂鏍″噯鎸囦护锛堜綆鍔熻楋級 } - //Sx1276LoRaSendBuffer(CommUnitCmd, sizeof(CommUnitFrameHeader_t) + 2);//低功耗模式下不用下发 + //Sx1276LoRaSendBuffer(CommUnitCmd, sizeof(CommUnitFrameHeader_t) + 2);//浣庡姛鑰楁ā寮忎笅涓嶇敤涓嬪彂 DBG_LOG("Calibrate all communication units.\r\n"); return; @@ -1471,14 +1471,14 @@ static void DebugCmdCali(int argc, char *argv[]) CommUnitCmd[sizeof(CommUnitFrameHeader_t)] = crc16 & 0x00ff; CommUnitCmd[sizeof(CommUnitFrameHeader_t) + 1] = (crc16 >> 8) & 0x00ff; - if(mac[2] == 0x01) { //LORA通讯 + if(mac[2] == 0x01) { //LORA閫氳 if(GateWay->ConfigPara.CommUnitArray[ret].RegFlag == true) - GateWay->ConfigPara.CommUnitArray[ret].CailFlag = true;//校准置位,等待下次此MAC主设备上传数据时下发校准指令(低功耗) + GateWay->ConfigPara.CommUnitArray[ret].CailFlag = true;//鏍″噯缃綅锛岀瓑寰呬笅娆℃MAC涓昏澶囦笂浼犳暟鎹椂涓嬪彂鏍″噯鎸囦护锛堜綆鍔熻楋級 DBG_LOG("Wait for the device to respond. Mac:%02X-%02X-%02X-%02X-%02X-%02X\r\n", CUFrame->DevMac[0], CUFrame->DevMac[1], CUFrame->DevMac[2], CUFrame->DevMac[3], CUFrame->DevMac[4], CUFrame->DevMac[5]); //Sx1276LoRaSendBuffer(CommUnitCmd, sizeof(CommUnitFrameHeader_t) + 2); } - else if(mac[2] == 0x02) { //RS485通讯 + else if(mac[2] == 0x02) { //RS485閫氳 if(GateWay->ConfigPara.Rs485Ch1.Enable == true && !GateWay->ConfigPara.Rs485Ch1.CommUnitEnable) { GateWay->ConfigPara.Rs485Ch1.RS485Send(Rs485Cmd, sizeof(CommUnitFrameHeader_t) + 2); DBG_LOG("Calibrate CommUnit: %s!\r\n", argv[1]); @@ -1493,11 +1493,11 @@ static void DebugCmdCali(int argc, char *argv[]) } } /***************************************************************************************** -* 函数名称: DebugLaserConfig -* 功能描述: 激光控制 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugLaserConfig +* 鍔熻兘鎻忚堪: 婵鍏夋帶鍒 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DebugLaserConfig(int argc, char *argv[]) { @@ -1588,12 +1588,12 @@ static void DebugLaserConfig(int argc, char *argv[]) CommUnitCmd[len++] = crc16 & 0x00ff; CommUnitCmd[len++] = (crc16 >> 8) & 0x00ff; - if(mac[2] == 0x01) { //LORA通讯,低功耗模式不用主动下发 + if(mac[2] == 0x01) { //LORA閫氳锛屼綆鍔熻楁ā寮忎笉鐢ㄤ富鍔ㄤ笅鍙 if(GateWay->ConfigPara.CommUnitArray[ret].RegFlag == true) { if(onoff == true) { - GateWay->ConfigPara.CommUnitArray[ret].ContLaser = true;//控制置位,等待下次此MAC主设备上传数据时下发校准指令(低功耗) + GateWay->ConfigPara.CommUnitArray[ret].ContLaser = true;//鎺у埗缃綅锛岀瓑寰呬笅娆℃MAC涓昏澶囦笂浼犳暟鎹椂涓嬪彂鏍″噯鎸囦护锛堜綆鍔熻楋級 DBG_LOG("Wait for the device to respond. Mac:%02X-%02X-%02X-%02X-%02X-%02X\r\n", CUFrame->DevMac[0], CUFrame->DevMac[1], CUFrame->DevMac[2], CUFrame->DevMac[3], CUFrame->DevMac[4], CUFrame->DevMac[5]); GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff = onoff; @@ -1602,11 +1602,11 @@ static void DebugLaserConfig(int argc, char *argv[]) { GateWay->ConfigPara.CommUnitArray[ret].ContLaser = false; GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff = onoff; - Sx1276LoRaSendBuffer(CommUnitCmd, len);//直接发 + Sx1276LoRaSendBuffer(CommUnitCmd, len);//鐩存帴鍙 } } } - else if(mac[2] == 0x02) { //RS485通讯 + else if(mac[2] == 0x02) { //RS485閫氳 if(GateWay->ConfigPara.Rs485Ch1.Enable == true && !GateWay->ConfigPara.Rs485Ch1.CommUnitEnable) { GateWay->ConfigPara.Rs485Ch1.RS485Send(Rs485Cmd, len); DBG_LOG("Control RS485 laser CommUnit: %s!\r\n", argv[1]); @@ -1622,19 +1622,19 @@ static void DebugLaserConfig(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdLPConfig -* 功能描述: 低功耗参数配置 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdLPConfig +* 鍔熻兘鎻忚堪: 浣庡姛鑰楀弬鏁伴厤缃 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DebugCmdLPConfig(int argc, char *argv[]) { DBG_LOG("\r\n"); - uint16_t CollectInterval; //采集时间间隔 - uint16_t ReportInterval; //上报时间间隔 - uint8_t ERInterval; //紧急上报时间间隔 - uint8_t ERTime; //紧急上报时长 + uint16_t CollectInterval; //閲囬泦鏃堕棿闂撮殧 + uint16_t ReportInterval; //涓婃姤鏃堕棿闂撮殧 + uint8_t ERInterval; //绱фヤ笂鎶ユ椂闂撮棿闅 + uint8_t ERTime; //绱фヤ笂鎶ユ椂闀 if(strcmp(argv[1], "?") == 0) { DBG_LOG("Debug Cmd: lpcfg arg1 arg2 arg3 arg4\r\n"); @@ -1688,11 +1688,11 @@ static void DebugCmdLPConfig(int argc, char *argv[]) } /***************************************************************************************** -* 函数名称: DebugCmdLPConfig -* 功能描述: Lora参数配置 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdLPConfig +* 鍔熻兘鎻忚堪: Lora鍙傛暟閰嶇疆 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DebugLoraConfig(int argc, char *argv[]) { @@ -1819,11 +1819,11 @@ static void DebugLoraConfig(int argc, char *argv[]) /***************************************************************************************** -* 函数名称: DebugCmdHelp -* 功能描述: 调试命令帮助信息 -* 参 数: argc, 输入参数数量 - argv, 输入参数 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugCmdHelp +* 鍔熻兘鎻忚堪: 璋冭瘯鍛戒护甯姪淇℃伅 +* 鍙 鏁: argc, 杈撳叆鍙傛暟鏁伴噺 + argv, 杈撳叆鍙傛暟 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugCmdHelp(int argc, char *argv[]) { diff --git a/Project/GateWay/source/Module/SDCard/sdmmc_cmd.h b/Project/GateWay/source/Module/SDCard/sdmmc_cmd.h index 9890e53..d0632a1 100644 --- a/Project/GateWay/source/Module/SDCard/sdmmc_cmd.h +++ b/Project/GateWay/source/Module/SDCard/sdmmc_cmd.h @@ -102,7 +102,7 @@ typedef struct stc_sdmmc_resp_card_status uint32_t ERASE_SEQ_ERR :1; ///< An error in the sequence of erase commands occurred. uint32_t BLOCK_LEN_ERR :1; ///< The transferred block length is not allowed for this card, or the number of transferred bytes does not match the block length. uint32_t ADDRESS_ERROR :1; ///< A misaligned address which did not match the block length was used in the command. - uint32_t OUT_OF_RANGE :1; ///< The command鈥檚 argument was out of the allowed range for this card. + uint32_t OUT_OF_RANGE :1; ///< The command閳ユ獨 argument was out of the allowed range for this card. } stc_sdmmc_resp_card_status_t; /******************************************************************************* diff --git a/Project/GateWay/source/Module/sx127x/sx127x.c b/Project/GateWay/source/Module/sx127x/sx127x.c index b63bff2..5fbc8be 100644 --- a/Project/GateWay/source/Module/sx127x/sx127x.c +++ b/Project/GateWay/source/Module/sx127x/sx127x.c @@ -314,7 +314,7 @@ void Sx1276LoRaInit(DataRevCallBack RxCallBack) } else{ SX1276LoRaSetNbTrigPeaks(3); - SX1276LoRaSetLowDatarateOptimize(false); //低数据速率设置 + SX1276LoRaSetLowDatarateOptimize(false); //浣庢暟鎹熺巼璁剧疆 } LoRaPara.RegBuff.RegModemConfig2 = (LoRaPara.RegBuff.RegModemConfig2 & RFLR_MODEMCONFIG2_SF_MASK ) | LoRaPara.SpreadFactor; //PacketCrcOn @@ -463,8 +463,8 @@ void Sx1276LoRaWakeup(void) } //////////////////////////////////////// -//配置本层参数的函数 -//频道表 +//閰嶇疆鏈眰鍙傛暟鐨勫嚱鏁 +//棰戦亾琛 const uint32_t gdwSx1276ChannelTbl[SX1276_CHANNEL_MAX]={ FREQ_CENT-FREQ_DEV*8, FREQ_CENT-FREQ_DEV*7, FREQ_CENT-FREQ_DEV*6, FREQ_CENT-FREQ_DEV*5, FREQ_CENT-FREQ_DEV*4, FREQ_CENT-FREQ_DEV*3, FREQ_CENT-FREQ_DEV*2, FREQ_CENT-FREQ_DEV*1, diff --git a/Project/GateWay/source/Module/sx127x/sx127x.h b/Project/GateWay/source/Module/sx127x/sx127x.h index 6a6f701..788c8b2 100644 --- a/Project/GateWay/source/Module/sx127x/sx127x.h +++ b/Project/GateWay/source/Module/sx127x/sx127x.h @@ -638,7 +638,7 @@ typedef enum{ SX1276_IH_ON= (1) }Sx1276ImplicitHeaderOnType; -//可变速率 +//鍙彉閫熺巼 typedef struct _AutoSfType{ Sx1276SpreadFactorType Sf; uint8_t ucRssiMin, ucRssiMax; @@ -747,20 +747,20 @@ typedef struct { //Down Link: //CH0-47:500.3-509.7MHz -#define USE_915MHZ 0//=1使用915 =0使用433 +#define USE_915MHZ 0//=1浣跨敤915 =0浣跨敤433 #if (USE_915MHZ == 1) - //中心频率,不定义则默认为449000000Hz + //涓績棰戠巼锛屼笉瀹氫箟鍒欓粯璁や负449000000Hz #define FREQ_CENT 915000000ul - //860MHz-1GHz使用PA功放,不定义则默认不使用 - //SX127x不定义,HOPERF模块需要定义 + //860MHz-1GHz浣跨敤PA鍔熸斁锛屼笉瀹氫箟鍒欓粯璁や笉浣跨敤 + //SX127x涓嶅畾涔夛紝HOPERF妯″潡闇瑕佸畾涔 #define USE_LORA_860_PA #endif /* -中心频率配置:433100000ul + 200000*N +涓績棰戠巼閰嶇疆锛433100000ul + 200000*N */ -#define CH0 (433100000ul + 0) //测试频率 +#define CH0 (433100000ul + 0) //娴嬭瘯棰戠巼 #define CH1 (433100000ul + 200000) #define CH2 (433100000ul + 400000) #define CH3 (433100000ul + 600000) diff --git a/Project/GateWay/source/User/Inc/CatOneTask.h b/Project/GateWay/source/User/Inc/CatOneTask.h index 3e00414..adf5b77 100644 --- a/Project/GateWay/source/User/Inc/CatOneTask.h +++ b/Project/GateWay/source/User/Inc/CatOneTask.h @@ -14,7 +14,7 @@ #define CAT_ONE_DELAY_1MS(X) -// ETH状态机相关宏定义 +// ETH鐘舵佹満鐩稿叧瀹忓畾涔 #define ETH_RESET_DELAY_TIME_MAX (5 * 60 * 1000) #define ETH_LINK_WAIT_TIME_MAX (10 * 1000) #define ETH_REG_TIMEOUT_MAX (30 * 1000) @@ -25,21 +25,21 @@ typedef enum { CAT_ONE_AT_NULL, - CAT_ONE_AT, //开机检测 - CAT_ONE_ATE0, //关回显 - CAT_ONE_CPIN, //识卡 + CAT_ONE_AT, //寮鏈烘娴 + CAT_ONE_ATE0, //鍏冲洖鏄 + CAT_ONE_CPIN, //璇嗗崱 CAT_ONE_IMEI, - CAT_ONE_LCCID, //读卡 - CAT_ONE_CEREG, //查询注册状态 - CAT_ONE_CGPADDR, //查询IP地址 - CAT_ONE_CSQ, //查询信号强度 - CAT_ONE_LDNSGIP, //域名解析 - CAT_ONE_LBS, //获取基站定位信息 - CAT_ONE_LIPOPEN, //设置TCP服务器地址和端口 - CAT_ONE_LIPSEND, //发送数据 - CAT_ONE_LTPCLOSE, //断开连接 + CAT_ONE_LCCID, //璇诲崱 + CAT_ONE_CEREG, //鏌ヨ娉ㄥ唽鐘舵 + CAT_ONE_CGPADDR, //鏌ヨIP鍦板潃 + CAT_ONE_CSQ, //鏌ヨ淇″彿寮哄害 + CAT_ONE_LDNSGIP, //鍩熷悕瑙f瀽 + CAT_ONE_LBS, //鑾峰彇鍩虹珯瀹氫綅淇℃伅 + CAT_ONE_LIPOPEN, //璁剧疆TCP鏈嶅姟鍣ㄥ湴鍧鍜岀鍙 + CAT_ONE_LIPSEND, //鍙戦佹暟鎹 + CAT_ONE_LTPCLOSE, //鏂紑杩炴帴 CAT_ONE_LBSPARA, - CAT_ONE_CCLK, //获取时间 + CAT_ONE_CCLK, //鑾峰彇鏃堕棿 CAT_ONE_AT_CMD_END, }CatOneATCMD_m; @@ -111,7 +111,7 @@ typedef struct { GateWayPara GateWay; DataRevCallBack CatOneRevCallBack; - // ETH状态机相关字段 + // ETH鐘舵佹満鐩稿叧瀛楁 EthStatus_m EthStatus; uint32_t EthResetDelayCnt; uint32_t EthLinkWaitCnt; diff --git a/Project/GateWay/source/User/Inc/Public.h b/Project/GateWay/source/User/Inc/Public.h index d2a1ae9..4b3e0aa 100644 --- a/Project/GateWay/source/User/Inc/Public.h +++ b/Project/GateWay/source/User/Inc/Public.h @@ -3,7 +3,7 @@ #include "bsp.h" -#define LORA_LOWPOWER //LORA低功耗设备,采用主动上报方式 +#define LORA_LOWPOWER //LORA浣庡姛鑰楄澶囷紝閲囩敤涓诲姩涓婃姤鏂瑰紡 #define SENSOR_DATA_LEN_MAX 50 #define SENSOR_NUM_MAX 16 @@ -12,8 +12,8 @@ #define REGISTER_INTERVAL_MAX (2 * 60) #define COMMUNIT_READ_SENSOR_INTERVAL_MAX (1 * 60) -#define LORA_ERR_RESET_DLY_MAX (10 * 60) //LORA接收超时复位延时,单位秒 -#define CAT1_ERR_RESET_DLY_MAX (60 * 60) //CAT1接收超时复位延时,单位秒 +#define LORA_ERR_RESET_DLY_MAX (10 * 60) //LORA鎺ユ敹瓒呮椂澶嶄綅寤舵椂锛屽崟浣嶇 +#define CAT1_ERR_RESET_DLY_MAX (60 * 60) //CAT1鎺ユ敹瓒呮椂澶嶄綅寤舵椂锛屽崟浣嶇 typedef struct GateWay_t GateWayPara_t, *GateWayPara; @@ -55,8 +55,8 @@ typedef enum { COMM_UNIT_CMD_READ, COMM_UNIT_CMD_SET_SENSOR_COLL_TIME = 5, COMM_UNIT_CMD_TIME_SYNC, - COMM_UNIT_CMD_CONT_LASER = 8,//激光独有指令 - COMM_UNIT_CMD_GET_SIGNAL, //0x09 查询Lora信号质量 + COMM_UNIT_CMD_CONT_LASER = 8,//婵鍏夌嫭鏈夋寚浠 + COMM_UNIT_CMD_GET_SIGNAL, //0x09 鏌ヨLora淇″彿璐ㄩ噺 COMM_UNIT_CMD_END, }CommUnitCmd_m; @@ -71,41 +71,41 @@ typedef enum { NET_COMM_CMD_ADD_UNIT, NET_COMM_CMD_LP_DEV_CONFIG, NET_COMM_CMD_ALARM, - NET_COMM_CMD_CONT_LASER,//激光独有指令 + NET_COMM_CMD_CONT_LASER,//婵鍏夌嫭鏈夋寚浠 NET_COMM_CMD_END, }NetCommCmd_m; typedef enum { - SENSOR_TYPE_NULL, //0x0000 空设备 - FORCE_6D, //0x0001 六维应力 - OSMOTIC_PRESSURE, //0x0002 渗透压 - ELASTIC_WAVEGUIDE, //0x0003 弹性波导 - DIELECTRIC_MASS, //0x0004 介电质普 - VIBRATE_SENSOR, //0x0005 微振动传感器 - CONT_DEFOR_3D, //0x0006 三维连续变形 - COMM_UNIT, //0x0007 通讯单元 - FORCE_3D, //0x0008 三维应力 - LASER_TRACING, //0x0009 激光示踪 - WATER_LEVEL, //0x000A 水位计 - _0x000B, //0x000B 保留 - _0x000C, //0x000C 保留 - MULTI_PARAMETER_FUSION, //0x000D 多参数融合 - CRACK_DETECTION, //0x000E 裂缝仪 - _0x000F, //0x000F 保留 - ATTITUDE_MONITOR, //0x0010 姿态检测 - LASER_DISPLACE, //0x0011 激光位移 - REBAR_STRESS, //0x0012 钢筋应力 - ANCHOR_ROD_STRESS, //0x0013 锚杆轴力 - SURFACE_STRESS, //0x0014 表面应力 - PRESSURE, //0x0015 压力 - MICROWAVE_DISPLACE, //0x0016 微波位移 - DISPLACEMENT = 0x0020, //0x0020 位移监测传感器 + SENSOR_TYPE_NULL, //0x0000 绌鸿澶 + FORCE_6D, //0x0001 鍏淮搴斿姏 + OSMOTIC_PRESSURE, //0x0002 娓楅忓帇 + ELASTIC_WAVEGUIDE, //0x0003 寮规ф尝瀵 + DIELECTRIC_MASS, //0x0004 浠嬬數璐ㄦ櫘 + VIBRATE_SENSOR, //0x0005 寰尟鍔ㄤ紶鎰熷櫒 + CONT_DEFOR_3D, //0x0006 涓夌淮杩炵画鍙樺舰 + COMM_UNIT, //0x0007 閫氳鍗曞厓 + FORCE_3D, //0x0008 涓夌淮搴斿姏 + LASER_TRACING, //0x0009 婵鍏夌ず韪 + WATER_LEVEL, //0x000A 姘翠綅璁 + _0x000B, //0x000B 淇濈暀 + _0x000C, //0x000C 淇濈暀 + MULTI_PARAMETER_FUSION, //0x000D 澶氬弬鏁拌瀺鍚 + CRACK_DETECTION, //0x000E 瑁傜紳浠 + _0x000F, //0x000F 淇濈暀 + ATTITUDE_MONITOR, //0x0010 濮挎佹娴 + LASER_DISPLACE, //0x0011 婵鍏変綅绉 + REBAR_STRESS, //0x0012 閽㈢瓔搴斿姏 + ANCHOR_ROD_STRESS, //0x0013 閿氭潌杞村姏 + SURFACE_STRESS, //0x0014 琛ㄩ潰搴斿姏 + PRESSURE, //0x0015 鍘嬪姏 + MICROWAVE_DISPLACE, //0x0016 寰尝浣嶇Щ + DISPLACEMENT = 0x0020, //0x0020 浣嶇Щ鐩戞祴浼犳劅鍣 }SensorType_m; -typedef struct {//主设备固定包头 - uint8_t BatLevel; //电池电量 - int8_t RSSI; //信号强度 - int8_t Nsr; //信噪比 +typedef struct {//涓昏澶囧浐瀹氬寘澶 + uint8_t BatLevel; //鐢垫睜鐢甸噺 + int8_t RSSI; //淇″彿寮哄害 + int8_t Nsr; //淇″櫔姣 }__attribute__ ((packed))MasterDev_T,*MasterDevDp; typedef struct { @@ -122,19 +122,19 @@ typedef struct { typedef struct { MasterDev_T MasterDev; - int16_t PitchAngle; //俯仰角偏斜 (范围±900)单位0.1° - int16_t RollAngle; //横滚角偏斜 (范围±900)单位0.1° - int16_t YawAngle; //偏航角偏斜 (范围0~3600)单位0.1° + int16_t PitchAngle; //淇话瑙掑亸鏂 锛堣寖鍥绰900锛夊崟浣0.1掳 + int16_t RollAngle; //妯粴瑙掑亸鏂 锛堣寖鍥绰900锛夊崟浣0.1掳 + int16_t YawAngle; //鍋忚埅瑙掑亸鏂 锛堣寖鍥0~3600锛夊崟浣0.1掳 }__attribute__((packed))LaserTracingType_T; -typedef struct {//0x0020 位移计 +typedef struct {//0x0020 浣嶇Щ璁 MasterDev_T MasterDev; - int16_t PitchAngle; //俯仰角偏斜(范围±900)单位0.1° - int16_t RollAngle; //横滚角偏斜(范围±900)单位0.1° - int16_t YawAngle; //偏航角偏斜(范围0~3600)单位0.1° - float Temp; //温度 - float Altitude; //海拔()单位cm - int16_t Distance; //1轴应力值转位移(范围±300,单位0.1mm) + int16_t PitchAngle; //淇话瑙掑亸鏂滐紙鑼冨洿卤900锛夊崟浣0.1掳 + int16_t RollAngle; //妯粴瑙掑亸鏂滐紙鑼冨洿卤900锛夊崟浣0.1掳 + int16_t YawAngle; //鍋忚埅瑙掑亸鏂滐紙鑼冨洿0~3600锛夊崟浣0.1掳 + float Temp; //娓╁害 + float Altitude; //娴锋嫈锛堬級鍗曚綅cm + int16_t Distance; //1杞村簲鍔涘艰浆浣嶇Щ锛堣寖鍥绰300,鍗曚綅0.1mm锛 }__attribute__ ((packed))Displacement_T,*DisplacementDp; typedef struct { @@ -142,11 +142,11 @@ typedef struct { }__attribute__((packed))LaserDistanceSensorType_t; typedef struct { - uint8_t CommDevAddr[6]; //通讯单元地址 - uint16_t CollectInterval; //采集时间间隔 - uint16_t ReportInterval; //上报时间间隔 - uint8_t ERInterval; //紧急上报时间间隔 - uint8_t ERTime; //紧急上报时长 + uint8_t CommDevAddr[6]; //閫氳鍗曞厓鍦板潃 + uint16_t CollectInterval; //閲囬泦鏃堕棿闂撮殧 + uint16_t ReportInterval; //涓婃姤鏃堕棿闂撮殧 + uint8_t ERInterval; //绱фヤ笂鎶ユ椂闂撮棿闅 + uint8_t ERTime; //绱фヤ笂鎶ユ椂闀 }__attribute__((packed))SvrDownLPDevConfigPara_t; typedef struct { @@ -155,47 +155,47 @@ typedef struct { uint8_t AlarmPara; }__attribute__((packed))GateWayAlarmType_t; -#define LW_DEV_COLLECT_INTERVAL_MAX 300//默认300秒 -#define LW_DEV_REPORT_INTERVAL_MAX 20//20分钟 -#define LW_DEV_ER_INTERVAL_MAX 2//2分钟 -#define LW_DEV_ER_TIME_MAX 20//20分钟 +#define LW_DEV_COLLECT_INTERVAL_MAX 300//榛樿300绉 +#define LW_DEV_REPORT_INTERVAL_MAX 20//20鍒嗛挓 +#define LW_DEV_ER_INTERVAL_MAX 2//2鍒嗛挓 +#define LW_DEV_ER_TIME_MAX 20//20鍒嗛挓 typedef struct { - uint16_t CollectInterval; //采集时间间隔 - uint16_t ReportInterval; //上报时间间隔 - uint8_t ERInterval; //紧急上报时间间隔 - uint8_t ERTime; //紧急上报时长 - uint32_t TimeStamp; //时间戳 + uint16_t CollectInterval; //閲囬泦鏃堕棿闂撮殧 + uint16_t ReportInterval; //涓婃姤鏃堕棿闂撮殧 + uint8_t ERInterval; //绱фヤ笂鎶ユ椂闂撮棿闅 + uint8_t ERTime; //绱фヤ笂鎶ユ椂闀 + uint32_t TimeStamp; //鏃堕棿鎴 }__attribute__((packed))LPDevConfigPara_t; typedef struct { bool RegFlag; bool RevNewDataFlag; - bool CommStatus; //通讯状态,1-在线,0-离线 - bool CailFlag; //校准标志(低功耗) - bool TimeSyncFlag; //时间同步标志(低功耗) - bool ContLaser; //激光控制标志(低功耗) - bool LaserOnOff; //激光状态(低功耗) + bool CommStatus; //閫氳鐘舵侊紝1-鍦ㄧ嚎锛0-绂荤嚎 + bool CailFlag; //鏍″噯鏍囧織锛堜綆鍔熻楋級 + bool TimeSyncFlag; //鏃堕棿鍚屾鏍囧織锛堜綆鍔熻楋級 + bool ContLaser; //婵鍏夋帶鍒舵爣蹇楋紙浣庡姛鑰楋級 + bool LaserOnOff; //婵鍏夌姸鎬侊紙浣庡姛鑰楋級 uint32_t CommErrCnt; uint8_t MasterMac[6]; - uint8_t Mac[SENSOR_NUM_MAX][6];//第一位是主设备,后面全是子设备 + uint8_t Mac[SENSOR_NUM_MAX][6];//绗竴浣嶆槸涓昏澶囷紝鍚庨潰鍏ㄦ槸瀛愯澶 uint8_t BatLevel; - int8_t RSSI; //信号强度 - int8_t Nsr; //信噪比 + int8_t RSSI; //淇″彿寮哄害 + int8_t Nsr; //淇″櫔姣 uint16_t CUType; uint8_t SensorN; uint16_t SensorType[SENSOR_NUM_MAX]; - //低功耗设备配置信息 - bool ConfigFlag; //配置标志,为1表示有新配置,应答低功耗设备时需要附带发送 - uint16_t CollectInterval; //采集时间间隔 - uint16_t ReportInterval; //上报时间间隔 - uint8_t ERInterval; //紧急上报时间间隔 - uint8_t ERTime; //紧急上报时长 + //浣庡姛鑰楄澶囬厤缃俊鎭 + bool ConfigFlag; //閰嶇疆鏍囧織锛屼负1琛ㄧず鏈夋柊閰嶇疆锛屽簲绛斾綆鍔熻楄澶囨椂闇瑕侀檮甯﹀彂閫 + uint16_t CollectInterval; //閲囬泦鏃堕棿闂撮殧 + uint16_t ReportInterval; //涓婃姤鏃堕棿闂撮殧 + uint8_t ERInterval; //绱фヤ笂鎶ユ椂闂撮棿闅 + uint8_t ERTime; //绱фヤ笂鎶ユ椂闀 }__attribute__((packed))CommUnitPara_t, *CommUnitPara; typedef struct { bool ExclFlag; - uint8_t ExclMac[6];//需要排除的通讯单元MAC + uint8_t ExclMac[6];//闇瑕佹帓闄ょ殑閫氳鍗曞厓MAC }__attribute__((packed))ExclCommUnit_t, *ExclCommUnit; typedef struct { @@ -207,10 +207,10 @@ typedef struct { }__attribute__((packed))CommUnit_t, *CommUnit; typedef struct { - bool Enable; //串口使能 - bool CommUnitEnable; //通讯单元使能,开启(使用内部通讯单元功能,直接和传感器通讯),关闭(直接和RS485类型的通讯单元通讯) - bool QuerySensorFlag; //查询传感器标志 - bool UpgradeEnable;//升级功能使能 + bool Enable; //涓插彛浣胯兘 + bool CommUnitEnable; //閫氳鍗曞厓浣胯兘锛屽紑鍚紙浣跨敤鍐呴儴閫氳鍗曞厓鍔熻兘锛岀洿鎺ュ拰浼犳劅鍣ㄩ氳锛夛紝鍏抽棴锛堢洿鎺ュ拰RS485绫诲瀷鐨勯氳鍗曞厓閫氳锛 + bool QuerySensorFlag; //鏌ヨ浼犳劅鍣ㄦ爣蹇 + bool UpgradeEnable;//鍗囩骇鍔熻兘浣胯兘 uint8_t Power; uint32_t BaudRate; SendData RS485Send; @@ -252,56 +252,56 @@ typedef struct { }LoraPara_t, *pLoraPara; typedef struct { - uint8_t DestAddr[4]; //目的服务器地址 - uint16_t DestPort; //目的服务器端口 - uint8_t LocalAddr[4]; //本地客户端地址(预留) - uint16_t LocalPort; //本地客户端端口(预留) + uint8_t DestAddr[4]; //鐩殑鏈嶅姟鍣ㄥ湴鍧 + uint16_t DestPort; //鐩殑鏈嶅姟鍣ㄧ鍙 + uint8_t LocalAddr[4]; //鏈湴瀹㈡埛绔湴鍧(棰勭暀) + uint16_t LocalPort; //鏈湴瀹㈡埛绔鍙(棰勭暀) }LTENetPara_t, *pLTENetPara; typedef struct { - uint8_t IpMode; //IP模式:DHCP/静态 - uint8_t IpAddr[4]; //本地IP地址 - uint16_t IpPort; //本地端口 - uint8_t WorkMode; //工作模式 - uint8_t SubnetMask[4]; //子网掩码 - uint8_t Gateway[4]; //网关 - uint8_t DestIp[4]; //目的IP地址 - uint16_t DestPort; //目的端口 + uint8_t IpMode; //IP妯″紡锛欴HCP/闈欐 + uint8_t IpAddr[4]; //鏈湴IP鍦板潃 + uint16_t IpPort; //鏈湴绔彛 + uint8_t WorkMode; //宸ヤ綔妯″紡 + uint8_t SubnetMask[4]; //瀛愮綉鎺╃爜 + uint8_t Gateway[4]; //缃戝叧 + uint8_t DestIp[4]; //鐩殑IP鍦板潃 + uint16_t DestPort; //鐩殑绔彛 }EthNetPara_t, *pEthNetPara; typedef struct { - uint32_t SavFlag; //存储标志 - CommType_m Comm; //网关通讯方式 - uint8_t GwMac[6]; //网关mac - LTENetPara_t LTENet; //Cat1/4G服务器参数 - EthNetPara_t EthNet; //以太网网络参数 - uint32_t CommUnitReadInterval; //通讯单元读取时间间隔,单位S - CommUnitPara_t CommUnitArray[COMMUNIT_NUM_MAX]; //注册的通讯单元信息 - ExclCommUnit_t ExclCommUnit[COMMUNIT_NUM_MAX]; //排除的通讯单元信息 - RS485Para_t Rs485Ch1; //RS485通道1配置 - RS485Para_t Rs485Ch2; //RS485通道2配置 - uint8_t DebugChannel; //调试通道 - LoraPara_t Lora; //Lora配置 - bool OutageFlag; //断电报警标志 + uint32_t SavFlag; //瀛樺偍鏍囧織 + CommType_m Comm; //缃戝叧閫氳鏂瑰紡 + uint8_t GwMac[6]; //缃戝叧mac + LTENetPara_t LTENet; //Cat1/4G鏈嶅姟鍣ㄥ弬鏁 + EthNetPara_t EthNet; //浠ュお缃戠綉缁滃弬鏁 + uint32_t CommUnitReadInterval; //閫氳鍗曞厓璇诲彇鏃堕棿闂撮殧,鍗曚綅S + CommUnitPara_t CommUnitArray[COMMUNIT_NUM_MAX]; //娉ㄥ唽鐨勯氳鍗曞厓淇℃伅 + ExclCommUnit_t ExclCommUnit[COMMUNIT_NUM_MAX]; //鎺掗櫎鐨勯氳鍗曞厓淇℃伅 + RS485Para_t Rs485Ch1; //RS485閫氶亾1閰嶇疆 + RS485Para_t Rs485Ch2; //RS485閫氶亾2閰嶇疆 + uint8_t DebugChannel; //璋冭瘯閫氶亾 + LoraPara_t Lora; //Lora閰嶇疆 + bool OutageFlag; //鏂數鎶ヨ鏍囧織 uint16_t crc16; }__attribute__((packed))GWConfigPara_t, *GWConfigPara; struct GateWay_t{ - bool TimeSyncFlag; //时间同步标志 - bool SvrRegFlag; //服务器注册标志 - uint8_t SvrMac[6]; //服务器mac - GWConfigPara_t ConfigPara; //配置参数 + bool TimeSyncFlag; //鏃堕棿鍚屾鏍囧織 + bool SvrRegFlag; //鏈嶅姟鍣ㄦ敞鍐屾爣蹇 + uint8_t SvrMac[6]; //鏈嶅姟鍣╩ac + GWConfigPara_t ConfigPara; //閰嶇疆鍙傛暟 CommUnitData_t CUDataArray[COMMUNIT_NUM_MAX]; - uint8_t Battery; //电池电量 - uint16_t UploadInterval; //上传间隔 - uint32_t HistoryNum; //历史数据数量 - DataRevCallBack SvrRevCallBack; //接收到服务器回调 - DataRevResCallBack CommUnitRevCallBack; //通讯单元接收回调 - rt_mq_t NetSendData_MQ; //网络发送数据队列,第一个字节用于存储消息长度, 第二字节存储命令字,后为数据 - rt_mq_t LoraRev_MQ; //Lora接收消息队列,第一个字节用于存储消息长度,后为数据 + uint8_t Battery; //鐢垫睜鐢甸噺 + uint16_t UploadInterval; //涓婁紶闂撮殧 + uint32_t HistoryNum; //鍘嗗彶鏁版嵁鏁伴噺 + DataRevCallBack SvrRevCallBack; //鎺ユ敹鍒版湇鍔″櫒鍥炶皟 + DataRevResCallBack CommUnitRevCallBack; //閫氳鍗曞厓鎺ユ敹鍥炶皟 + rt_mq_t NetSendData_MQ; //缃戠粶鍙戦佹暟鎹槦鍒楋紝绗竴涓瓧鑺傜敤浜庡瓨鍌ㄦ秷鎭暱搴, 绗簩瀛楄妭瀛樺偍鍛戒护瀛楋紝鍚庝负鏁版嵁 + rt_mq_t LoraRev_MQ; //Lora鎺ユ敹娑堟伅闃熷垪锛岀涓涓瓧鑺傜敤浜庡瓨鍌ㄦ秷鎭暱搴︼紝鍚庝负鏁版嵁 rt_mutex_t UartRevMutex; - uint8_t BatteryReadDlyCnt; //读取电压延时,单位秒,防止4G发送拉低电池电压,造成断电误报 + uint8_t BatteryReadDlyCnt; //璇诲彇鐢靛帇寤舵椂锛屽崟浣嶇锛岄槻姝4G鍙戦佹媺浣庣數姹犵數鍘嬶紝閫犳垚鏂數璇姤 }; int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen); diff --git a/Project/GateWay/source/User/Inc/RS485Task.h b/Project/GateWay/source/User/Inc/RS485Task.h index 46b7c1c..e0dd5b0 100644 --- a/Project/GateWay/source/User/Inc/RS485Task.h +++ b/Project/GateWay/source/User/Inc/RS485Task.h @@ -36,7 +36,7 @@ typedef enum { RS485_SENSOR_CMD_END, }RS485SensorCmd_m; -//传感器数据发送结构体 +//浼犳劅鍣ㄦ暟鎹彂閫佺粨鏋勪綋 typedef struct { bool SendFlag; uint8_t SensorCnt; diff --git a/Project/GateWay/source/User/Inc/bsp.h b/Project/GateWay/source/User/Inc/bsp.h index d64274c..e65b691 100644 --- a/Project/GateWay/source/User/Inc/bsp.h +++ b/Project/GateWay/source/User/Inc/bsp.h @@ -30,7 +30,7 @@ //#define BOOT_PARA_ADDRESS (FLASH_SIZE - FLASH_SECTOR_SIZE) //#define BOOT_PARA_SIZE (FLASH_SECTOR_SIZE) -/* flash rom map 存储分区*/ +/* flash rom map 瀛樺偍鍒嗗尯*/ //boot 16k #define FLASH_BASE ((uint32_t)0x00000000) #define FLASH_SECTOR_SIZE 0x2000ul @@ -337,7 +337,7 @@ bool SDCardWriteBlocks(uint32_t u32BlkStartAddr, uint32_t u32BlkEndAddr, uint8_t #define BAT_COLL_ADC_CH (ADC1_CH1) -//帧头结构体 +//甯уご缁撴瀯浣 typedef struct { uint8_t Header; uint8_t SlvAddr; @@ -345,20 +345,20 @@ typedef struct { uint8_t PayloadLen; }update_protocol_hd_t; -//主机下发升级请求载荷结构体 +//涓绘満涓嬪彂鍗囩骇璇锋眰杞借嵎缁撴瀯浣 typedef struct { uint16_t PackageNum; uint32_t AppSize; uint32_t AppCrc32; }__attribute__ ((packed))update_protocol_req_t; -//从机请求下发结构体 +//浠庢満璇锋眰涓嬪彂缁撴瀯浣 typedef struct { uint16_t PackageIndex; uint32_t PackageNum; }__attribute__ ((packed))update_protocol_get_t; -//主机应答下发数据结构体 +//涓绘満搴旂瓟涓嬪彂鏁版嵁缁撴瀯浣 typedef struct { uint16_t PackageIndex; uint16_t PackageNum; diff --git a/Project/GateWay/source/User/Inc/main.h b/Project/GateWay/source/User/Inc/main.h index dc13cee..c0f4740 100644 --- a/Project/GateWay/source/User/Inc/main.h +++ b/Project/GateWay/source/User/Inc/main.h @@ -4,7 +4,7 @@ #include "Public.h" #include "DebugCmd.h" -#define MAC_ADDR_TYPE 0//0为测试服务器 +#define MAC_ADDR_TYPE 0//0涓烘祴璇曟湇鍔″櫒 extern bool MainDispEn; #define MAIN_DBG_LOG(...) { if(MainDispEn) Debug_Printf(__VA_ARGS__);} diff --git a/Project/GateWay/source/User/Inc/protocol.h b/Project/GateWay/source/User/Inc/protocol.h index 168205a..d3bdc41 100644 --- a/Project/GateWay/source/User/Inc/protocol.h +++ b/Project/GateWay/source/User/Inc/protocol.h @@ -8,10 +8,10 @@ #define PROTOCOL_HEAD (0x527A) -#define PROTOCOL_FRAME_HEAD_SIZE (7) // 最小帧长:头(2) + 地址(2) + 命令(1) + 长度(2) + CRC(2) +#define PROTOCOL_FRAME_HEAD_SIZE (7) // 鏈灏忓抚闀匡細澶(2) + 鍦板潃(2) + 鍛戒护(1) + 闀垮害(2) + CRC(2) -#define PROTOCOL_FRAME_MIN_SIZE (9) // 最小帧长:头(2) + 地址(2) + 命令(1) + 长度(2) + CRC(2) -// 错误码定义 +#define PROTOCOL_FRAME_MIN_SIZE (9) // 鏈灏忓抚闀匡細澶(2) + 鍦板潃(2) + 鍛戒护(1) + 闀垮害(2) + CRC(2) +// 閿欒鐮佸畾涔 typedef enum { PROTOCOL_SUCCESS = 0, PROTOCOL_ERR_INVALID_PARAM, diff --git a/Project/GateWay/source/User/Inc/ringbuffer.h b/Project/GateWay/source/User/Inc/ringbuffer.h index b517e6c..bbb6512 100644 --- a/Project/GateWay/source/User/Inc/ringbuffer.h +++ b/Project/GateWay/source/User/Inc/ringbuffer.h @@ -1,5 +1,5 @@ /****************************************************************************** - * @brief 环形缓冲区管理(参考linux/kfifo) + * @brief 鐜舰缂撳啿鍖虹鐞(鍙傝僱inux/kfifo) * * Copyright (c) 2016~2020, * @@ -7,7 +7,7 @@ * * Change Logs: * Date Author Notes - * 2016-05-30 Morro 初版完成 + * 2016-05-30 Morro 鍒濈増瀹屾垚 ******************************************************************************/ #ifndef _RING_BUF_H_ @@ -19,12 +19,12 @@ extern "C" { #endif -/*环形缓冲区管理器*/ +/*鐜舰缂撳啿鍖虹鐞嗗櫒*/ typedef struct { - unsigned char *buf; /*环形缓冲区 */ - unsigned int size; /*环形缓冲区 */ - unsigned int front; /*头指针 */ - unsigned int rear; /*尾指针 */ + unsigned char *buf; /*鐜舰缂撳啿鍖 */ + unsigned int size; /*鐜舰缂撳啿鍖 */ + unsigned int front; /*澶存寚閽 */ + unsigned int rear; /*灏炬寚閽 */ }ring_buf_t; bool ring_buf_init(ring_buf_t *r,unsigned char *buf,unsigned int size); diff --git a/Project/GateWay/source/User/Inc/spiflash.h b/Project/GateWay/source/User/Inc/spiflash.h index cbfcd1c..4228fed 100644 --- a/Project/GateWay/source/User/Inc/spiflash.h +++ b/Project/GateWay/source/User/Inc/spiflash.h @@ -42,20 +42,20 @@ uint32_t SpiFlashReadId(void); //#if (LORA_MODULE == WH_LR36_L) //#define LOG_SAV_SIZE 78 -//#define LOG_SAV_NUM_SECTOR 52 //每扇区存储数量 +//#define LOG_SAV_NUM_SECTOR 52 //姣忔墖鍖哄瓨鍌ㄦ暟閲 //#else //#define LOG_SAV_SIZE 78 //150 -//#define LOG_SAV_NUM_SECTOR 52 //27 //每扇区存储数量 +//#define LOG_SAV_NUM_SECTOR 52 //27 //姣忔墖鍖哄瓨鍌ㄦ暟閲 //#endif #define LOG_SAV_SIZE_MAX 256 #define LOG_SAV_NUM_MAX ((SPIFLASH_SECTOR_NUM - LOG_SAV_START_SECTOR) * LOG_SAV_NUM_SECTOR) typedef struct { - uint32_t LogSavFlag; //日志存储标志 - uint32_t LogIdx; //日志序号 - uint32_t LogEndAddr; //日志结束地址 - uint32_t TimeStamp; //存储时间 + uint32_t LogSavFlag; //鏃ュ織瀛樺偍鏍囧織 + uint32_t LogIdx; //鏃ュ織搴忓彿 + uint32_t LogEndAddr; //鏃ュ織缁撴潫鍦板潃 + uint32_t TimeStamp; //瀛樺偍鏃堕棿 }LogHeader_t, *LogHeader; void SavMMC5983Calib(uint8_t *wData, uint32_t wLen); diff --git a/Project/GateWay/source/User/Src/CatOneTask.c b/Project/GateWay/source/User/Src/CatOneTask.c index 2595576..b31a2c0 100644 --- a/Project/GateWay/source/User/Src/CatOneTask.c +++ b/Project/GateWay/source/User/Src/CatOneTask.c @@ -23,7 +23,7 @@ static uint8_t EthRevTimeOutCnt; static uint16_t CatSendErrCnt = 0; -// ETH状态机相关变量已移至 CatOne_t 结构体中 +// ETH鐘舵佹満鐩稿叧鍙橀噺宸茬Щ鑷 CatOne_t 缁撴瀯浣撲腑 #define CAT1_DBG_LOG(...) { if(CAT1DispEn) Debug_Printf(__VA_ARGS__);} //#define CAT1_DBG_ARRAY(ARRAY, SIZE) { if(CAT1DispEn) {DBG_ARRAY(ARRAY,SIZE)}} @@ -32,43 +32,43 @@ static uint16_t CatSendErrCnt = 0; //const char *CatOneATCmdStr[16] = { // "NULL", -// "AT\r\n", //开机检测 -// "ATE0\r\n", //关回显 -// "AT+CPIN?\r\n", //识卡 +// "AT\r\n", //寮鏈烘娴 +// "ATE0\r\n", //鍏冲洖鏄 +// "AT+CPIN?\r\n", //璇嗗崱 //// "AT+CIMI\r\n", //IMEI // "AT+CGSN=1\r\n", -// "AT+LCCID\r\n", //读卡号 -// "AT+CEREG?\r\n", //查询注册状态 -// "AT+CGPADDR=1\r\n", //查询IP地址 -// "AT+CSQ\r\n", //查询信号强度 +// "AT+LCCID\r\n", //璇诲崱鍙 +// "AT+CEREG?\r\n", //鏌ヨ娉ㄥ唽鐘舵 +// "AT+CGPADDR=1\r\n", //鏌ヨIP鍦板潃 +// "AT+CSQ\r\n", //鏌ヨ淇″彿寮哄害 // "AT+LDNSGIP=gxjt.cui635.cn\r\n", -// "AT+LBS=0\r\n", //获取基站定位信息 -// "AT+LIPOPEN=", //设置TCP服务器地址和端口,AT+LIPOPEN="TCP","114.55.52.96",6803 -// "AT+LIPSEND=", //发送数据, AT+LIPSEND=0,1,20,"31313131313131323232323232" -// "AT+LIPCLOSE=0\r\n",//断开连接 +// "AT+LBS=0\r\n", //鑾峰彇鍩虹珯瀹氫綅淇℃伅 +// "AT+LIPOPEN=", //璁剧疆TCP鏈嶅姟鍣ㄥ湴鍧鍜岀鍙o紝AT+LIPOPEN="TCP","114.55.52.96",6803 +// "AT+LIPSEND=", //鍙戦佹暟鎹, AT+LIPSEND=0,1,20,"31313131313131323232323232" +// "AT+LIPCLOSE=0\r\n",//鏂紑杩炴帴 // "AT+LBSPARA=http://locator-aep.xiot.senthink.com:80/locator/v0.1/locate,B84E427D95B1DF4A3F49B18DDF714C72\r\n", -// "AT+CCLK?\r\n", //获取时间 +// "AT+CCLK?\r\n", //鑾峰彇鏃堕棿 //}; const char *CatOneATCmdStr[16] = { "NULL", - "AT\r\n", //开机检测 - "ATE0\r\n", //关回显 - "AT+CPIN?\r\n", //识卡 + "AT\r\n", //寮鏈烘娴 + "ATE0\r\n", //鍏冲洖鏄 + "AT+CPIN?\r\n", //璇嗗崱 // "AT+CIMI\r\n", //IMEI "AT+CGSN=1\r\n", - "AT+QCCID\r\n", //读卡号 - "AT+CEREG?\r\n", //查询注册状态 - "AT+CGPADDR=1\r\n", //查询IP地址 - "AT+CSQ\r\n", //查询信号强度 + "AT+QCCID\r\n", //璇诲崱鍙 + "AT+CEREG?\r\n", //鏌ヨ娉ㄥ唽鐘舵 + "AT+CGPADDR=1\r\n", //鏌ヨIP鍦板潃 + "AT+CSQ\r\n", //鏌ヨ淇″彿寮哄害 "AT+LDNSGIP=gxjt.cui635.cn\r\n", - "AT+QLBS\r\n", //获取基站定位信息 - "AT+QIOPEN=", //设置TCP服务器地址和端口,AT+LIPOPEN="TCP","114.55.52.96",6803 - "AT+QISEND=", //发送数据, AT+LIPSEND=0,1,20,"31313131313131323232323232" - "AT+QICLOSE=0\r\n",//断开连接 + "AT+QLBS\r\n", //鑾峰彇鍩虹珯瀹氫綅淇℃伅 + "AT+QIOPEN=", //璁剧疆TCP鏈嶅姟鍣ㄥ湴鍧鍜岀鍙o紝AT+LIPOPEN="TCP","114.55.52.96",6803 + "AT+QISEND=", //鍙戦佹暟鎹, AT+LIPSEND=0,1,20,"31313131313131323232323232" + "AT+QICLOSE=0\r\n",//鏂紑杩炴帴 "AT+QLBSCFG=\"server\",http://locator-aep.xiot.senthink.com:80/locator/v0.1/locate\r\n", "AT+QLBSCFG=\"token\",45B516D3078467E84DD2CFBF3532A4CB\r\n", - "AT+CCLK?\r\n", //获取时间 + "AT+CCLK?\r\n", //鑾峰彇鏃堕棿 }; void Cat1DBGOnOff(bool OnOff) @@ -146,7 +146,7 @@ void CatOneGetIMEIAndSIM(char *Imei, char *Sim) memcpy(Sim, CatOne.SIM, 20); } -//返回true-busy, false-Idle +//杩斿洖true-busy, false-Idle bool CatOneGetStatus(void) { if(CatOne.Cat1Status == CAT_ONE_IDEL) @@ -355,7 +355,7 @@ void CatOneAtCmdAnalyze(char *RxBuff) return; } //CatOne.Cat1Status = CAT_ONE_CLOSE_TCP; - rt_sem_release(CatOneRev_Sem);//接收任务 + rt_sem_release(CatOneRev_Sem);//鎺ユ敹浠诲姟 return; } default: @@ -459,7 +459,7 @@ void CatOneLoopHandler(void) CatOneAtCmdSend(CatOne.AtCmd, 2000, CatOne.NextStatus); CAT1_DBG_LOG("Cat1 Ret TimeOut, ReSend(%d)...\r\n", CatOne.AtCmdResendCnt); } - else { //3次错误,关机 + else { //3娆¢敊璇紝鍏虫満 CAT1_DBG_LOG("Cat1 error, Close!\r\n"); if(CatOne.AtCmd == CAT_ONE_LIPSEND) CatOne.Cat1Status = CAT_ONE_CLOSE_TCP; @@ -499,7 +499,7 @@ void CatOneLoopHandler(void) } break; - case CAT_ONE_REG_SVR: //注册服务器 + case CAT_ONE_REG_SVR: //娉ㄥ唽鏈嶅姟鍣 ret = GateWayRegister(CatOneEthTxBuff); rt_mq_send(CatOne.GateWay->NetSendData_MQ, CatOneEthTxBuff, ret); CatOne.Cat1Status = CAT_ONE_WAIT_SEND; @@ -513,7 +513,7 @@ void CatOneLoopHandler(void) CatOne.Cat1Status = CAT_ONE_SEND_DATA; } else { - if(CatOne.Cat1Status == CAT_ONE_RESET || CatOne.Cat1Status == CAT_ONE_OFF) //外部命令执行,状态改变 + if(CatOne.Cat1Status == CAT_ONE_RESET || CatOne.Cat1Status == CAT_ONE_OFF) //澶栭儴鍛戒护鎵ц锛岀姸鎬佹敼鍙 return; if(!CatOne.TcpConnFlag) { CatOne.Cat1Status = CAT_ONE_OFF; @@ -554,7 +554,7 @@ void CatOneLoopHandler(void) else { Cat1RevErrCnt = 0; } - if(CatOne.GateWay->SvrRegFlag == false) //设备没注册,关闭4G,等待下一次重新注册 + if(CatOne.GateWay->SvrRegFlag == false) //璁惧娌℃敞鍐岋紝鍏抽棴4G锛岀瓑寰呬笅涓娆¢噸鏂版敞鍐 CatOne.Cat1Status = CAT_ONE_OFF; else CatOne.Cat1Status = CAT_ONE_WAIT_SEND; @@ -618,15 +618,15 @@ void EthLoopHandler(void) ETH_RESET_CLR(); rt_thread_delay(10); ETH_RESET_SET(); - rt_thread_delay(2000); // 延长复位后稳定时间到2秒 + rt_thread_delay(2000); // 寤堕暱澶嶄綅鍚庣ǔ瀹氭椂闂村埌2绉 CatOne.EthStatus = ETH_WAIT_LINK; CatOne.EthLinkWaitCnt = 0; - CatOne.EthFirstRegFlag = true; // 重置首次注册标志 + CatOne.EthFirstRegFlag = true; // 閲嶇疆棣栨娉ㄥ唽鏍囧織 break; case ETH_WAIT_LINK: if(CatOne.EthLinkWaitCnt == 0) { - /* 首次进入等待链路状态,等待模块完全启动 */ + /* 棣栨杩涘叆绛夊緟閾捐矾鐘舵,绛夊緟妯″潡瀹屽叏鍚姩 */ CAT1_DBG_LOG("ETH Waiting for module ready...\r\n"); rt_thread_delay(2000); } @@ -651,7 +651,7 @@ void EthLoopHandler(void) case ETH_REG_SVR: { - // 首次注册时添加延迟,等待系统稳定 + // 棣栨娉ㄥ唽鏃舵坊鍔犲欢杩燂紝绛夊緟绯荤粺绋冲畾 if(CatOne.EthFirstRegFlag) { CAT1_DBG_LOG("ETH First Register, waiting for system stable...\r\n"); rt_thread_delay(ETH_FIRST_REG_DELAY); @@ -662,7 +662,7 @@ void EthLoopHandler(void) rt_mq_send(CatOne.GateWay->NetSendData_MQ, CatOneEthTxBuff, ret); CAT1_DBG_LOG("ETH Register Server...\r\n"); CatOne.EthStatus = ETH_WAIT_SEND; - CatOne.EthSendRetryCnt = 0; // 重置重试计数器 + CatOne.EthSendRetryCnt = 0; // 閲嶇疆閲嶈瘯璁℃暟鍣 } break; @@ -835,7 +835,7 @@ void CatOne_Eth_Thread_Entry(void *parameter) rt_kprintf("CatOneRev Thread Create Failed! Exit...\r\n"); return; } - rt_kprintf("CatOne Thread is running!\r\n"); + rt_kprintf("CatOne Thread is running锛乗r\n"); while(1) { //rt_mutex_take(GateWay->UartRevMutex, RT_WAITING_FOREVER); diff --git a/Project/GateWay/source/User/Src/Encryption.c b/Project/GateWay/source/User/Src/Encryption.c index daca8b5..748bd79 100644 --- a/Project/GateWay/source/User/Src/Encryption.c +++ b/Project/GateWay/source/User/Src/Encryption.c @@ -1,6 +1,6 @@ #include "encryption.h" -//从机加密表 +//浠庢満鍔犲瘑琛 const unsigned char EPT_Table[32][6] = { {1, 6, 4, 2, 3, 5}, {2, 4, 6, 3, 5, 1}, {3, 5, 6, 2, 1, 4}, {5, 3, 2, 1, 4, 6}, {4, 2, 3, 1, 5, 6}, {6, 3, 5, 1, 4, 2}, {3, 5, 2, 6, 4, 1}, {2, 5, 4, 3, 1, 6}, @@ -12,7 +12,7 @@ const unsigned char EPT_Table[32][6] = { {3, 6, 5, 4, 2, 1}, {1, 2, 6, 3, 5, 4}, {4, 6, 5, 3, 2, 1}, {5, 3, 4, 2, 6, 1} }; -//从机解密表: +//浠庢満瑙e瘑琛細 const unsigned char DPT_Table[32][5] ={ {1, 4, 2, 3, 5}, {2, 4, 3, 5, 1}, {3, 5, 2, 1, 4}, {5, 3, 2, 1, 4}, {4, 2, 3, 1, 5}, {3, 5, 1, 4, 2}, {3, 5, 2, 4, 1}, {2, 5, 4, 3, 1}, @@ -24,7 +24,7 @@ const unsigned char DPT_Table[32][5] ={ {3, 5, 4, 2, 1}, {1, 2, 3, 5, 4}, {4, 5, 3, 2, 1}, {5, 3, 4, 2, 1} }; -//数据位加密表: +//鏁版嵁浣嶅姞瀵嗚〃锛 const unsigned char EPT_D[32] = { 0x23, 0x4c, 0x92, 0x38, 0x52, 0xa4, 0x9a, 0x61, 0x86, 0xc8, 0x70, 0x16, 0x32, 0x58, 0x62, 0x83, @@ -33,11 +33,11 @@ const unsigned char EPT_D[32] = { }; /****************************************************************/ -/* 加密函数 */ +/* 鍔犲瘑鍑芥暟 */ /* */ -/*函数入口: *data,未加密的普通协议数据 */ +/*鍑芥暟鍏ュ彛: *data,鏈姞瀵嗙殑鏅氬崗璁暟鎹 */ /* */ -/*函数出口: *EPT_data,生成的加密协议 */ +/*鍑芥暟鍑哄彛: *EPT_data锛岀敓鎴愮殑鍔犲瘑鍗忚 */ /****************************************************************/ void Encrypt_Code(unsigned char *data, unsigned char *EPT_data) { unsigned char Edata[6]; @@ -60,11 +60,11 @@ void Encrypt_Code(unsigned char *data, unsigned char *EPT_data) { } /****************************************************************/ -/* 解密函数 */ +/* 瑙e瘑鍑芥暟 */ /* */ -/*函数入口: *EPT_data,需要解密的加密协议 */ +/*鍑芥暟鍏ュ彛锛 *EPT_data锛岄渶瑕佽В瀵嗙殑鍔犲瘑鍗忚 */ /* */ -/*函数出口: *DPT_data,生成的普通协议 */ +/*鍑芥暟鍑哄彛锛 *DPT_data锛岀敓鎴愮殑鏅氬崗璁 */ /****************************************************************/ void Decrypt_Code(unsigned char *EPT_data,unsigned char *DPT_data) { unsigned char data[5]; diff --git a/Project/GateWay/source/User/Src/LoraTask.c b/Project/GateWay/source/User/Src/LoraTask.c index 9ad546a..05c32d9 100644 --- a/Project/GateWay/source/User/Src/LoraTask.c +++ b/Project/GateWay/source/User/Src/LoraTask.c @@ -3,7 +3,7 @@ #include "CatOneTask.h" #include "DebugCmd.h" -#define UC_OFFLINE_TIME_INTERVAL_MAX (2 * 60 * 60)//离线判断最大时间间隔,单位秒 +#define UC_OFFLINE_TIME_INTERVAL_MAX (2 * 60 * 60)//绂荤嚎鍒ゆ柇鏈澶ф椂闂撮棿闅旓紝鍗曚綅绉 static rt_sem_t LoraDioIRQ_Sem = RT_NULL; static rt_thread_t LoraIRQ_Thread = RT_NULL; @@ -14,7 +14,7 @@ void LoraSend(uint8_t* pucBuff, uint8_t ucLen) Sx1276LoRaSendBuffer(pucBuff, ucLen); } -//Lora接收消息统一放到消息队列,由接收任务处理 +//Lora鎺ユ敹娑堟伅缁熶竴鏀惧埌娑堟伅闃熷垪锛岀敱鎺ユ敹浠诲姟澶勭悊 int LoraRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) { uint8_t *sData; @@ -41,7 +41,7 @@ void LoraIRQ_Thread_Entry(void *parameter) rt_err_t result; static uint16_t LoraErrCnt = 0; - Debug_Printf("LoraRev Thread is running!\r\n"); + Debug_Printf("LoraRev Thread is running锛乗r\n"); while(1) { if(GateWay->ConfigPara.Lora.OnOff == false) { rt_thread_delay(100); @@ -55,9 +55,9 @@ void LoraIRQ_Thread_Entry(void *parameter) } else { LoraErrCnt++; - if(LoraErrCnt > LORA_ERR_RESET_DLY_MAX) { //15分钟内没有收到lora数据重启lora模块 + if(LoraErrCnt > LORA_ERR_RESET_DLY_MAX) { //15鍒嗛挓鍐呮病鏈夋敹鍒發ora鏁版嵁閲嶅惎lora妯″潡 LoraErrCnt = 0; - Debug_Printf("Lora Reset!\r\n"); + Debug_Printf("Lora Reset锛乗r\n"); Sx1276LoRaInit(LoraRevCallBack); } } @@ -97,7 +97,7 @@ void Lora_Thread_Entry(void *parameter) rt_thread_startup(LoraIRQ_Thread); Sx1276LoRaInit(LoraRevCallBack); - Debug_Printf("Lora Thread is running!\r\n"); + Debug_Printf("Lora Thread is running锛乗r\n"); #ifdef LORA_LOWPOWER while(1) { if(GateWay->ConfigPara.Lora.OnOff == false) { @@ -108,10 +108,10 @@ void Lora_Thread_Entry(void *parameter) result = rt_mq_recv(GateWay->LoraRev_MQ, Payload, 256, 1000); if(result == RT_EOK) { int ret = GateWay->CommUnitRevCallBack(GateWay, &Payload[1], Payload[0], LoRaSendBuffer); - if(ret == 0xff) //注册信息 + if(ret == 0xff) //娉ㄥ唽淇℃伅 continue; } - else { //离线判断 + else { //绂荤嚎鍒ゆ柇 for(int i = 0; i < COMMUNIT_NUM_MAX; i++) { if(GateWay->ConfigPara.CommUnitArray[i].RegFlag == true) { if(GateWay->ConfigPara.CommUnitArray[i].CommErrCnt < UC_OFFLINE_TIME_INTERVAL_MAX) { @@ -131,7 +131,7 @@ void Lora_Thread_Entry(void *parameter) GateWay->ConfigPara.CommUnitArray[i].Mac[0][3], GateWay->ConfigPara.CommUnitArray[i].Mac[0][4], GateWay->ConfigPara.CommUnitArray[i].Mac[0][5]); - CatOneEthSendQueue(MegData, 10); //发送离线消息 + CatOneEthSendQueue(MegData, 10); //鍙戦佺绾挎秷鎭 } } } @@ -171,7 +171,7 @@ void Lora_Thread_Entry(void *parameter) result = rt_mq_recv(GateWay->LoraRev_MQ, Payload, 256, 1000); if(result == RT_EOK) { int ret = GateWay->CommUnitRevCallBack(GateWay, &Payload[1], Payload[0], Sx1276LoRaSendBuffer); - if(ret == 0xff) //注册信息 + if(ret == 0xff) //娉ㄥ唽淇℃伅 continue; if(UnitCommSendFlag && GateWay->ConfigPara.CommUnitArray[SendUnitCommIdx].RevNewDataFlag) { @@ -179,7 +179,7 @@ void Lora_Thread_Entry(void *parameter) SendUnitCommIdx++; } } - else if(UnitCommSendFlag) { //离线判断 + else if(UnitCommSendFlag) { //绂荤嚎鍒ゆ柇 GateWay->ConfigPara.CommUnitArray[SendUnitCommIdx].CommErrCnt++; if(GateWay->ConfigPara.CommUnitArray[SendUnitCommIdx].CommErrCnt == 10) { GateWay->ConfigPara.CommUnitArray[SendUnitCommIdx].CommErrCnt = 0; @@ -190,7 +190,7 @@ void Lora_Thread_Entry(void *parameter) MegData[2] = COMM_UNIT_CMD_READ; memcpy(&MegData[3], GateWay->ConfigPara.CommUnitArray[SendUnitCommIdx].Mac[0], 6); MegData[9] = GateWay->ConfigPara.CommUnitArray[SendUnitCommIdx].CommStatus; - CatOneEthSendQueue(MegData, 10); //发送离线消息 + CatOneEthSendQueue(MegData, 10); //鍙戦佺绾挎秷鎭 } } UnitCommSendFlag = false; diff --git a/Project/GateWay/source/User/Src/Public.c b/Project/GateWay/source/User/Src/Public.c index 66d4d0b..da72f67 100644 --- a/Project/GateWay/source/User/Src/Public.c +++ b/Project/GateWay/source/User/Src/Public.c @@ -7,50 +7,50 @@ #include #include "sx127x.h" -//传感器对应的数据长度 +//浼犳劅鍣ㄥ搴旂殑鏁版嵁闀垮害 const uint8_t SensorTypeDataLen[] = { - 0, //0x0000-保留 - 30, //0x0001-应力场检测单元 - 12, //0x0002-渗透压检测单元 - 14, //0x0003-弹性波导检测单元 - 10, //0x0004-介电质普检测单元 - 6, //0x0005-微振动 - 6, //0x0006-三维连续变形检测单元 - 3, //0x0007-通讯单元 - 18, //0x0008-三维应力检测单元 - 9, //0x0009-激光示踪(主设备) - 12, //0x000A-水位计 - 0, //0x000B-保留 - 0, //0x000C-保留 - 14, //0x000D-二维应力场检测单元 - 9, //0x000E-裂缝检测单元 - 0, //0x000F-预留 - 8, //0x0010-姿态检测单元 - 4, //0x0011-激光位移检测单元 - 4, //0x0012-表面应力传感器 - 4, //0x0013-压力传感器 - 4, //0x0014-微波测距传感器 - 0, //0x0015-表贴式结冰传感器 - 0, //0x0016-埋入式结冰传感器 - 4, //0x0017-单通道钢筋应力传感器 - 4, //0x0018-单通道锚杆轴力传感器 - 32, //0x0019-8通道钢筋拉压力传感器 - 32, //0x001A-8通道锚杆轴力传感器 - 0, //0x001B-16通道钢筋应力传感器 - 0, //0x001C-16通道锚杆轴力传感器 - 0, //0x001D-爆炸冲击传感器 - 0, //0x001E-随行支架传感器 - 0, //0x001F-冻融循环传感器 - 19, //0x0020-位移计 + 0, //0x0000-淇濈暀 + 30, //0x0001-搴斿姏鍦烘娴嬪崟鍏 + 12, //0x0002-娓楅忓帇妫娴嬪崟鍏 + 14, //0x0003-寮规ф尝瀵兼娴嬪崟鍏 + 10, //0x0004-浠嬬數璐ㄦ櫘妫娴嬪崟鍏 + 6, //0x0005-寰尟鍔 + 6, //0x0006-涓夌淮杩炵画鍙樺舰妫娴嬪崟鍏 + 3, //0x0007-閫氳鍗曞厓 + 18, //0x0008-涓夌淮搴斿姏妫娴嬪崟鍏 + 9, //0x0009-婵鍏夌ず韪(涓昏澶) + 12, //0x000A-姘翠綅璁 + 0, //0x000B-淇濈暀 + 0, //0x000C-淇濈暀 + 14, //0x000D-浜岀淮搴斿姏鍦烘娴嬪崟鍏 + 9, //0x000E-瑁傜紳妫娴嬪崟鍏 + 0, //0x000F-棰勭暀 + 8, //0x0010-濮挎佹娴嬪崟鍏 + 4, //0x0011-婵鍏変綅绉绘娴嬪崟鍏 + 4, //0x0012-琛ㄩ潰搴斿姏浼犳劅鍣 + 4, //0x0013-鍘嬪姏浼犳劅鍣 + 4, //0x0014-寰尝娴嬭窛浼犳劅鍣 + 0, //0x0015-琛ㄨ创寮忕粨鍐颁紶鎰熷櫒 + 0, //0x0016-鍩嬪叆寮忕粨鍐颁紶鎰熷櫒 + 4, //0x0017-鍗曢氶亾閽㈢瓔搴斿姏浼犳劅鍣 + 4, //0x0018-鍗曢氶亾閿氭潌杞村姏浼犳劅鍣 + 32, //0x0019-8閫氶亾閽㈢瓔鎷夊帇鍔涗紶鎰熷櫒 + 32, //0x001A-8閫氶亾閿氭潌杞村姏浼犳劅鍣 + 0, //0x001B-16閫氶亾閽㈢瓔搴斿姏浼犳劅鍣 + 0, //0x001C-16閫氶亾閿氭潌杞村姏浼犳劅鍣 + 0, //0x001D-鐖嗙偢鍐插嚮浼犳劅鍣 + 0, //0x001E-闅忚鏀灦浼犳劅鍣 + 0, //0x001F-鍐昏瀺寰幆浼犳劅鍣 + 19, //0x0020-浣嶇Щ璁 }; /***************************************************************************************** -* 函数名称: CRC_Modbus -* 功能描述: CRC16计算函数 -* 参 数: wBase, 多项式 - Para,校验数据入口 - Data, 校验数据长度入口 -* 返 回 值: crc16校验值 +* 鍑芥暟鍚嶇О: CRC_Modbus +* 鍔熻兘鎻忚堪: CRC16璁$畻鍑芥暟 +* 鍙 鏁: wBase, 澶氶」寮 + Para锛屾牎楠屾暟鎹叆鍙 + Data, 鏍¢獙鏁版嵁闀垮害鍏ュ彛 +* 杩 鍥 鍊: crc16鏍¢獙鍊 *****************************************************************************************/ uint16_t CRC_Modbus(uint16_t wBase, __IO uint8_t *para, uint16_t length) { @@ -73,12 +73,12 @@ uint16_t CRC_Modbus(uint16_t wBase, __IO uint8_t *para, uint16_t length) } /***************************************************************************************** -* 函数名称: HexToAscii -* 功能描述: HEX转换为ASCII字符串函数 -* 参 数: HexData, 16进制数据入口 - ASCData,转换后的ASCII数据 - sLen, 需要转的16进制数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: HexToAscii +* 鍔熻兘鎻忚堪: HEX杞崲涓篈SCII瀛楃涓插嚱鏁 +* 鍙 鏁: HexData, 16杩涘埗鏁版嵁鍏ュ彛 + ASCData锛岃浆鎹㈠悗鐨凙SCII鏁版嵁 + sLen, 闇瑕佽浆鐨16杩涘埗鏁版嵁闀垮害 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void HexToAscii(uint8_t *HexData, char *ASCData, uint8_t sLen) { @@ -105,12 +105,12 @@ void HexToAscii(uint8_t *HexData, char *ASCData, uint8_t sLen) } /***************************************************************************************** -* 函数名称: AsciiToHex -* 功能描述: AscII字符串转换为16进制数组 -* 参 数: ASCData, AscII字符串入口 - HexData,转换后的数据 - sLen, 需要转的字符串长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: AsciiToHex +* 鍔熻兘鎻忚堪: AscII瀛楃涓茶浆鎹负16杩涘埗鏁扮粍 +* 鍙 鏁: ASCData, AscII瀛楃涓插叆鍙 + HexData锛岃浆鎹㈠悗鐨勬暟鎹 + sLen, 闇瑕佽浆鐨勫瓧绗︿覆闀垮害 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ uint8_t AsciiToHex(char *ASCData, uint8_t *HexData, uint8_t sLen) { @@ -142,11 +142,11 @@ uint8_t AsciiToHex(char *ASCData, uint8_t *HexData, uint8_t sLen) } /***************************************************************************************** -* 函数名称: ReadHistoryData -* 功能描述: 读取历史数据 -* 参 数: rData,输入数据 - rLen, 输入数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: ReadHistoryData +* 鍔熻兘鎻忚堪: 璇诲彇鍘嗗彶鏁版嵁 +* 鍙 鏁: rData,杈撳叆鏁版嵁 + rLen, 杈撳叆鏁版嵁闀垮害 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ int ReadHistoryData(LogHeader LogH, uint8_t **Data, int Idx) { @@ -154,11 +154,11 @@ int ReadHistoryData(LogHeader LogH, uint8_t **Data, int Idx) } /***************************************************************************************** -* 函数名称: NetCommOrgData -* 功能描述: 上报数据组织 -* 参 数: MegData, 消息队列数据 - OutData, 输出数据出口 -* 返 回 值: 数据长度 +* 鍑芥暟鍚嶇О: NetCommOrgData +* 鍔熻兘鎻忚堪: 涓婃姤鏁版嵁缁勭粐 +* 鍙 鏁: MegData, 娑堟伅闃熷垪鏁版嵁 + OutData, 杈撳嚭鏁版嵁鍑哄彛 +* 杩 鍥 鍊: 鏁版嵁闀垮害 *****************************************************************************************/ int NetCommOrgData(GateWayPara GateWay, uint8_t *MegData, uint8_t *OutData) { @@ -197,11 +197,11 @@ int NetCommOrgData(GateWayPara GateWay, uint8_t *MegData, uint8_t *OutData) } /***************************************************************************************** -* 函数名称: CheckCommUnitReg -* 功能描述: 检查设备是否注册 -* 参 数: GateWay,网关句柄 - CommUnitMac, 待检查的设备MAC -* 返 回 值: 已注册返回非0,没注册返回-1 +* 鍑芥暟鍚嶇О: CheckCommUnitReg +* 鍔熻兘鎻忚堪: 妫鏌ヨ澶囨槸鍚︽敞鍐 +* 鍙 鏁: GateWay,缃戝叧鍙ユ焺 + CommUnitMac, 寰呮鏌ョ殑璁惧MAC +* 杩 鍥 鍊: 宸叉敞鍐岃繑鍥為潪0,娌℃敞鍐岃繑鍥-1 *****************************************************************************************/ int CheckCommUnitReg(GateWayPara GateWay, uint8_t *CommUnitMac) { @@ -214,15 +214,15 @@ int CheckCommUnitReg(GateWayPara GateWay, uint8_t *CommUnitMac) return -1; } /***************************************************************************************** -* 函数名称: CheckCommUnitExcl -* 功能描述: 检查设备是否排除 -* 参 数: GateWay,网关句柄 - CommUnitMac, 待检查的设备MAC -* 返 回 值: 已排除返回非0,没排除返回-1 +* 鍑芥暟鍚嶇О: CheckCommUnitExcl +* 鍔熻兘鎻忚堪: 妫鏌ヨ澶囨槸鍚︽帓闄 +* 鍙 鏁: GateWay,缃戝叧鍙ユ焺 + CommUnitMac, 寰呮鏌ョ殑璁惧MAC +* 杩 鍥 鍊: 宸叉帓闄よ繑鍥為潪0,娌℃帓闄よ繑鍥-1 *****************************************************************************************/ int CheckCommUnitExcl(GateWayPara GateWay, uint8_t *CommUnitMac) { - for(int i = 0; i < COMMUNIT_NUM_MAX; i++) {//判断是否被排除 + for(int i = 0; i < COMMUNIT_NUM_MAX; i++) {//鍒ゆ柇鏄惁琚帓闄 if(memcmp(GateWay->ConfigPara.ExclCommUnit[i].ExclMac, CommUnitMac, 6) == 0) { if(GateWay->ConfigPara.ExclCommUnit[i].ExclFlag == true) return i; @@ -231,14 +231,14 @@ int CheckCommUnitExcl(GateWayPara GateWay, uint8_t *CommUnitMac) return -1; } /***************************************************************************************** -* 函数名称: CommUnitSendCmd -* 功能描述: 网关下发通讯单元指令函数 -* 参 数: GateWay, 网关句柄 - CommUnitMac,通讯单元MAC地址 - Cmd, 命令字 - Payload, 下发数据 - PayloadLen, 下发数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: CommUnitSendCmd +* 鍔熻兘鎻忚堪: 缃戝叧涓嬪彂閫氳鍗曞厓鎸囦护鍑芥暟 +* 鍙 鏁: GateWay, 缃戝叧鍙ユ焺 + CommUnitMac锛岄氳鍗曞厓MAC鍦板潃 + Cmd, 鍛戒护瀛 + Payload, 涓嬪彂鏁版嵁 + PayloadLen锛 涓嬪彂鏁版嵁闀垮害 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void CommUnitCmdSend(GateWayPara GateWay, uint8_t *CommUnitMac, CommUnitCmd_m Cmd, uint8_t *Payload, uint16_t PayloadLen, SendData Send) { @@ -279,12 +279,12 @@ void CommUnitCmdSend(GateWayPara GateWay, uint8_t *CommUnitMac, CommUnitCmd_m Cm } /***************************************************************************************** -* 函数名称: CommUintOrgData -* 功能描述: 上传传感器数据函数 -* 参 数: CUPara, 通讯单元参数 - CUData, 通讯单元数据 - sData, 数据入口 -* 返 回 值: 数据长度 +* 鍑芥暟鍚嶇О: CommUintOrgData +* 鍔熻兘鎻忚堪: 涓婁紶浼犳劅鍣ㄦ暟鎹嚱鏁 +* 鍙 鏁: CUPara, 閫氳鍗曞厓鍙傛暟 + CUData, 閫氳鍗曞厓鏁版嵁 + sData, 鏁版嵁鍏ュ彛 +* 杩 鍥 鍊: 鏁版嵁闀垮害 *****************************************************************************************/ int CommUintOrgData(GateWayPara GateWay, CommUnitPara CUPara, CommUnitData CUData, uint8_t *sData) { @@ -468,11 +468,11 @@ void DebugDisplaySensorData(int SensorIdx, uint16_t SensorType, uint8_t *SensorD } /***************************************************************************************** -* 函数名称: CommUnitAnalyze -* 功能描述: 通讯单元数据解析,使用于LORA和RS485通讯 -* 参 数: rData,输入数据 - rLen, 输入数据长度 -* 返 回 值: 返回接收到的通讯单元序号,错误返回-1 +* 鍑芥暟鍚嶇О: CommUnitAnalyze +* 鍔熻兘鎻忚堪: 閫氳鍗曞厓鏁版嵁瑙f瀽锛屼娇鐢ㄤ簬LORA鍜孯S485閫氳 +* 鍙 鏁: rData,杈撳叆鏁版嵁 + rLen, 杈撳叆鏁版嵁闀垮害 +* 杩 鍥 鍊: 杩斿洖鎺ユ敹鍒扮殑閫氳鍗曞厓搴忓彿锛岄敊璇繑鍥-1 *****************************************************************************************/ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData Response) { @@ -500,12 +500,12 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData if((CUHeader->Cmd != COMM_UNIT_CMD_REG && CUHeader->Cmd != COMM_UNIT_CMD_GET_SIGNAL) && (memcmp(GateWay->ConfigPara.GwMac, CUHeader->GWMac, 6) != 0)) return -1; - CommUnitIdx = CheckCommUnitReg(GateWay, CUHeader->DevMac);//判断是否是已注册的设备 + CommUnitIdx = CheckCommUnitReg(GateWay, CUHeader->DevMac);//鍒ゆ柇鏄惁鏄凡娉ㄥ唽鐨勮澶 if(CommUnitIdx < 0) { - if(CUHeader->Cmd != COMM_UNIT_CMD_REG && CUHeader->Cmd != COMM_UNIT_CMD_GET_SIGNAL){//判断是否是注册请求 + if(CUHeader->Cmd != COMM_UNIT_CMD_REG && CUHeader->Cmd != COMM_UNIT_CMD_GET_SIGNAL){//鍒ゆ柇鏄惁鏄敞鍐岃姹 return -1; } - ExclCommUnit = CheckCommUnitExcl(GateWay, CUHeader->DevMac);//判断是否是被排除的设备 + ExclCommUnit = CheckCommUnitExcl(GateWay, CUHeader->DevMac);//鍒ゆ柇鏄惁鏄鎺掗櫎鐨勮澶 if(ExclCommUnit > -1) { return -1; } @@ -520,7 +520,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData // if(CUHeader->PayloadLen < 2) // return -1; - if(CommUnitIdx >= 0) { //设备存在 + if(CommUnitIdx >= 0) { //璁惧瀛樺湪 MAIN_DBG_LOG("\r\nCommUnit has already been registered! Mac:%02X-%02X-%02X-%02X-%02X-%02X\r\n", CUHeader->DevMac[0], CUHeader->DevMac[1], CUHeader->DevMac[2], CUHeader->DevMac[3], CUHeader->DevMac[4], CUHeader->DevMac[5]); uint8_t ret = 1; @@ -544,7 +544,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData GateWay->ConfigPara.CommUnitArray[i].ContLaser = false; GateWay->ConfigPara.CommUnitArray[i].LaserOnOff = false; - GateWay->ConfigPara.CommUnitArray[i].CUType = DEV_TYPE_EXT_COMMUNIT;//外置通讯单元 + GateWay->ConfigPara.CommUnitArray[i].CUType = DEV_TYPE_EXT_COMMUNIT;//澶栫疆閫氳鍗曞厓 MAIN_DBG_LOG("\r\nCommUnit register succeed!\r\n"); memcpy(GateWay->ConfigPara.CommUnitArray[i].MasterMac, &PayLoad[1], 6); @@ -570,7 +570,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData uint8_t ret = 1; CommUnitCmdSend(GateWay, CUHeader->DevMac, COMM_UNIT_CMD_REG, &ret, 1, Response); - if(GateWay->SvrRegFlag) { //网关已注册,向服务发送新设备添加指令 + if(GateWay->SvrRegFlag) { //缃戝叧宸叉敞鍐岋紝鍚戞湇鍔″彂閫佹柊璁惧娣诲姞鎸囦护 PayLoadLen = (GateWay->ConfigPara.CommUnitArray[i].SensorN * 6) + 2; MegData = rt_malloc(PayLoadLen + 3); MegData[0] = PayLoadLen & 0x00ff;; @@ -618,7 +618,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData else if(GateWay->ConfigPara.CommUnitArray[CommUnitIdx].ContLaser == true) { if(GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff == true) - {//打开激光 + {//鎵撳紑婵鍏 CommUnitCmdSend(GateWay, CUHeader->DevMac, COMM_UNIT_CMD_CONT_LASER, (uint8_t *)&GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff, 1, Response); } MAIN_DBG_LOG("Issue laser control commands.\r\n"); @@ -653,7 +653,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData // int16_t Rssi; // int8_t Snr; // SX1276LoCalcRssiSnr(&Rssi, &Snr); - MAIN_DBG_LOG("\r\nCUMac:%02X-%02X-%02X-%02X-%02X-%02X, Bat: %d%, SN: %d,Rssi:%d, Snr:%d\r\n", + MAIN_DBG_LOG("\r\nCUMac:%02X-%02X-%02X-%02X-%02X-%02X, Bat: %d%, SN: %d锛孯ssi:%d, Snr:%d\r\n", CUHeader->DevMac[0], CUHeader->DevMac[1], CUHeader->DevMac[2], CUHeader->DevMac[3], CUHeader->DevMac[4], CUHeader->DevMac[5], GateWay->ConfigPara.CommUnitArray[CommUnitIdx].BatLevel, GateWay->ConfigPara.CommUnitArray[CommUnitIdx].SensorN, @@ -661,7 +661,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData GateWay->ConfigPara.CommUnitArray[CommUnitIdx].Nsr); for(int i = 0; i < GateWay->ConfigPara.CommUnitArray[CommUnitIdx].SensorN; i++) { memcpy(GateWay->CUDataArray[CommUnitIdx].Data[i], &PayLoad[0], SensorTypeDataLen[GateWay->ConfigPara.CommUnitArray[CommUnitIdx].SensorType[i]]); - //显示传感器数据 + //鏄剧ず浼犳劅鍣ㄦ暟鎹 DebugDisplaySensorData(i, GateWay->ConfigPara.CommUnitArray[CommUnitIdx].SensorType[i], GateWay->CUDataArray[CommUnitIdx].Data[i]); len += SensorTypeDataLen[GateWay->ConfigPara.CommUnitArray[CommUnitIdx].SensorType[i]]; } @@ -701,7 +701,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData else if(GateWay->ConfigPara.CommUnitArray[CommUnitIdx].ContLaser == true) { if(GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff == true) - {//打开激光 + {//鎵撳紑婵鍏 CommUnitCmdSend(GateWay, CUHeader->DevMac, COMM_UNIT_CMD_CONT_LASER, (uint8_t *)&GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff, 1, Response); } MAIN_DBG_LOG("Issue laser control commands.\r\n"); @@ -753,7 +753,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData else if(GateWay->ConfigPara.CommUnitArray[CommUnitIdx].ContLaser == true) { if(GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff == true) - {//打开激光 + {//鎵撳紑婵鍏 CommUnitCmdSend(GateWay, CUHeader->DevMac, COMM_UNIT_CMD_CONT_LASER, (uint8_t *)&GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff, 1, Response); } MAIN_DBG_LOG("Issue laser control commands.\r\n"); @@ -773,7 +773,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData case COMM_UNIT_CMD_CONT_LASER:{ if(PayLoad[0] == 0) { - //应答服务器 + //搴旂瓟鏈嶅姟鍣 MegData = rt_malloc(10); MegData[0] = 7; MegData[1] = 0; @@ -792,7 +792,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData CUHeader->DevMac[0], CUHeader->DevMac[1], CUHeader->DevMac[2], CUHeader->DevMac[3], CUHeader->DevMac[4], CUHeader->DevMac[5]); } else if(PayLoad[0] == 1){ - //应答服务器 + //搴旂瓟鏈嶅姟鍣 MegData = rt_malloc(10); MegData[0] = 7; MegData[1] = 0; @@ -825,7 +825,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData else if(GateWay->ConfigPara.CommUnitArray[CommUnitIdx].ContLaser == true) { if(GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff == true) - {//打开激光 + {//鎵撳紑婵鍏 CommUnitCmdSend(GateWay, CUHeader->DevMac, COMM_UNIT_CMD_CONT_LASER, (uint8_t *)&GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff, 1, Response); } MAIN_DBG_LOG("Issue laser control commands.\r\n"); @@ -863,11 +863,11 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData } /***************************************************************************************** -* 函数名称: Cat1RevCallBack -* 功能描述: 4G接收回调函数 -* 参 数: rData,数据输入接口 - rLen, 数据长度输入接口 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Cat1RevCallBack +* 鍔熻兘鎻忚堪: 4G鎺ユ敹鍥炶皟鍑芥暟 +* 鍙 鏁: rData锛屾暟鎹緭鍏ユ帴鍙 + rLen, 鏁版嵁闀垮害杈撳叆鎺ュ彛 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) { @@ -909,7 +909,7 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) memcpy(&CommUintMac[0], Data, 6); - if(GateWay->ConfigPara.Rs485Ch1.Enable == true) { //内部通讯单元处理 + if(GateWay->ConfigPara.Rs485Ch1.Enable == true) { //鍐呴儴閫氳鍗曞厓澶勭悊 if(GateWay->ConfigPara.Rs485Ch1.CommUnitEnable == true) CommUnitCmdSend(GateWay, CommUintMac, COMM_UNIT_CMD_TIME_SYNC, (uint8_t *)&NCHeader->Timestamp, 4, GateWay->ConfigPara.Rs485Ch1.RS485Send); else @@ -921,18 +921,18 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) else RS485CmdSend(GateWay, 2, &SCPara); } - for(int i = 0; i < COMMUNIT_NUM_MAX; i++)//参数遍历 + for(int i = 0; i < COMMUNIT_NUM_MAX; i++)//鍙傛暟閬嶅巻 { if(GateWay->ConfigPara.CommUnitArray[i].RegFlag == true) - GateWay->ConfigPara.CommUnitArray[i].TimeSyncFlag = true;//校时置位,等待下次此MAC主设备上传数据时下发校准指令(低功耗) + GateWay->ConfigPara.CommUnitArray[i].TimeSyncFlag = true;//鏍℃椂缃綅锛岀瓑寰呬笅娆℃MAC涓昏澶囦笂浼犳暟鎹椂涓嬪彂鏍″噯鎸囦护锛堜綆鍔熻楋級 } - //校准其他通讯网关 + //鏍″噯鍏朵粬閫氳缃戝叧 //CommUnitCmdSend(GateWay, CommUintMac, COMM_UNIT_CMD_TIME_SYNC, &rData[14], 4, Sx1276LoRaSendBuffer); } switch(NCHeader->Cmd) { case NET_COMM_CMD_REG:{ - if(*Data == 1) { //注册成功 + if(*Data == 1) { //娉ㄥ唽鎴愬姛 GateWay->SvrRegFlag = true; //memcpy(GateWay->SvrMac, NCHeader->SvrMac, 6); memset(GateWay->SvrMac, 0x00, 6); @@ -947,7 +947,7 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) break;} case NET_COMM_CMD_CAIL:{ - //应答服务器 + //搴旂瓟鏈嶅姟鍣 MegData = rt_malloc(4); MegData[0] = 1; MegData[1] = 0; @@ -956,16 +956,16 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) sLen = 4; CatOneEthSendQueue(MegData, sLen); rt_free(MegData); - //开始校准 + //寮濮嬫牎鍑 memcpy(&CommUintMac[0], Data, 6); - if(memcmp(CommUintMac, Data, 6) == 0) { //校准所有传感器 + if(memcmp(CommUintMac, Data, 6) == 0) { //鏍″噯鎵鏈変紶鎰熷櫒 SensorCommPara_t SCPara; SCPara.Cmd = RS485_SENSOR_CMD_CAIL; SCPara.SensorAddr = 0x00; //SCPara.SensorType = 0x00; SCPara.CmdParaLen = 0; SCPara.CmdPara = NULL; - if(GateWay->ConfigPara.Rs485Ch1.Enable == true) { //内部通讯单元处理 + if(GateWay->ConfigPara.Rs485Ch1.Enable == true) { //鍐呴儴閫氳鍗曞厓澶勭悊 if(GateWay->ConfigPara.Rs485Ch1.CommUnitEnable == true) RS485CmdSend(GateWay, 1, &SCPara); else @@ -978,12 +978,12 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) CommUnitCmdSend(GateWay, CommUintMac, COMM_UNIT_CMD_CAIL, NULL, 0, GateWay->ConfigPara.Rs485Ch2.RS485Send); } - for(int i = 0; i < COMMUNIT_NUM_MAX; i++)//参数遍历 + for(int i = 0; i < COMMUNIT_NUM_MAX; i++)//鍙傛暟閬嶅巻 { if(GateWay->ConfigPara.CommUnitArray[i].RegFlag == true) - GateWay->ConfigPara.CommUnitArray[i].CailFlag = true;//校准置位,等待下次此MAC主设备上传数据时下发校准指令(低功耗) + GateWay->ConfigPara.CommUnitArray[i].CailFlag = true;//鏍″噯缃綅锛岀瓑寰呬笅娆℃MAC涓昏澶囦笂浼犳暟鎹椂涓嬪彂鏍″噯鎸囦护锛堜綆鍔熻楋級 } - //校准其他通讯网关 + //鏍″噯鍏朵粬閫氳缃戝叧 //CommUnitCmdSend(GateWay, CommUintMac, COMM_UNIT_CMD_CAIL, NULL, 0, Sx1276LoRaSendBuffer); MAIN_DBG_LOG("Calibrate all device.\r\n"); } @@ -993,15 +993,15 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) return -1; if(GateWay->ConfigPara.CommUnitArray[ret].CUType != DEV_TYPE_EXT_COMMUNIT) return -1; - if((GateWay->ConfigPara.CommUnitArray[ret].Mac[0][3] / 0x80) != 1) {//判断是否为通讯单元(主设备) - if(GateWay->ConfigPara.CommUnitArray[ret].Mac[0][2] == 1)//判断通讯类型 + if((GateWay->ConfigPara.CommUnitArray[ret].Mac[0][3] / 0x80) != 1) {//鍒ゆ柇鏄惁涓洪氳鍗曞厓锛堜富璁惧锛 + if(GateWay->ConfigPara.CommUnitArray[ret].Mac[0][2] == 1)//鍒ゆ柇閫氳绫诲瀷 { - GateWay->ConfigPara.CommUnitArray[ret].CailFlag = true;//校准置位,等待下次此MAC主设备上传数据时下发校准指令(低功耗) - //CommUnitCmdSend(GateWay, CommUintMac, COMM_UNIT_CMD_CAIL, NULL, 0, Sx1276LoRaSendBuffer);//查询模式 + GateWay->ConfigPara.CommUnitArray[ret].CailFlag = true;//鏍″噯缃綅锛岀瓑寰呬笅娆℃MAC涓昏澶囦笂浼犳暟鎹椂涓嬪彂鏍″噯鎸囦护锛堜綆鍔熻楋級 + //CommUnitCmdSend(GateWay, CommUintMac, COMM_UNIT_CMD_CAIL, NULL, 0, Sx1276LoRaSendBuffer);//鏌ヨ妯″紡 MAIN_DBG_LOG("Calibrate Mac:%02X-%02X-%02X-%02X-%02X-%02X\r\n", CommUintMac[0], CommUintMac[1], CommUintMac[2], CommUintMac[3], CommUintMac[4], CommUintMac[5]); } - else if(GateWay->ConfigPara.CommUnitArray[ret].Mac[0][2] == 2)//判断通讯类型 + else if(GateWay->ConfigPara.CommUnitArray[ret].Mac[0][2] == 2)//鍒ゆ柇閫氳绫诲瀷 { if(GateWay->ConfigPara.Rs485Ch1.Enable == true && !GateWay->ConfigPara.Rs485Ch1.CommUnitEnable) { @@ -1024,7 +1024,7 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) MegData = rt_malloc(512); uint16_t SensorCnt = 0; sLen = 5; - if(GateWay->ConfigPara.Rs485Ch1.Enable == true) { //内部通讯单元处理 + if(GateWay->ConfigPara.Rs485Ch1.Enable == true) { //鍐呴儴閫氳鍗曞厓澶勭悊 if(GateWay->ConfigPara.Rs485Ch1.CommUnitEnable == true) { SensorCnt++; memcpy(&MegData[sLen], GateWay->ConfigPara.Rs485Ch1.CUPara.Para.Mac[0], 6); @@ -1055,9 +1055,9 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) MegData[sLen++] = (GateWay->HistoryNum >> 8) & 0x00ff; MegData[sLen++] = (GateWay->HistoryNum >> 16) & 0x00ff; MegData[sLen++] = (GateWay->HistoryNum >> 24) & 0x00ff; - MegData[0] = (sLen - 3) & 0x00ff;//数据体长度 - MegData[1] = ((sLen - 3) >> 8) & 0x00ff;//数据体长度 - MegData[2] = NET_COMM_CMD_READ_GW_INFO;//指令 + MegData[0] = (sLen - 3) & 0x00ff;//鏁版嵁浣撻暱搴 + MegData[1] = ((sLen - 3) >> 8) & 0x00ff;//鏁版嵁浣撻暱搴 + MegData[2] = NET_COMM_CMD_READ_GW_INFO;//鎸囦护 MegData[3] = SensorCnt&0xFF; MegData[4] = (SensorCnt >> 8)&0xFF; CatOneEthSendQueue(MegData, sLen); @@ -1066,7 +1066,7 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) } case NET_COMM_CMD_GW_PARA_CONFIG:{ - //应答服务器 + //搴旂瓟鏈嶅姟鍣 MegData = rt_malloc(4); MegData[0] = 1; MegData[1] = 0; @@ -1116,7 +1116,7 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) break; case NET_COMM_CMD_ADD_UNIT:{ - if(*Data == 1) { //录入成功 + if(*Data == 1) { //褰曞叆鎴愬姛 MAIN_DBG_LOG("Adding CommUnit succeeded...\r\n"); } else { @@ -1125,7 +1125,7 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) break;} case NET_COMM_CMD_LP_DEV_CONFIG: { - //开始配置 + //寮濮嬮厤缃 SvrDownLPDevConfigPara_t *LPDevConfig; LPDevConfig = (SvrDownLPDevConfigPara_t *)Data; int ret = memcmp(CommUintMac, LPDevConfig->CommDevAddr, 6); @@ -1156,7 +1156,7 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) MAIN_DBG_LOG("Main equipment parameter configuration. Mac:%02X-%02X-%02X-%02X-%02X-%02X\r\n", CommUintMac[0], CommUintMac[1], CommUintMac[2], CommUintMac[3], CommUintMac[4], CommUintMac[5]); } - //应答服务器 + //搴旂瓟鏈嶅姟鍣 MegData = rt_malloc(4); MegData[0] = 1; MegData[1] = 0; @@ -1174,32 +1174,32 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) return -1; if(GateWay->ConfigPara.CommUnitArray[ret].CUType != DEV_TYPE_EXT_COMMUNIT) return -1; - if((GateWay->ConfigPara.CommUnitArray[ret].Mac[0][3] / 0x80) != 1) {//判断是否为通讯单元(主设备) - if(GateWay->ConfigPara.CommUnitArray[ret].Mac[0][2] == 1)//判断通讯类型 + if((GateWay->ConfigPara.CommUnitArray[ret].Mac[0][3] / 0x80) != 1) {//鍒ゆ柇鏄惁涓洪氳鍗曞厓锛堜富璁惧锛 + if(GateWay->ConfigPara.CommUnitArray[ret].Mac[0][2] == 1)//鍒ゆ柇閫氳绫诲瀷 { - GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff = Data[6];//服务器下发打开或者关闭激光 + GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff = Data[6];//鏈嶅姟鍣ㄤ笅鍙戞墦寮鎴栬呭叧闂縺鍏 if(GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff == true) { - GateWay->ConfigPara.CommUnitArray[ret].ContLaser = true;//控制激光,等待下次此MAC主设备上传数据时下发打开激光指令(低功耗) + GateWay->ConfigPara.CommUnitArray[ret].ContLaser = true;//鎺у埗婵鍏夛紝绛夊緟涓嬫姝AC涓昏澶囦笂浼犳暟鎹椂涓嬪彂鎵撳紑婵鍏夋寚浠わ紙浣庡姛鑰楋級 MAIN_DBG_LOG("Waiting for the laser response. Mac:%02X-%02X-%02X-%02X-%02X-%02X\r\n", CommUintMac[0], CommUintMac[1], CommUintMac[2], CommUintMac[3], CommUintMac[4], CommUintMac[5]); } else if(GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff == false) - {//直接发送 + {//鐩存帴鍙戦 MAIN_DBG_LOG("Waiting for the laser response. Mac:%02X-%02X-%02X-%02X-%02X-%02X\r\n", CommUintMac[0], CommUintMac[1], CommUintMac[2], CommUintMac[3], CommUintMac[4], CommUintMac[5]); GateWay->ConfigPara.CommUnitArray[ret].ContLaser = false; - CommUnitCmdSend(GateWay, CommUintMac, COMM_UNIT_CMD_CONT_LASER, (uint8_t *)&GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff, 1, Sx1276LoRaSendBuffer);//查询模式 + CommUnitCmdSend(GateWay, CommUintMac, COMM_UNIT_CMD_CONT_LASER, (uint8_t *)&GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff, 1, Sx1276LoRaSendBuffer);//鏌ヨ妯″紡 } } - else if(GateWay->ConfigPara.CommUnitArray[ret].Mac[0][2] == 2)//判断通讯类型 + else if(GateWay->ConfigPara.CommUnitArray[ret].Mac[0][2] == 2)//鍒ゆ柇閫氳绫诲瀷 { if(GateWay->ConfigPara.Rs485Ch1.Enable == true && !GateWay->ConfigPara.Rs485Ch1.CommUnitEnable) { - GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff = Data[6];//服务器下发打开或者关闭激光 + GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff = Data[6];//鏈嶅姟鍣ㄤ笅鍙戞墦寮鎴栬呭叧闂縺鍏 if(GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff == true) { - GateWay->ConfigPara.CommUnitArray[ret].ContLaser = true;//控制激光,等待下次此MAC主设备上传数据时下发打开激光指令(低功耗) + GateWay->ConfigPara.CommUnitArray[ret].ContLaser = true;//鎺у埗婵鍏夛紝绛夊緟涓嬫姝AC涓昏澶囦笂浼犳暟鎹椂涓嬪彂鎵撳紑婵鍏夋寚浠わ紙浣庡姛鑰楋級 } else if(GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff == false) { @@ -1208,10 +1208,10 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) } else if(GateWay->ConfigPara.Rs485Ch2.Enable == true && !GateWay->ConfigPara.Rs485Ch2.CommUnitEnable) { - GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff = Data[6];//服务器下发打开或者关闭激光 + GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff = Data[6];//鏈嶅姟鍣ㄤ笅鍙戞墦寮鎴栬呭叧闂縺鍏 if(GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff == true) { - GateWay->ConfigPara.CommUnitArray[ret].ContLaser = true;//控制激光,等待下次此MAC主设备上传数据时下发打开激光指令(低功耗) + GateWay->ConfigPara.CommUnitArray[ret].ContLaser = true;//鎺у埗婵鍏夛紝绛夊緟涓嬫姝AC涓昏澶囦笂浼犳暟鎹椂涓嬪彂鎵撳紑婵鍏夋寚浠わ紙浣庡姛鑰楋級 } else if(GateWay->ConfigPara.CommUnitArray[ret].LaserOnOff == false) { diff --git a/Project/GateWay/source/User/Src/RS485Task.c b/Project/GateWay/source/User/Src/RS485Task.c index bf6efd9..1cc28f4 100644 --- a/Project/GateWay/source/User/Src/RS485Task.c +++ b/Project/GateWay/source/User/Src/RS485Task.c @@ -17,13 +17,13 @@ SensorCommPara_t SComm2Para; const uint8_t RS485SensorCmdPayLoadLen[RS485_SENSOR_CMD_END] = {0, 0, 0, 1, 0}; /***************************************************************************************** -* 函数名称: SavSensorData -* 功能描述: 记录传感器数据 -* 参 数: SensorIdx, 传感器序号 - Para,传感器结构指针 - Data, 传感器数据 - Len, 传感器数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: SavSensorData +* 鍔熻兘鎻忚堪: 璁板綍浼犳劅鍣ㄦ暟鎹 +* 鍙 鏁: SensorIdx, 浼犳劅鍣ㄥ簭鍙 + Para锛屼紶鎰熷櫒缁撴瀯鎸囬拡 + Data, 浼犳劅鍣ㄦ暟鎹 + Len, 浼犳劅鍣ㄦ暟鎹暱搴 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void SavSensorData(uint8_t SensorIdx, CommUnitData CUData, uint8_t *Data, uint8_t Len) { @@ -36,13 +36,13 @@ static void SavSensorData(uint8_t SensorIdx, CommUnitData CUData, uint8_t *Data, } /***************************************************************************************** -* 函数名称: RS485Analyze -* 功能描述: 485数据解析 -* 参 数: SCPara, 传感器发送参数 - Para, 传感器结构指针 - rData, 传感器数据入口 - rLen, 传感器数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Analyze +* 鍔熻兘鎻忚堪: 485鏁版嵁瑙f瀽 +* 鍙 鏁: SCPara, 浼犳劅鍣ㄥ彂閫佸弬鏁 + Para, 浼犳劅鍣ㄧ粨鏋勬寚閽 + rData, 浼犳劅鍣ㄦ暟鎹叆鍙 + rLen, 浼犳劅鍣ㄦ暟鎹暱搴 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485Analyze(GateWayPara GateWay, SensorCommPara SCPara, CommUnit Para, uint8_t *rData, uint8_t rLen) { @@ -121,13 +121,13 @@ static void update_on_start(uint8_t* frame, int len, uint8_t* pload, int size) cfg.PackageNum = pReq->PackageNum; cfg.AppSize = pReq->AppSize; /** - 操作FALSH ,写升级参数 + 鎿嶄綔FALSH 锛屽啓鍗囩骇鍙傛暟 **/ dev_boot_write_param(cfg); update_send_cmd(0x01, 1, pReq->PackageNum); - //重启进入BOOT + //閲嶅惎杩涘叆BOOT NVIC_SystemReset(); } @@ -179,10 +179,10 @@ static int update_process(void* frame, int len) /***************************************************************************************** -* 函数名称: RS485SensorCmdSend -* 功能描述: 下发传感器指令函数 -* 参 数: Para,通讯参数入口 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485SensorCmdSend +* 鍔熻兘鎻忚堪: 涓嬪彂浼犳劅鍣ㄦ寚浠ゅ嚱鏁 +* 鍙 鏁: Para,閫氳鍙傛暟鍏ュ彛 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void RS485SensorCmdSend(GateWayPara GateWay, SensorCommPara SensorComm) { @@ -217,11 +217,11 @@ static void RS485SensorCmdSend(GateWayPara GateWay, SensorCommPara SensorComm) } /***************************************************************************************** -* 函数名称: RS485SensorCmdSend -* 功能描述: 下发传感器指令函数 -* 参 数: CommUintAddr, 通讯单元地址 - Para,通讯参数入口 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485SensorCmdSend +* 鍔熻兘鎻忚堪: 涓嬪彂浼犳劅鍣ㄦ寚浠ゅ嚱鏁 +* 鍙 鏁: CommUintAddr锛 閫氳鍗曞厓鍦板潃 + Para,閫氳鍙傛暟鍏ュ彛 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485CmdSend(GateWayPara GateWay, uint8_t CommUintAddr, SensorCommPara SensorComm) { @@ -243,12 +243,12 @@ void RS485CmdSend(GateWayPara GateWay, uint8_t CommUintAddr, SensorCommPara Sens /***************************************************************************************** -* 函数名称: RS485LoopHandler -* 功能描述: RS485循环处理函数 -* 参 数: GateWay, 网关参数句柄 - RS485Ch, RS485通道句柄 - SCPara, RS485通讯句柄 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485LoopHandler +* 鍔熻兘鎻忚堪: RS485寰幆澶勭悊鍑芥暟 +* 鍙 鏁: GateWay, 缃戝叧鍙傛暟鍙ユ焺 + RS485Ch, RS485閫氶亾鍙ユ焺 + SCPara锛 RS485閫氳鍙ユ焺 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static uint8_t CommUintData[512]; int test = 0; @@ -266,8 +266,8 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP return; } - if(RS485Ch->CommUnitEnable == true) { //使用内置通讯单元 - if(RS485Ch->QuerySensorFlag == true) { //开机查找传感器 + if(RS485Ch->CommUnitEnable == true) { //浣跨敤鍐呯疆閫氳鍗曞厓 + if(RS485Ch->QuerySensorFlag == true) { //寮鏈烘煡鎵句紶鎰熷櫒 if(SCPara->SensorCnt < SENSOR_NUM_MAX) { rt_thread_delay(50); SCPara->Cmd = RS485_SENSOR_CMD_QUERY; @@ -328,7 +328,7 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP } } } - else { //读取外置通讯单元 + else { //璇诲彇澶栫疆閫氳鍗曞厓 if(SCPara->RS485CommUnitReadTimeDelay >= (GateWay->ConfigPara.CommUnitReadInterval * 5) && SCPara->SendFlag == false) { if(SCPara->SendUnitCommIdx < COMMUNIT_NUM_MAX) { if(GateWay->ConfigPara.CommUnitArray[SCPara->SendUnitCommIdx].RegFlag && @@ -365,10 +365,10 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP RxLenTemp = SCPara->RS485RxLen; // memset(SCPara->RS485RxBuff, 0x00, RS485_RX_BUFF_LEN_MAX); SCPara->RS485RxLen = 0; - if(RxBuffTemp[0] == 0x7A && RS485Ch->UpgradeEnable == true) { //升级 + if(RxBuffTemp[0] == 0x7A && RS485Ch->UpgradeEnable == true) { //鍗囩骇 update_process(RxBuffTemp,RxLenTemp); } - else if(RxBuffTemp[0] == 0x7A && RS485Ch->CommUnitEnable == true) { //内置通讯单元数据解析 + else if(RxBuffTemp[0] == 0x7A && RS485Ch->CommUnitEnable == true) { //鍐呯疆閫氳鍗曞厓鏁版嵁瑙f瀽 if(SCPara->SendFlag == false) { SCPara->RS485RxLen = 0; return; @@ -376,12 +376,12 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP RS485Analyze(GateWay, SCPara, &RS485Ch->CUData, RxBuffTemp, RxLenTemp); //rt_mutex_release(GateWay->UartRevMutex); } - else if(RxBuffTemp[0] == 0x7B && RS485Ch->CommUnitEnable == false){ //读取外部通讯单元数据解析 + else if(RxBuffTemp[0] == 0x7B && RS485Ch->CommUnitEnable == false){ //璇诲彇澶栭儴閫氳鍗曞厓鏁版嵁瑙f瀽 if(SCPara == &SComm1Para) ret = GateWay->CommUnitRevCallBack(GateWay, RxBuffTemp, RxLenTemp, GateWay->ConfigPara.Rs485Ch1.RS485Send); else ret = GateWay->CommUnitRevCallBack(GateWay, RxBuffTemp, RxLenTemp, GateWay->ConfigPara.Rs485Ch2.RS485Send); - if(ret == 0xff) { //注册信息 + if(ret == 0xff) { //娉ㄥ唽淇℃伅 SCPara->RS485RxLen = 0; return; } @@ -393,7 +393,7 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP return; } } - else { //调试命令解析 + else { //璋冭瘯鍛戒护瑙f瀽 DebugAnalyze(GateWay, RxBuffTemp, RxLenTemp); } SCPara->RS485RxLen = 0; @@ -426,7 +426,7 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP MegData[2] = COMM_UNIT_CMD_READ; memcpy(&MegData[3], GateWay->ConfigPara.CommUnitArray[SCPara->SendUnitCommIdx].Mac[0], 6); MegData[9] = GateWay->ConfigPara.CommUnitArray[SCPara->SendUnitCommIdx].CommStatus; - CatOneEthSendQueue(MegData, 10); //发送离线消息 + CatOneEthSendQueue(MegData, 10); //鍙戦佺绾挎秷鎭 } } SCPara->SendUnitCommIdx++; @@ -436,10 +436,10 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP } /***************************************************************************************** -* 函数名称: RS485Ch1_Thread_Entry -* 功能描述: RS485通道1任务函数 -* 参 数: 任务参数入口 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1_Thread_Entry +* 鍔熻兘鎻忚堪: RS485閫氶亾1浠诲姟鍑芥暟 +* 鍙 鏁: 浠诲姟鍙傛暟鍏ュ彛 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485Ch1_Thread_Entry(void *parameter) { @@ -469,7 +469,7 @@ void RS485Ch1_Thread_Entry(void *parameter) if(SCPara->RS485Rev_Sem == RT_NULL) { Debug_Printf("RS485Ch1Rev Sem Create Failed!\r\n"); } - Debug_Printf("RS485Ch1Rev Thread is running!\r\n"); + Debug_Printf("RS485Ch1Rev Thread is running锛乗r\n"); rt_thread_delay(3000); SCPara->InitOverFlag = true; @@ -483,10 +483,10 @@ void RS485Ch1_Thread_Entry(void *parameter) } /***************************************************************************************** -* 函数名称: RS485Ch1RxIrqCallback -* 功能描述: RS485通道1中断处理回调函数 -* 参 数: rData 接收到的数据 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1RxIrqCallback +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓柇澶勭悊鍥炶皟鍑芥暟 +* 鍙 鏁: rData 鎺ユ敹鍒扮殑鏁版嵁 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485Ch1RxIrqCallback(uint8_t rData) { @@ -500,10 +500,10 @@ void RS485Ch1RxIrqCallback(uint8_t rData) } /***************************************************************************************** -* 函数名称: RS485Ch2_Thread_Entry -* 功能描述: RS485通道1任务函数 -* 参 数: 任务参数入口 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch2_Thread_Entry +* 鍔熻兘鎻忚堪: RS485閫氶亾1浠诲姟鍑芥暟 +* 鍙 鏁: 浠诲姟鍙傛暟鍏ュ彛 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485Ch2_Thread_Entry(void *parameter) { @@ -533,7 +533,7 @@ void RS485Ch2_Thread_Entry(void *parameter) if(SCPara->RS485Rev_Sem == RT_NULL) { Debug_Printf("RS485Ch2Rev Sem Create Failed!\r\n"); } - Debug_Printf("RS485Ch2Rev Thread is running!\r\n"); + Debug_Printf("RS485Ch2Rev Thread is running锛乗r\n"); rt_thread_delay(3000); SCPara->InitOverFlag = true; while(1) { @@ -543,10 +543,10 @@ void RS485Ch2_Thread_Entry(void *parameter) } /***************************************************************************************** -* 函数名称: RS485Ch2RxIrqCallback -* 功能描述: RS485通道1中断处理回调函数 -* 参 数: rData 接收到的数据 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch2RxIrqCallback +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓柇澶勭悊鍥炶皟鍑芥暟 +* 鍙 鏁: rData 鎺ユ敹鍒扮殑鏁版嵁 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485Ch2RxIrqCallback(uint8_t rData) { diff --git a/Project/GateWay/source/User/Src/app_comm.c b/Project/GateWay/source/User/Src/app_comm.c index eb391f2..e9b38d0 100644 --- a/Project/GateWay/source/User/Src/app_comm.c +++ b/Project/GateWay/source/User/Src/app_comm.c @@ -1,5 +1,5 @@ /* -数据通信任务 +鏁版嵁閫氫俊浠诲姟 */ #include "bsp.h" @@ -31,7 +31,7 @@ static void rs485_rx_cb(uint8_t data) } /** -返回值:成功:len,失败: 0 +杩斿洖鍊:鎴愬姛:len,澶辫触: 0 ***/ static int recive_frame(void) { @@ -76,7 +76,7 @@ static void update_on_start(uint8_t* frame, int len, uint8_t* pload, int size) update_send_cmd(0x01, 1, pReq->PackageNum); - //重启进入BOOT + //閲嶅惎杩涘叆BOOT NVIC_SystemReset(); } @@ -144,7 +144,7 @@ static void comm_process(uint8_t* frame, int len) uint8_t frame_data[64] = {0}; uint16_t frame_data_len = 0; - /***数据解码***/ + /***鏁版嵁瑙g爜***/ int err = -1; err= protocol_unpack_frame(frame, len, &slave_addr, &frame_cmd, frame_data, &frame_data_len); @@ -152,7 +152,7 @@ static void comm_process(uint8_t* frame, int len) if (err != PROTOCOL_SUCCESS) return ; - //TODO:获取本机地址 + //TODO:鑾峰彇鏈満鍦板潃 uint8_t local_addr = 0; dev_cfg_get_devid(&local_addr); @@ -209,7 +209,7 @@ static void comm_process(uint8_t* frame, int len) memcpy( &tp_data,&tp_info.tp_datas,sizeof(tp_data)); - //兼容旧协议,没有用到的通道,填充无效数据 + //鍏煎鏃у崗璁,娌℃湁鐢ㄥ埌鐨勯氶亾锛屽~鍏呮棤鏁堟暟鎹 for(int i=0; i <8-TP_SENSOR_NUM; i++){ tp_data.channels[i+TP_SENSOR_NUM].status =1; @@ -244,7 +244,7 @@ static void comm_process(uint8_t* frame, int len) app_collect_ad_get(&ad_data); - //兼容旧协议,没有用到的通道,填充无效数据 + //鍏煎鏃у崗璁,娌℃湁鐢ㄥ埌鐨勯氶亾锛屽~鍏呮棤鏁堟暟鎹 for(int i=0; i <8-YB_SENSOR_NUM; i++){ ad_data.channels[i+5].status =1; diff --git a/Project/GateWay/source/User/Src/bsp.c b/Project/GateWay/source/User/Src/bsp.c index 1de06a4..a4e66a9 100644 --- a/Project/GateWay/source/User/Src/bsp.c +++ b/Project/GateWay/source/User/Src/bsp.c @@ -16,10 +16,10 @@ static uint16_t m_au16Adc1SaValue; static stc_sdcard_init_t stcCardInitCfg; static stc_sdcard_dma_init_t stcDmaInitCfg; /***************************************************************************************** -* 函数名称: SdioInit -* 功能描述: Sdio初始化函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: SdioInit +* 鍔熻兘鎻忚堪: Sdio鍒濆鍖栧嚱鏁 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ en_result_t SdioInit(void) { @@ -50,11 +50,11 @@ en_result_t SdioInit(void) } /***************************************************************************************** -* 函数名称: SDCardErase -* 功能描述: SDCard扇区擦除函数,最大擦除扇区数10 -* 参 数: u32BlkStartAddr 起始扇区 - u32BlkEndAddr 结束扇区 -* 返 回 值: 操作成功返回true,失败返回false +* 鍑芥暟鍚嶇О: SDCardErase +* 鍔熻兘鎻忚堪: SDCard鎵囧尯鎿﹂櫎鍑芥暟锛屾渶澶ф摝闄ゆ墖鍖烘暟10 +* 鍙 鏁: u32BlkStartAddr 璧峰鎵囧尯 + u32BlkEndAddr 缁撴潫鎵囧尯 +* 杩 鍥 鍊: 鎿嶄綔鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse *****************************************************************************************/ bool SDCardErase(uint32_t u32BlkStartAddr, uint32_t u32BlkEndAddr) { @@ -67,11 +67,11 @@ bool SDCardErase(uint32_t u32BlkStartAddr, uint32_t u32BlkEndAddr) } /***************************************************************************************** -* 函数名称: SDCardReadBlocks -* 功能描述: SDCard扇区读取函数,最大读取扇区数10 -* 参 数: u32BlkStartAddr 起始扇区 - u32BlkEndAddr 结束扇区 -* 返 回 值: 操作成功返回true,失败返回false +* 鍑芥暟鍚嶇О: SDCardReadBlocks +* 鍔熻兘鎻忚堪: SDCard鎵囧尯璇诲彇鍑芥暟锛屾渶澶ц鍙栨墖鍖烘暟10 +* 鍙 鏁: u32BlkStartAddr 璧峰鎵囧尯 + u32BlkEndAddr 缁撴潫鎵囧尯 +* 杩 鍥 鍊: 鎿嶄綔鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse *****************************************************************************************/ bool SDCardReadBlocks(uint32_t u32BlkStartAddr, uint32_t u32BlkEndAddr, uint8_t *ReadBuff) { @@ -84,11 +84,11 @@ bool SDCardReadBlocks(uint32_t u32BlkStartAddr, uint32_t u32BlkEndAddr, uint8_t } /***************************************************************************************** -* 函数名称: SDCardWriteBlocks -* 功能描述: SDCard扇区写入函数,最大写入扇区数10 -* 参 数: u32BlkStartAddr 起始扇区 - u32BlkEndAddr 结束扇区 -* 返 回 值: 操作成功返回true,失败返回false +* 鍑芥暟鍚嶇О: SDCardWriteBlocks +* 鍔熻兘鎻忚堪: SDCard鎵囧尯鍐欏叆鍑芥暟锛屾渶澶у啓鍏ユ墖鍖烘暟10 +* 鍙 鏁: u32BlkStartAddr 璧峰鎵囧尯 + u32BlkEndAddr 缁撴潫鎵囧尯 +* 杩 鍥 鍊: 鎿嶄綔鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse *****************************************************************************************/ bool SDCardWriteBlocks(uint32_t u32BlkStartAddr, uint32_t u32BlkEndAddr, uint8_t *WriteBuff) { @@ -106,10 +106,10 @@ bool SDCardWriteBlocks(uint32_t u32BlkStartAddr, uint32_t u32BlkEndAddr, uint8_t ****************************************************************************************/ /***************************************************************************************** -* 函数名称: SystemClockConfig -* 功能描述: 系统时钟设置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: SystemClockConfig +* 鍔熻兘鎻忚堪: 绯荤粺鏃堕挓璁剧疆 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void SystemClockConfig(void) { @@ -178,10 +178,10 @@ static void SystemClockConfig(void) } /***************************************************************************************** -* 函数名称: Xtal32_ClockConfig -* 功能描述: 系统低速时钟配置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Xtal32_ClockConfig +* 鍔熻兘鎻忚堪: 绯荤粺浣庨熸椂閽熼厤缃 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void Xtal32_ClockConfig(void) { @@ -209,10 +209,10 @@ static void Xtal32_ClockConfig(void) ****************************************************************************************/ /***************************************************************************************** -* 函数名称: DbgUartRec -* 功能描述: 调试串口接收函数 -* 参 数: 无 -* 返 回 值: 返回收到的字符 +* 鍑芥暟鍚嶇О: DbgUartRec +* 鍔熻兘鎻忚堪: 璋冭瘯涓插彛鎺ユ敹鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 杩斿洖鏀跺埌鐨勫瓧绗 *****************************************************************************************/ static uint8_t DbgUartRec(void) { @@ -222,10 +222,10 @@ static uint8_t DbgUartRec(void) /***************************************************************************************** -* 函数名称: DBGUsartErrIrqCallback -* 功能描述: 调试串口错误中断回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DBGUsartErrIrqCallback +* 鍔熻兘鎻忚堪: 璋冭瘯涓插彛閿欒涓柇鍥炶皟鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DBGUsartErrIrqCallback(void) { @@ -242,10 +242,10 @@ static void DBGUsartErrIrqCallback(void) } /***************************************************************************************** -* 函数名称: DbgUsartRxIrqCallback -* 功能描述: 调试串口接收中断回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DbgUsartRxIrqCallback +* 鍔熻兘鎻忚堪: 璋冭瘯涓插彛鎺ユ敹涓柇鍥炶皟鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DbgUsartRxIrqCallback(void) { @@ -254,10 +254,10 @@ static void DbgUsartRxIrqCallback(void) } /***************************************************************************************** -* 函数名称: DbgUart_Config -* 功能描述: 调试串口配置函数 -* 参 数: BaudRate 串口波特率 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DbgUart_Config +* 鍔熻兘鎻忚堪: 璋冭瘯涓插彛閰嶇疆鍑芥暟 +* 鍙 鏁: BaudRate 涓插彛娉㈢壒鐜 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DbgUart_Config(uint32_t BaudRate) { @@ -339,11 +339,11 @@ void DbgUart_Config(uint32_t BaudRate) } /***************************************************************************************** -* 函数名称: DebugUartSend -* 功能描述: 调试串口发送函数 -* 参 数: sData 发送数据入口指针 - sLen 发送数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DebugUartSend +* 鍔熻兘鎻忚堪: 璋冭瘯涓插彛鍙戦佸嚱鏁 +* 鍙 鏁: sData 鍙戦佹暟鎹叆鍙f寚閽 + sLen 鍙戦佹暟鎹暱搴 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void DebugUartSend(uint8_t *sData, uint16_t sLen) { @@ -359,10 +359,10 @@ void DebugUartSend(uint8_t *sData, uint16_t sLen) ****************************************************************************************/ /***************************************************************************************** -* 函数名称: RS485Ch1UartRec -* 功能描述: RS485通道1串口接收函数 -* 参 数: 无 -* 返 回 值: 返回收到的字符 +* 鍑芥暟鍚嶇О: RS485Ch1UartRec +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛鎺ユ敹鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 杩斿洖鏀跺埌鐨勫瓧绗 *****************************************************************************************/ static uint8_t RS485Ch1UartRec(void) { @@ -371,10 +371,10 @@ static uint8_t RS485Ch1UartRec(void) } /***************************************************************************************** -* 函数名称: RS485Ch1UsartErrIrqCallback -* 功能描述: RS485通道1串口错误中断回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1UsartErrIrqCallback +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛閿欒涓柇鍥炶皟鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void RS485Ch1UsartErrIrqCallback(void) { @@ -391,10 +391,10 @@ static void RS485Ch1UsartErrIrqCallback(void) } /***************************************************************************************** -* 函数名称: RS485Ch1UsartRxIrqCallback -* 功能描述: RS485通道1串口接收中断回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1UsartRxIrqCallback +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛鎺ユ敹涓柇鍥炶皟鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void RS485Ch1UsartRxIrqCallback(void) { @@ -404,10 +404,10 @@ static void RS485Ch1UsartRxIrqCallback(void) /***************************************************************************************** -* 函数名称: RS485Ch1_Config -* 功能描述: RS485通道1配置函数 -* 参 数: BaudRate 串口波特率 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1_Config +* 鍔熻兘鎻忚堪: RS485閫氶亾1閰嶇疆鍑芥暟 +* 鍙 鏁: BaudRate 涓插彛娉㈢壒鐜 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485Ch1_Config(uint32_t BaudRate) { @@ -489,11 +489,11 @@ void RS485Ch1_Config(uint32_t BaudRate) } /***************************************************************************************** -* 函数名称: RS485Ch1UartSend -* 功能描述: RS485通道1串口发送函数 -* 参 数: sData 发送数据入口指针 - sLen 发送数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1UartSend +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛鍙戦佸嚱鏁 +* 鍙 鏁: sData 鍙戦佹暟鎹叆鍙f寚閽 + sLen 鍙戦佹暟鎹暱搴 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485Ch1UartSend(uint8_t *sData, uint16_t sLen) { @@ -510,10 +510,10 @@ void RS485Ch1UartSend(uint8_t *sData, uint16_t sLen) ****************************************************************************************/ /***************************************************************************************** -* 函数名称: RS485Ch1UartRec -* 功能描述: RS485通道1串口接收函数 -* 参 数: 无 -* 返 回 值: 返回收到的字符 +* 鍑芥暟鍚嶇О: RS485Ch1UartRec +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛鎺ユ敹鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 杩斿洖鏀跺埌鐨勫瓧绗 *****************************************************************************************/ static uint8_t RS485Ch2UartRec(void) { @@ -522,10 +522,10 @@ static uint8_t RS485Ch2UartRec(void) } /***************************************************************************************** -* 函数名称: RS485Ch1UsartErrIrqCallback -* 功能描述: RS485通道1串口错误中断回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1UsartErrIrqCallback +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛閿欒涓柇鍥炶皟鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void RS485Ch2UsartErrIrqCallback(void) { @@ -542,10 +542,10 @@ static void RS485Ch2UsartErrIrqCallback(void) } /***************************************************************************************** -* 函数名称: RS485Ch1UsartRxIrqCallback -* 功能描述: RS485通道1串口接收中断回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1UsartRxIrqCallback +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛鎺ユ敹涓柇鍥炶皟鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void RS485Ch2UsartRxIrqCallback(void) { @@ -554,10 +554,10 @@ static void RS485Ch2UsartRxIrqCallback(void) } /***************************************************************************************** -* 函数名称: RS485Ch1_Config -* 功能描述: RS485通道1配置函数 -* 参 数: BaudRate 串口波特率 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1_Config +* 鍔熻兘鎻忚堪: RS485閫氶亾1閰嶇疆鍑芥暟 +* 鍙 鏁: BaudRate 涓插彛娉㈢壒鐜 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485Ch2_Config(uint32_t BaudRate) { @@ -639,11 +639,11 @@ void RS485Ch2_Config(uint32_t BaudRate) } /***************************************************************************************** -* 函数名称: RS485Ch1UartSend -* 功能描述: RS485通道1串口发送函数 -* 参 数: sData 发送数据入口指针 - sLen 发送数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1UartSend +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛鍙戦佸嚱鏁 +* 鍙 鏁: sData 鍙戦佹暟鎹叆鍙f寚閽 + sLen 鍙戦佹暟鎹暱搴 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void RS485Ch2UartSend(uint8_t *sData, uint16_t sLen) { @@ -662,10 +662,10 @@ void RS485Ch2UartSend(uint8_t *sData, uint16_t sLen) ****************************************************************************************/ /***************************************************************************************** -* 函数名称: EthOrCat1UartRec -* 功能描述: cat1和eth串口接收函数 -* 参 数: 无 -* 返 回 值: 返回收到的字符 +* 鍑芥暟鍚嶇О: EthOrCat1UartRec +* 鍔熻兘鎻忚堪: cat1鍜宔th涓插彛鎺ユ敹鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 杩斿洖鏀跺埌鐨勫瓧绗 *****************************************************************************************/ static uint8_t EthOrCat1UartRec(void) { @@ -674,10 +674,10 @@ static uint8_t EthOrCat1UartRec(void) } /***************************************************************************************** -* 函数名称: RS485Ch1UsartErrIrqCallback -* 功能描述: cat1和eth串口错误中断回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1UsartErrIrqCallback +* 鍔熻兘鎻忚堪: cat1鍜宔th涓插彛閿欒涓柇鍥炶皟鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void EthOrCat1UsartErrIrqCallback(void) { @@ -694,10 +694,10 @@ static void EthOrCat1UsartErrIrqCallback(void) } /***************************************************************************************** -* 函数名称: RS485Ch1UsartRxIrqCallback -* 功能描述: cat1和eth串口接收中断回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1UsartRxIrqCallback +* 鍔熻兘鎻忚堪: cat1鍜宔th涓插彛鎺ユ敹涓柇鍥炶皟鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void EthOrCat1UsartRxIrqCallback(void) { @@ -707,10 +707,10 @@ static void EthOrCat1UsartRxIrqCallback(void) /***************************************************************************************** -* 函数名称: RS485Ch1_Config -* 功能描述: cat1和eth串口配置函数 -* 参 数: BaudRate 串口波特率 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1_Config +* 鍔熻兘鎻忚堪: cat1鍜宔th涓插彛閰嶇疆鍑芥暟 +* 鍙 鏁: BaudRate 涓插彛娉㈢壒鐜 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void EthOrCat1_Config(uint32_t BaudRate) { @@ -792,11 +792,11 @@ void EthOrCat1_Config(uint32_t BaudRate) } /***************************************************************************************** -* 函数名称: EthOrCat1UartSend -* 功能描述: cat1和eth串口发送函数 -* 参 数: sData 发送数据入口指针 - sLen 发送数据长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: EthOrCat1UartSend +* 鍔熻兘鎻忚堪: cat1鍜宔th涓插彛鍙戦佸嚱鏁 +* 鍙 鏁: sData 鍙戦佹暟鎹叆鍙f寚閽 + sLen 鍙戦佹暟鎹暱搴 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void EthOrCat1UartSend(uint8_t *sData, uint16_t sLen) { @@ -813,10 +813,10 @@ void EthOrCat1UartSend(uint8_t *sData, uint16_t sLen) ****************************************************************************************/ /***************************************************************************************** -* 函数名称: LoraDio0IrqCallback -* 功能描述: LORA DIO0中断回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: LoraDio0IrqCallback +* 鍔熻兘鎻忚堪: LORA DIO0涓柇鍥炶皟鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void LoraDio0IrqCallback(void) { @@ -825,10 +825,10 @@ static void LoraDio0IrqCallback(void) } /***************************************************************************************** -* 函数名称: GPIO_Config -* 功能描述: GPIO配置函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: GPIO_Config +* 鍔熻兘鎻忚堪: GPIO閰嶇疆鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void GPIO_Config(void) { @@ -941,10 +941,10 @@ static void GPIO_Config(void) ****************************************************************************************/ /***************************************************************************************** -* 函数名称: Spi1_Config -* 功能描述: SPI1配置函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Spi1_Config +* 鍔熻兘鎻忚堪: SPI1閰嶇疆鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void Spi1_Config(void) { @@ -1013,10 +1013,10 @@ static void Spi1_Config(void) } /***************************************************************************************** -* 函数名称: Spi1SendReceive -* 功能描述: SPI1发送接收函数 -* 参 数: sData 发送的数据入库哦 -* 返 回 值: 接收到的数据 +* 鍑芥暟鍚嶇О: Spi1SendReceive +* 鍔熻兘鎻忚堪: SPI1鍙戦佹帴鏀跺嚱鏁 +* 鍙 鏁: sData 鍙戦佺殑鏁版嵁鍏ュ簱鍝 +* 杩 鍥 鍊: 鎺ユ敹鍒扮殑鏁版嵁 *****************************************************************************************/ uint16_t Spi1SendReceive(uint16_t sData) { @@ -1052,10 +1052,10 @@ uint16_t Spi1SendReceive(uint16_t sData) ****************************************************************************************/ /***************************************************************************************** -* 函数名称: Spi2_Config -* 功能描述: SPI2配置函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Spi2_Config +* 鍔熻兘鎻忚堪: SPI2閰嶇疆鍑芥暟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void Spi2_Config(void) { @@ -1126,10 +1126,10 @@ static void Spi2_Config(void) } /***************************************************************************************** -* 函数名称: Spi2SendReceive -* 功能描述: SPI2发送接收函数 -* 参 数: sData 发送的数据入库哦 -* 返 回 值: 接收到的数据 +* 鍑芥暟鍚嶇О: Spi2SendReceive +* 鍔熻兘鎻忚堪: SPI2鍙戦佹帴鏀跺嚱鏁 +* 鍙 鏁: sData 鍙戦佺殑鏁版嵁鍏ュ簱鍝 +* 杩 鍥 鍊: 鎺ユ敹鍒扮殑鏁版嵁 *****************************************************************************************/ uint16_t Spi2SendReceive(uint16_t sData) { @@ -1160,10 +1160,10 @@ uint16_t Spi2SendReceive(uint16_t sData) } /***************************************************************************************** -* 函数名称: Rtc_Config -* 功能描述: RTC配置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Rtc_Config +* 鍔熻兘鎻忚堪: RTC閰嶇疆 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void Rtc_Config(void) { @@ -1206,10 +1206,10 @@ static void Rtc_Config(void) /***************************************************************************************** -* 函数名称: AdcInitConfig -* 功能描述: ADC初始化配置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: AdcInitConfig +* 鍔熻兘鎻忚堪: ADC鍒濆鍖栭厤缃 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void AdcInitConfig(void) { @@ -1229,10 +1229,10 @@ static void AdcInitConfig(void) } /***************************************************************************************** -* 函数名称: AdcSetChannelPinMode -* 功能描述: ADC通道引脚配置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: AdcSetChannelPinMode +* 鍔熻兘鎻忚堪: ADC閫氶亾寮曡剼閰嶇疆 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void AdcSetChannelPinMode(uint32_t u32Channel) { @@ -1268,10 +1268,10 @@ static void AdcSetChannelPinMode(uint32_t u32Channel) } /***************************************************************************************** -* 函数名称: AdcChannelConfig -* 功能描述: ADC通道配置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: AdcChannelConfig +* 鍔熻兘鎻忚堪: ADC閫氶亾閰嶇疆 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void AdcChannelConfig(void) { @@ -1290,17 +1290,17 @@ static void AdcChannelConfig(void) ADC_AddAdcChannel(M4_ADC1, &stcChCfg); /* 3. Configure the average channel if you need. */ - ADC_ConfigAvg(M4_ADC1, AdcAvcnt_256); //平均通道配置,多次采样后输出平均值 + ADC_ConfigAvg(M4_ADC1, AdcAvcnt_256); //骞冲潎閫氶亾閰嶇疆锛屽娆¢噰鏍峰悗杈撳嚭骞冲潎鍊 /* 4. Add average channel if you need. */ ADC_AddAvgChannel(M4_ADC1, BAT_COLL_ADC_CH); } /***************************************************************************************** -* 函数名称: Adc1_Config -* 功能描述: ADC1配置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Adc1_Config +* 鍔熻兘鎻忚堪: ADC1閰嶇疆 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void Adc1_Config(void) { @@ -1311,10 +1311,10 @@ static void Adc1_Config(void) /***************************************************************************************** -* 函数名称: AdcDmaConfig -* 功能描述: ADC DMA配置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: AdcDmaConfig +* 鍔熻兘鎻忚堪: ADC DMA閰嶇疆 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void AdcDmaConfig(void) { @@ -1357,11 +1357,11 @@ static void AdcDmaConfig(void) } /***************************************************************************************** -* 函数名称: DmaIrqRegister -* 功能描述: DMA中断寄存器配置 -* 参 数: pstcCfg, 中断参数 - u32Priority, 中断优先级 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DmaIrqRegister +* 鍔熻兘鎻忚堪: DMA涓柇瀵勫瓨鍣ㄩ厤缃 +* 鍙 鏁: pstcCfg锛 涓柇鍙傛暟 + u32Priority锛 涓柇浼樺厛绾 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DmaIrqRegister(stc_irq_regi_conf_t *pstcCfg, uint32_t u32Priority) { @@ -1383,10 +1383,10 @@ static void DmaIrqRegister(stc_irq_regi_conf_t *pstcCfg, uint32_t u32Priority) } /***************************************************************************************** -* 函数名称: DmaIrqRegister -* 功能描述: DMA中断配置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DmaIrqRegister +* 鍔熻兘鎻忚堪: DMA涓柇閰嶇疆 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void DmaIrqConfig(void) { @@ -1400,10 +1400,10 @@ static void DmaIrqConfig(void) } /***************************************************************************************** -* 函数名称: DmaIrqRegister -* 功能描述: DMA配置 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DmaIrqRegister +* 鍔熻兘鎻忚堪: DMA閰嶇疆 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ static void Dma_Config(void) { @@ -1412,10 +1412,10 @@ static void Dma_Config(void) } /***************************************************************************************** -* 函数名称: ReadAdcValue -* 功能描述: 读取AD值 -* 参 数: 无 -* 返 回 值: AD值 +* 鍑芥暟鍚嶇О: ReadAdcValue +* 鍔熻兘鎻忚堪: 璇诲彇AD鍊 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: AD鍊 *****************************************************************************************/ uint16_t GetADCBuffPoint(void) { @@ -1423,10 +1423,10 @@ uint16_t GetADCBuffPoint(void) } /***************************************************************************************** -* 函数名称: ADC_Start -* 功能描述: 启动ADC转换 -* 参 数: 无 -* 返 回 值: AD值 +* 鍑芥暟鍚嶇О: ADC_Start +* 鍔熻兘鎻忚堪: 鍚姩ADC杞崲 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: AD鍊 *****************************************************************************************/ void ADC_Start(void) { @@ -1438,10 +1438,10 @@ void ADC_Start(void) //} /***************************************************************************************** -* 函数名称: TimeGet -* 功能描述: 获取系统时间 -* 参 数: tm 读取时间入口 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: TimeGet +* 鍔熻兘鎻忚堪: 鑾峰彇绯荤粺鏃堕棿 +* 鍙 鏁: tm 璇诲彇鏃堕棿鍏ュ彛 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void TimeGet(struct tm *cTime) { @@ -1458,10 +1458,10 @@ void TimeGet(struct tm *cTime) } /***************************************************************************************** -* 函数名称: TimeTs -* 功能描述: 系统时间转换时间戳 -* 参 数: 无 -* 返 回 值: 返回时间戳 +* 鍑芥暟鍚嶇О: TimeTs +* 鍔熻兘鎻忚堪: 绯荤粺鏃堕棿杞崲鏃堕棿鎴 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 杩斿洖鏃堕棿鎴 *****************************************************************************************/ int TimeTs(void) { @@ -1474,10 +1474,10 @@ int TimeTs(void) } /***************************************************************************************** -* 函数名称: TimeShow -* 功能描述: 将时间输出到DBG串口 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: TimeShow +* 鍔熻兘鎻忚堪: 灏嗘椂闂磋緭鍑哄埌DBG涓插彛 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void TimeShow(uint32_t dwStamp) { @@ -1492,10 +1492,10 @@ void TimeShow(uint32_t dwStamp) } /***************************************************************************************** -* 函数名称: TimeSync -* 功能描述: 通过时间戳同步 -* 参 数: ts 时间入口 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: TimeSync +* 鍔熻兘鎻忚堪: 閫氳繃鏃堕棿鎴冲悓姝 +* 鍙 鏁: ts 鏃堕棿鍏ュ彛 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void TimeSync(time_t ts) { @@ -1516,15 +1516,15 @@ void TimeSync(time_t ts) } /***************************************************************************************** -* 函数名称: TimeSync2 -* 功能描述: 通过年月日同步 -* 参 数: Year 年 - Month 月 - Day 日 - Hour 时 - Min 分 - Sec 秒 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: TimeSync2 +* 鍔熻兘鎻忚堪: 閫氳繃骞存湀鏃ュ悓姝 +* 鍙 鏁: Year 骞 + Month 鏈 + Day 鏃 + Hour 鏃 + Min 鍒 + Sec 绉 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void TimeSync2(uint8_t Year, uint8_t Month, uint8_t Day, uint8_t Hour, uint8_t Min, uint8_t Sec) { @@ -1599,10 +1599,10 @@ int dev_boot_write_param(boot_para_t Param) } /***************************************************************************************** -* 函数名称: EnterStop -* 功能描述: 进入低功耗状态 -* 参 数: SleepStatus 设备低功耗状态 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: EnterStop +* 鍔熻兘鎻忚堪: 杩涘叆浣庡姛鑰楃姸鎬 +* 鍙 鏁: SleepStatus 璁惧浣庡姛鑰楃姸鎬 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ //void EnterStop(void) //{ @@ -1641,10 +1641,10 @@ int dev_boot_write_param(boot_para_t Param) //} /***************************************************************************************** -* 函数名称: Wakeup -* 功能描述: 设备唤醒 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Wakeup +* 鍔熻兘鎻忚堪: 璁惧鍞ら啋 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ //void Wakeup(void) //{ @@ -1668,10 +1668,10 @@ void Error_Handler(void) ****************************************************************************************/ /***************************************************************************************** -* 函数名称: FeedDog -* 功能描述: 看门狗喂狗函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: FeedDog +* 鍔熻兘鎻忚堪: 鐪嬮棬鐙楀杺鐙楀嚱鏁 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void FeedDog(void) { @@ -1735,20 +1735,20 @@ void BSP_Init(void) ****************************************************************************************/ /***************************************************************************************** -* 函数名称: LoraTxRxIrqCallback -* 功能描述: LORA收发中断外部重定向回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: LoraTxRxIrqCallback +* 鍔熻兘鎻忚堪: LORA鏀跺彂涓柇澶栭儴閲嶅畾鍚戝洖璋冨嚱鏁 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ __weak void LoraTxRxIrqCallback(void) { } /***************************************************************************************** -* 函数名称: DbgRxIrqCallback -* 功能描述: 调试串口接收中断外部重定向回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: DbgRxIrqCallback +* 鍔熻兘鎻忚堪: 璋冭瘯涓插彛鎺ユ敹涓柇澶栭儴閲嶅畾鍚戝洖璋冨嚱鏁 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ __weak void DbgRxIrqCallback(uint8_t rData) { @@ -1756,10 +1756,10 @@ __weak void DbgRxIrqCallback(uint8_t rData) } /***************************************************************************************** -* 函数名称: RS485Ch1RxIrqCallback -* 功能描述: RS485通道1串口接收中断外部重定向回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch1RxIrqCallback +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛鎺ユ敹涓柇澶栭儴閲嶅畾鍚戝洖璋冨嚱鏁 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ __weak void RS485Ch1RxIrqCallback(uint8_t rData) { @@ -1767,10 +1767,10 @@ __weak void RS485Ch1RxIrqCallback(uint8_t rData) } /***************************************************************************************** -* 函数名称: RS485Ch2RxIrqCallback -* 功能描述: RS485通道1串口接收中断外部重定向回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RS485Ch2RxIrqCallback +* 鍔熻兘鎻忚堪: RS485閫氶亾1涓插彛鎺ユ敹涓柇澶栭儴閲嶅畾鍚戝洖璋冨嚱鏁 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ __weak void RS485Ch2RxIrqCallback(uint8_t rData) { @@ -1778,10 +1778,10 @@ __weak void RS485Ch2RxIrqCallback(uint8_t rData) } /***************************************************************************************** -* 函数名称: EthOrCat1RxIrqCallback -* 功能描述: Eth和Cat1串口接收中断外部重定向回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: EthOrCat1RxIrqCallback +* 鍔熻兘鎻忚堪: Eth鍜孋at1涓插彛鎺ユ敹涓柇澶栭儴閲嶅畾鍚戝洖璋冨嚱鏁 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ __weak void EthOrCat1RxIrqCallback(uint8_t rData) { @@ -1789,10 +1789,10 @@ __weak void EthOrCat1RxIrqCallback(uint8_t rData) } /***************************************************************************************** -* 函数名称: RtcPeriod_IrqCallback -* 功能描述: RTC中断回调 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: RtcPeriod_IrqCallback +* 鍔熻兘鎻忚堪: RTC涓柇鍥炶皟 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ //__weak void RtcPeriod_IrqCallback(void) //{ @@ -1800,10 +1800,10 @@ __weak void EthOrCat1RxIrqCallback(uint8_t rData) //} /***************************************************************************************** -* 函数名称: Dma1Btc0_IrqHandler -* 功能描述: DMA中断外部重定向回调函数 -* 参 数: 无 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: Dma1Btc0_IrqHandler +* 鍔熻兘鎻忚堪: DMA涓柇澶栭儴閲嶅畾鍚戝洖璋冨嚱鏁 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ __weak void Dma1Btc0_IrqHandler(void) { diff --git a/Project/GateWay/source/User/Src/main.c b/Project/GateWay/source/User/Src/main.c index 6f99366..cd7f46b 100644 --- a/Project/GateWay/source/User/Src/main.c +++ b/Project/GateWay/source/User/Src/main.c @@ -9,7 +9,7 @@ #include "spiflash.h" -//雅下: 81-00-00-06-00-01 +//闆呬笅锛 81-00-00-06-00-01 // 81-00-00-06-00-02 // 81-00-00-06-00-03 // 81-00-00-06-00-04 @@ -60,10 +60,10 @@ int toPercentage(int voltage) } /***************************************************************************************** -* 函数名称: MainDBGOnOff -* 功能描述: 主调试信息开关函数 -* 参 数: OnOff,开关 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: MainDBGOnOff +* 鍔熻兘鎻忚堪: 涓昏皟璇曚俊鎭紑鍏冲嚱鏁 +* 鍙 鏁: OnOff,寮鍏 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ void MainDBGOnOff(bool OnOff) { @@ -143,7 +143,7 @@ void GateWayInit(void) memset((uint8_t *)&GateWay.ConfigPara, 0x00, sizeof(GWConfigPara_t)); GateWay.ConfigPara.SavFlag = LOG_SAV_FLAG; GateWay.ConfigPara.Comm = CATONE_COMM; -#if MAC_ADDR_TYPE == 0//测试服务器 +#if MAC_ADDR_TYPE == 0//娴嬭瘯鏈嶅姟鍣 GateWay.ConfigPara.LTENet.DestAddr[0] = 39; GateWay.ConfigPara.LTENet.DestAddr[1] = 106; GateWay.ConfigPara.LTENet.DestAddr[2] = 103; @@ -157,7 +157,7 @@ void GateWayInit(void) GateWay.ConfigPara.LTENet.DestPort = 12111; #endif - GateWay.ConfigPara.CommUnitReadInterval = COMMUNIT_READ_SENSOR_INTERVAL_MAX;//非低功耗设备 + GateWay.ConfigPara.CommUnitReadInterval = COMMUNIT_READ_SENSOR_INTERVAL_MAX;//闈炰綆鍔熻楄澶 memset(GateWay.ConfigPara.CommUnitArray, 0x00, sizeof(CommUnitData_t) * COMMUNIT_NUM_MAX); GateWay.ConfigPara.Rs485Ch1.Enable = true; GateWay.ConfigPara.Rs485Ch1.CommUnitEnable = false; @@ -340,16 +340,16 @@ void OutageUpdate(uint8_t AlarmType, bool AlarmState, uint8_t Batt) Alarm->AlarmType = AlarmType; Alarm->AlarmState = AlarmState; Alarm->AlarmPara = Batt; - CatOneEthSendQueue(MegData, 6); //发送报警信息 + CatOneEthSendQueue(MegData, 6); //鍙戦佹姤璀︿俊鎭 } /***************************************************************************************** -* 函数名称: main -* 功能描述: 主函数 -* 参 数: 无 -* 返 回 值: 运行错误返回-1 +* 鍑芥暟鍚嶇О: main +* 鍔熻兘鎻忚堪: 涓诲嚱鏁 +* 鍙 鏁: 鏃 +* 杩 鍥 鍊: 杩愯閿欒杩斿洖-1 *****************************************************************************************/ -static uint8_t LastBattery = 0xff; //上一次电池电压 +static uint8_t LastBattery = 0xff; //涓婁竴娆$數姹犵數鍘 int main(void) { uint16_t OneSecondDlyCnt = 0; @@ -456,15 +456,15 @@ int main(void) uint16_t ADValue = GetADCBuffPoint(); //V = (AD * 3.3 / 4096) * (R1+R2) / R1; R1 = 200, R2 = 120 - //计算出常数为0.0021484375,扩大1000倍 + //璁$畻鍑哄父鏁颁负0.0021484375锛屾墿澶1000鍊 float Voltage = ADValue * 2.1484375; GateWay.Battery = toPercentage(Voltage); - //上电判断电量 + //涓婄數鍒ゆ柇鐢甸噺 if(LastBattery == 0xff) { LastBattery = GateWay.Battery; - if(GateWay.ConfigPara.OutageFlag == true) { //有报警 + if(GateWay.ConfigPara.OutageFlag == true) { //鏈夋姤璀 AlarmType = 1; } else { @@ -474,7 +474,7 @@ int main(void) BatteryUpdateDlyCnt = 10; } else { - if(GateWay.ConfigPara.OutageFlag == false) { //没有告警,判断电池电压是否降低 + if(GateWay.ConfigPara.OutageFlag == false) { //娌℃湁鍛婅锛屽垽鏂數姹犵數鍘嬫槸鍚﹂檷浣 if(GateWay.Battery <= LastBattery) { if(LastBattery <= 5) { GateWay.ConfigPara.OutageFlag = true; @@ -495,7 +495,7 @@ int main(void) BatteryUpdateDlyCnt = 20 * 60; } } - else { //充电,更新上一次电池电压 + else { //鍏呯數锛屾洿鏂颁笂涓娆$數姹犵數鍘 LastBattery = GateWay.Battery; } } @@ -522,14 +522,14 @@ int main(void) AlarmType = 0; } } - else { //电池继续放电,更新上一次电池电压 + else { //鐢垫睜缁х画鏀剧數锛屾洿鏂颁笂涓娆$數姹犵數鍘 LastBattery = GateWay.Battery; } } } BatteryUpdateDlyCnt--; if(BatteryUpdateDlyCnt == 0) { - if(GateWay.ConfigPara.OutageFlag) { //有报警 + if(GateWay.ConfigPara.OutageFlag) { //鏈夋姤璀 BatteryUpdateDlyCnt = 20 * 60; } else { diff --git a/Project/GateWay/source/User/Src/protocol.c b/Project/GateWay/source/User/Src/protocol.c index 2656b71..e9543ec 100644 --- a/Project/GateWay/source/User/Src/protocol.c +++ b/Project/GateWay/source/User/Src/protocol.c @@ -11,7 +11,7 @@ int protocol_pack_frame( uint16_t *packed_len) { - // 构建基础帧头 + // 鏋勫缓鍩虹甯уご buffer[0] = PROTOCOL_HEAD & 0xFF; buffer[1] = (PROTOCOL_HEAD >> 8) & 0xFF; @@ -23,21 +23,21 @@ int protocol_pack_frame( buffer[5] = payload_len & 0xFF; buffer[6] = (payload_len >> 8) & 0xFF; - // 复制有效载荷(保持小端格式) + // 澶嶅埗鏈夋晥杞借嵎锛堜繚鎸佸皬绔牸寮忥級 if (payload_len > 0 && payload != NULL) { memcpy(buffer + PROTOCOL_FRAME_HEAD_SIZE , payload, payload_len); } - // 设置实际长度 + // 璁剧疆瀹為檯闀垮害 int fram_len = PROTOCOL_FRAME_MIN_SIZE + payload_len; - // 计算CRC(覆盖地址、命令、长度和有效载荷) + // 璁$畻CRC锛堣鐩栧湴鍧銆佸懡浠ゃ侀暱搴﹀拰鏈夋晥杞借嵎锛 uint16_t crc = 0xFFFF; crc = modbus_crc16(buffer,fram_len -2); - // 写入CRC(保持小端格式) + // 鍐欏叆CRC锛堜繚鎸佸皬绔牸寮忥級 buffer[fram_len-2] = (uint8_t)(crc & 0xFF); buffer[fram_len-1] = (uint8_t)(crc >> 8); @@ -56,7 +56,7 @@ int protocol_unpack_frame( uint8_t *payload, uint16_t *payload_len ) { - // 参数校验 + // 鍙傛暟鏍¢獙 if (frame == NULL || slave_addr == NULL || command == NULL || payload_len == NULL) { return PROTOCOL_ERR_INVALID_PARAM; } @@ -68,7 +68,7 @@ int protocol_unpack_frame( return PROTOCOL_ERR_INVALID_PARAM; } - // 帧头校验 + // 甯уご鏍¢獙 uint16_t header = (frame[0] | frame[1] <<8); if (header != PROTOCOL_HEAD) { @@ -76,7 +76,7 @@ int protocol_unpack_frame( return PROTOCOL_ERR_INVALID_PARAM; } - // 基础字段解析 + // 鍩虹瀛楁瑙f瀽 *slave_addr = (frame[2] | frame[3] << 8); @@ -85,7 +85,7 @@ int protocol_unpack_frame( *payload_len = (frame[5] | frame[6] << 8); - // 数据完整性校验 + // 鏁版嵁瀹屾暣鎬ф牎楠 if (*payload_len > (frame_len - PROTOCOL_FRAME_MIN_SIZE)) { return PROTOCOL_ERR_BUFFER_OVERFLOW; @@ -97,7 +97,7 @@ int protocol_unpack_frame( calc_crc = modbus_crc16((uint8_t *)frame, frame_size -2 ); - // 校验CRC(保持小端格式) + // 鏍¢獙CRC锛堜繚鎸佸皬绔牸寮忥級 union{ uint16_t value; @@ -115,7 +115,7 @@ int protocol_unpack_frame( return PROTOCOL_ERR_CRC; } - // 复制有效载荷(保持小端格式) + // 澶嶅埗鏈夋晥杞借嵎锛堜繚鎸佸皬绔牸寮忥級 if (*payload_len > 0 && payload != NULL) { memcpy(payload, frame + PROTOCOL_FRAME_HEAD_SIZE, *payload_len); } diff --git a/Project/GateWay/source/User/Src/ringbuffer.c b/Project/GateWay/source/User/Src/ringbuffer.c index 225076b..c4fa578 100644 --- a/Project/GateWay/source/User/Src/ringbuffer.c +++ b/Project/GateWay/source/User/Src/ringbuffer.c @@ -1,5 +1,5 @@ /****************************************************************************** - * @brief 环形缓冲区管理(参考linux/kfifo) + * @brief 鐜舰缂撳啿鍖虹鐞(鍙傝僱inux/kfifo) * * Copyright (c) 2016~2020, * @@ -7,7 +7,7 @@ * * Change Logs: * Date Author Notes - * 2016-05-30 Morro 初版完成 + * 2016-05-30 Morro 鍒濈増瀹屾垚 ******************************************************************************/ #include "ringbuffer.h" #include @@ -16,10 +16,10 @@ #define min(a,b) ( (a) < (b) )? (a):(b) /* - *@brief 构造一个空环形缓冲区 - *@param[in] r - 环形缓冲区管理器 - *@param[in] buf - 数据缓冲区 - *@param[in] len - buf长度(必须是2的N次幂) + *@brief 鏋勯犱竴涓┖鐜舰缂撳啿鍖 + *@param[in] r - 鐜舰缂撳啿鍖虹鐞嗗櫒 + *@param[in] buf - 鏁版嵁缂撳啿鍖 + *@param[in] len - buf闀垮害(蹇呴』鏄2鐨凬娆″箓) *@retval bool */ bool ring_buf_init(ring_buf_t *r,unsigned char *buf, unsigned int len) @@ -31,8 +31,8 @@ bool ring_buf_init(ring_buf_t *r,unsigned char *buf, unsigned int len) } /* - *@brief 清空环形缓冲区 - *@param[in] r - 待清空的环形缓冲区 + *@brief 娓呯┖鐜舰缂撳啿鍖 + *@param[in] r - 寰呮竻绌虹殑鐜舰缂撳啿鍖 *@retval none */ void ring_buf_clr(ring_buf_t *r) @@ -41,8 +41,8 @@ void ring_buf_clr(ring_buf_t *r) } /* - *@brief 获取环形缓冲区数据长度 - *@retval 环形缓冲区中有效字节数 + *@brief 鑾峰彇鐜舰缂撳啿鍖烘暟鎹暱搴 + *@retval 鐜舰缂撳啿鍖轰腑鏈夋晥瀛楄妭鏁 */ int ring_buf_len(ring_buf_t *r) { @@ -50,10 +50,10 @@ int ring_buf_len(ring_buf_t *r) } /* - *@brief 将指定长度的数据放到环形缓冲区中 - *@param[in] buf - 数据缓冲区 - * len - 缓冲区长度 - *@retval 实际放到中的数据 + *@brief 灏嗘寚瀹氶暱搴︾殑鏁版嵁鏀惧埌鐜舰缂撳啿鍖轰腑 + *@param[in] buf - 鏁版嵁缂撳啿鍖 + * len - 缂撳啿鍖洪暱搴 + *@retval 瀹為檯鏀惧埌涓殑鏁版嵁 */ int ring_buf_put(ring_buf_t *r,unsigned char *buf,unsigned int len) { @@ -70,10 +70,10 @@ int ring_buf_put(ring_buf_t *r,unsigned char *buf,unsigned int len) } /* - *@brief 从环形缓冲区中读取指定长度的数据 - *@param[in] len - 读取长度 - *@param[out] buf - 输出数据缓冲区 - *@retval 实际读取长度 + *@brief 浠庣幆褰㈢紦鍐插尯涓鍙栨寚瀹氶暱搴︾殑鏁版嵁 + *@param[in] len - 璇诲彇闀垮害 + *@param[out] buf - 杈撳嚭鏁版嵁缂撳啿鍖 + *@retval 瀹為檯璇诲彇闀垮害 */ int ring_buf_get(ring_buf_t *r,unsigned char *buf,unsigned int len) { diff --git a/Project/GateWay/source/User/Src/spiflash.c b/Project/GateWay/source/User/Src/spiflash.c index 15226d8..9ea928f 100644 --- a/Project/GateWay/source/User/Src/spiflash.c +++ b/Project/GateWay/source/User/Src/spiflash.c @@ -39,7 +39,7 @@ static void SpiFlashWaitForWriteEnd(void) SpiFlashSetNss(); } -//扇区擦除 +//鎵囧尯鎿﹂櫎 void SpiFlashEraseSector(uint32_t SectorAddr) { #ifdef FLASH_TEST @@ -57,7 +57,7 @@ void SpiFlashEraseSector(uint32_t SectorAddr) #endif } -//整片擦除 +//鏁寸墖鎿﹂櫎 void SpiFlashEraseChip(void) { SpiFlashWriteEnable(); @@ -67,7 +67,7 @@ void SpiFlashEraseChip(void) SpiFlashWaitForWriteEnd(); } -//写数据 +//鍐欐暟鎹 void SpiFlashWriteData(uint8_t* wData, uint32_t wAddr, uint16_t wLen) { #ifdef FLASH_TEST @@ -89,15 +89,15 @@ void SpiFlashWriteData(uint8_t* wData, uint32_t wAddr, uint16_t wLen) void SpiFlashWriteAnyLengthData(uint8_t* wData, uint32_t wAddr, uint16_t wLen) { - uint16_t PageCnt; //需要写入页数 - uint16_t FirstPageWriteSize; //在起始地址不为页起始地址的情况下,先写入当前页剩余空间 - uint16_t LastPageWriteSize; //最后一页写入长度 + uint16_t PageCnt; //闇瑕佸啓鍏ラ〉鏁 + uint16_t FirstPageWriteSize; //鍦ㄨ捣濮嬪湴鍧涓嶄负椤佃捣濮嬪湴鍧鐨勬儏鍐典笅锛屽厛鍐欏叆褰撳墠椤靛墿浣欑┖闂 + uint16_t LastPageWriteSize; //鏈鍚庝竴椤靛啓鍏ラ暱搴 uint32_t AddrOffset = 0; uint32_t WriteAddr; LogHeader LogH; WriteAddr = wAddr; - //写入的长度超出最大空间,从起始开始写起 + //鍐欏叆鐨勯暱搴﹁秴鍑烘渶澶х┖闂达紝浠庤捣濮嬪紑濮嬪啓璧 if((WriteAddr + wLen) > SPIFLASH_SIZE) { LogH = (LogHeader)wData; WriteAddr = LOG_SAV_START_SECTOR * SPIFLASH_SECTORSIZE; @@ -106,21 +106,21 @@ void SpiFlashWriteAnyLengthData(uint8_t* wData, uint32_t wAddr, uint16_t wLen) uint16_t FirstPageRemainSpace = SPIFLASH_PAGESIZE - (WriteAddr % SPIFLASH_PAGESIZE); -// //判断是否跨扇区,跨扇区需要先擦除下一扇区 +// //鍒ゆ柇鏄惁璺ㄦ墖鍖猴紝璺ㄦ墖鍖洪渶瑕佸厛鎿﹂櫎涓嬩竴鎵囧尯 CheckDelSecter(wAddr, wLen); if(wLen < FirstPageRemainSpace) { - FirstPageWriteSize = wLen; //计算首页写入长度 + FirstPageWriteSize = wLen; //璁$畻棣栭〉鍐欏叆闀垮害 PageCnt = 0; LastPageWriteSize = 0; } else { // FirstPageWriteSize = FirstPageRemainSpace % SPIFLASH_PAGESIZE; -// PageCnt = (wLen - (FirstPageWriteSize % SPIFLASH_PAGESIZE)) / SPIFLASH_PAGESIZE; //计算需要写入多少整页 -// LastPageWriteSize = (wLen - (FirstPageWriteSize % SPIFLASH_PAGESIZE)) % SPIFLASH_PAGESIZE; //计算剩余需要写入的长度 +// PageCnt = (wLen - (FirstPageWriteSize % SPIFLASH_PAGESIZE)) / SPIFLASH_PAGESIZE; //璁$畻闇瑕佸啓鍏ュ灏戞暣椤 +// LastPageWriteSize = (wLen - (FirstPageWriteSize % SPIFLASH_PAGESIZE)) % SPIFLASH_PAGESIZE; //璁$畻鍓╀綑闇瑕佸啓鍏ョ殑闀垮害 FirstPageWriteSize = FirstPageRemainSpace; - PageCnt = (wLen - FirstPageWriteSize) / SPIFLASH_PAGESIZE; //计算需要写入多少整页 - LastPageWriteSize = (wLen - FirstPageWriteSize) % SPIFLASH_PAGESIZE; //计算剩余需要写入的长度 + PageCnt = (wLen - FirstPageWriteSize) / SPIFLASH_PAGESIZE; //璁$畻闇瑕佸啓鍏ュ灏戞暣椤 + LastPageWriteSize = (wLen - FirstPageWriteSize) % SPIFLASH_PAGESIZE; //璁$畻鍓╀綑闇瑕佸啓鍏ョ殑闀垮害 } if(FirstPageWriteSize > 0) { @@ -170,17 +170,17 @@ uint32_t SpiFlashReadId(void) typedef struct { uint16_t Flag; - uint16_t LoopSavFlag; //循环存储标志 - uint32_t LogCnt; //日志最大数量 - uint32_t FirstLogStartAddr; //第一个数据的起始地址 - uint32_t LastLogEndAddr; //最后一个数据的结束地址 + uint16_t LoopSavFlag; //寰幆瀛樺偍鏍囧織 + uint32_t LogCnt; //鏃ュ織鏈澶ф暟閲 + uint32_t FirstLogStartAddr; //绗竴涓暟鎹殑璧峰鍦板潃 + uint32_t LastLogEndAddr; //鏈鍚庝竴涓暟鎹殑缁撴潫鍦板潃 }LogNumSav_t; static LogNumSav_t LogNumArray[256]; static __IO uint32_t gLogCnt = 0; -static __IO uint32_t FirstLogStartAddr = 0; //第一个日志起始地址 -static __IO uint32_t LastLogEndAddr = 0; //最后一个日志结束地址 -static __IO uint16_t LoopSavFlag = 0; //循环存储标志 +static __IO uint32_t FirstLogStartAddr = 0; //绗竴涓棩蹇楄捣濮嬪湴鍧 +static __IO uint32_t LastLogEndAddr = 0; //鏈鍚庝竴涓棩蹇楃粨鏉熷湴鍧 +static __IO uint16_t LoopSavFlag = 0; //寰幆瀛樺偍鏍囧織 static uint16_t LogNumIdx; uint16_t ReadLoopSavFlag(void) @@ -235,7 +235,7 @@ void LogInit(void) break; } } - if(LogNumIdx == 0xffff) { //256条记录满,读最后一条记录 + if(LogNumIdx == 0xffff) { //256鏉¤褰曟弧锛岃鏈鍚庝竴鏉¤褰 LogNumIdx = 0; SetLogNum(LogNumArray[255].LogCnt); SetLoopSavFlag(LogNumArray[255].LoopSavFlag); @@ -243,7 +243,7 @@ void LogInit(void) SetLastLogEndAddr(LogNumArray[255].LastLogEndAddr); return; } - if(LogNumIdx == 0) { //没有记录 + if(LogNumIdx == 0) { //娌℃湁璁板綍 LogNumIdx = 0; SetLogNum(0); SetLoopSavFlag(0); @@ -286,17 +286,17 @@ void SavLogNum(uint32_t LogNum) } /***************************************************************************************** -* 函数名称: CheckDelSecter -* 功能描述: 检查需要删除的扇区,跨扇区删除下一扇区,如果到了删除最后一个扇区,循环到起始扇区 -* 参 数: wAddr, 写入地址 - wLen, 写入长度 -* 返 回 值: 返回写入起始地址 +* 鍑芥暟鍚嶇О: CheckDelSecter +* 鍔熻兘鎻忚堪: 妫鏌ラ渶瑕佸垹闄ょ殑鎵囧尯锛岃法鎵囧尯鍒犻櫎涓嬩竴鎵囧尯锛屽鏋滃埌浜嗗垹闄ゆ渶鍚庝竴涓墖鍖猴紝寰幆鍒拌捣濮嬫墖鍖 +* 鍙 鏁: wAddr, 鍐欏叆鍦板潃 + wLen, 鍐欏叆闀垮害 +* 杩 鍥 鍊: 杩斿洖鍐欏叆璧峰鍦板潃 *****************************************************************************************/ uint8_t LogBuff[LOG_SAV_SIZE_MAX]; const uint8_t SavFlag[4] ={0xAA, 0x55, 0x55, 0xAA}; void CheckDelSecter(uint32_t wAddr, uint16_t wLen) { - uint32_t DelOffsetAddr, FindFirstLogAddr; //存储起始地址 + uint32_t DelOffsetAddr, FindFirstLogAddr; //瀛樺偍璧峰鍦板潃 uint32_t DelSectorNum = 0; uint32_t SurplusSpace = SPIFLASH_SECTORSIZE - (wAddr % SPIFLASH_SECTORSIZE); @@ -308,7 +308,7 @@ void CheckDelSecter(uint32_t wAddr, uint16_t wLen) FindFirstLogAddr = DelOffsetAddr + SPIFLASH_SECTORSIZE; } else { - if(wLen < SurplusSpace) { //长度没有超过扇区剩余容量 + if(wLen < SurplusSpace) { //闀垮害娌℃湁瓒呰繃鎵囧尯鍓╀綑瀹归噺 SetLastLogEndAddr(wAddr + wLen); return; } @@ -340,7 +340,7 @@ void CheckDelSecter(uint32_t wAddr, uint16_t wLen) } if(i == LOG_SAV_SIZE_MAX) { ReadAddr += LOG_SAV_SIZE_MAX; - if(ReadAddr >= SPIFLASH_SIZE) { //找不到下一条数据,重置flash + if(ReadAddr >= SPIFLASH_SIZE) { //鎵句笉鍒颁笅涓鏉℃暟鎹紝閲嶇疆flash Debug_Printf("Add LOG Error, Next Data No Find!\r\n"); SetLogNum(0); SetLoopSavFlag(0); @@ -381,7 +381,7 @@ void AddLog(uint8_t *wData, uint32_t wLen) LogH->TimeStamp = TimeTs(); memcpy(&LogBuffTemp[sizeof(LogHeader_t)], wData, wLen); - //判断是否跨扇区,跨扇区需要先擦除下一扇区 + //鍒ゆ柇鏄惁璺ㄦ墖鍖猴紝璺ㄦ墖鍖洪渶瑕佸厛鎿﹂櫎涓嬩竴鎵囧尯 CheckDelSecter(LLEndAddr, LogSize); if(LogH->LogEndAddr > SPIFLASH_SIZE) { LLEndAddr = LOG_SAV_START_SECTOR * SPIFLASH_SECTORSIZE; @@ -395,13 +395,13 @@ void AddLog(uint8_t *wData, uint32_t wLen) /***************************************************************************************** -* 函数名称: ReadLog -* 功能描述: 读取日志 -* 参 数: Header, 上一包日志头信息,连续读取时传入上一包数据信息,缩短日志遍历时间, - Header->LogEndAddr为0读取第一包数据,LogIdx数据无效 - rData, 日志出口,需要释放 - LogIdx, 读取的日志的序号,为0读取Header->LogEndAddr对应日志 -* 返 回 值: 返回数据长度 +* 鍑芥暟鍚嶇О: ReadLog +* 鍔熻兘鎻忚堪: 璇诲彇鏃ュ織 +* 鍙 鏁: Header, 涓婁竴鍖呮棩蹇楀ご淇℃伅锛岃繛缁鍙栨椂浼犲叆涓婁竴鍖呮暟鎹俊鎭紝缂╃煭鏃ュ織閬嶅巻鏃堕棿锛 + Header->LogEndAddr涓0璇诲彇绗竴鍖呮暟鎹,LogIdx鏁版嵁鏃犳晥 + rData, 鏃ュ織鍑哄彛锛岄渶瑕侀噴鏀 + LogIdx, 璇诲彇鐨勬棩蹇楃殑搴忓彿锛屼负0璇诲彇Header->LogEndAddr瀵瑰簲鏃ュ織 +* 杩 鍥 鍊: 杩斿洖鏁版嵁闀垮害 *****************************************************************************************/ int ReadLog(LogHeader Header, uint8_t **rData, uint32_t LogIdx) { @@ -426,7 +426,7 @@ int ReadLog(LogHeader Header, uint8_t **rData, uint32_t LogIdx) while(1) { SpiFlashReadAnyLengthData((uint8_t *)Header, FSAddr, sizeof(LogHeader_t)); if(Header->LogSavFlag != LOG_SAV_FLAG) { - if((SPIFLASH_SIZE - FSAddr) < LOG_SAV_SIZE_MAX) { //判断是否到片尾 + if((SPIFLASH_SIZE - FSAddr) < LOG_SAV_SIZE_MAX) { //鍒ゆ柇鏄惁鍒扮墖灏 FSAddr = LOG_SAV_START_SECTOR * SPIFLASH_SECTOR_NUM; continue; } @@ -461,15 +461,15 @@ int ReadLog(LogHeader Header, uint8_t **rData, uint32_t LogIdx) /***************************************************************************************** -* 函数名称: ReadPara -* 功能描述: 读取参数 -* 参 数: Para, 网关参数 - ParaLen, 参数长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: ReadPara +* 鍔熻兘鎻忚堪: 璇诲彇鍙傛暟 +* 鍙 鏁: Para, 缃戝叧鍙傛暟 + ParaLen, 鍙傛暟闀垮害 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ int ReadPara(uint8_t *Para, uint32_t ParaLen) { - SpiFlashReadAnyLengthData(Para, GATEWEY_PARA_SAV_ADDR, ParaLen); //读取片尾数据 + SpiFlashReadAnyLengthData(Para, GATEWEY_PARA_SAV_ADDR, ParaLen); //璇诲彇鐗囧熬鏁版嵁 uint16_t Check = CRC_Modbus(0xA001, Para, ParaLen - 2); GWConfigPara CfgPara = (GWConfigPara)Para; if(CfgPara->crc16 != Check) @@ -478,11 +478,11 @@ int ReadPara(uint8_t *Para, uint32_t ParaLen) } /***************************************************************************************** -* 函数名称: WritePara -* 功能描述: 写入参数 -* 参 数: Para, 网关参数 - ParaLen, 参数长度 -* 返 回 值: 无 +* 鍑芥暟鍚嶇О: WritePara +* 鍔熻兘鎻忚堪: 鍐欏叆鍙傛暟 +* 鍙 鏁: Para, 缃戝叧鍙傛暟 + ParaLen, 鍙傛暟闀垮害 +* 杩 鍥 鍊: 鏃 *****************************************************************************************/ int WritePara(uint8_t *Para, uint32_t ParaLen) { @@ -491,7 +491,7 @@ int WritePara(uint8_t *Para, uint32_t ParaLen) uint16_t Check = CRC_Modbus(0xA001, Para, ParaLen - 2); GWConfigPara CfgPara = (GWConfigPara)Para; CfgPara->crc16 = Check; - SpiFlashWriteAnyLengthData(Para, GATEWEY_PARA_SAV_ADDR, ParaLen); //读取片尾数据 + SpiFlashWriteAnyLengthData(Para, GATEWEY_PARA_SAV_ADDR, ParaLen); //璇诲彇鐗囧熬鏁版嵁 return 0; } diff --git a/Project/GateWay/source/User/Src/utils.c b/Project/GateWay/source/User/Src/utils.c index c04477f..4276991 100644 --- a/Project/GateWay/source/User/Src/utils.c +++ b/Project/GateWay/source/User/Src/utils.c @@ -1,16 +1,16 @@ #include "utils.h" /* -鐢熸垚澶氶」寮 (x^16 + x^15 + x^2 + 1锛 +閻㈢喐鍨氭径姘躲嶅?(x^16 + x^15 + x^2 + 1閿? */ uint16_t modbus_crc16(uint8_t* data, int length) { - uint16_t crc = 0xFFFF; // 鍒濆鍊糉FFF - uint16_t polynomial = 0x8005; // 澶氶」寮8005 + uint16_t crc = 0xFFFF; // 閸掓繂顫愰崐绯塅FF + uint16_t polynomial = 0x8005; // 婢舵岸銆嶅?005 for (int i = 0; i < length; i++) { - // 杈撳叆鍙嶈浆(REFIN)锛氬姣忎釜瀛楄妭杩涜浣嶅弽杞 + // 鏉堟挸鍙嗛崣宥堟祮(REFIN)閿涙艾顕В蹇庨嚋鐎涙濡潻娑滎攽娴e秴寮芥潪? uint8_t byte = data[i]; uint8_t reversed_byte = 0; @@ -19,10 +19,10 @@ uint16_t modbus_crc16(uint8_t* data, int length) byte >>= 1; } - crc ^= (reversed_byte << 8); // 涓庨珮瀛楄妭寮傛垨 + crc ^= (reversed_byte << 8); // 娑撳酣鐝涙濡鍌涘灗 for (int j = 0; j < 8; j++) { - if (crc & 0x8000) { // 妫鏌ユ渶楂樹綅 + if (crc & 0x8000) { // 濡偓閺屻儲娓舵妯圭秴 crc = (crc << 1) ^ polynomial; } else { crc <<= 1; @@ -30,7 +30,7 @@ uint16_t modbus_crc16(uint8_t* data, int length) } } - // 杈撳嚭鍙嶈浆(REFOUT)锛氬16浣岰RC缁撴灉杩涜浣嶅弽杞 + // 鏉堟挸鍤崣宥堟祮(REFOUT)閿涙艾顕16娴e舶RC缂佹挻鐏夋潻娑滎攽娴e秴寮芥潪? uint16_t reversed_crc = 0; for (int i = 0; i < 16; i++) { @@ -38,6 +38,6 @@ uint16_t modbus_crc16(uint8_t* data, int length) crc >>= 1; } - // 缁撴灉寮傛垨鍊(XOROUT)锛0000锛堝疄闄呬笉鍙橈級 + // 缂佹挻鐏夊鍌涘灗閸?XOROUT)閿?000閿涘牆鐤勯梽鍛瑝閸欐﹫绱 return reversed_crc ^ 0x0000; }