diff --git a/Project/GateWay/MDK/GateWay.uvoptx b/Project/GateWay/MDK/GateWay.uvoptx index c6a3d15..7323d53 100644 --- a/Project/GateWay/MDK/GateWay.uvoptx +++ b/Project/GateWay/MDK/GateWay.uvoptx @@ -410,7 +410,7 @@ 0 JL2CM3 - -U4294967295 -O78 -S4 -ZTIFSpeedSel2000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8027 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO11 -FD1FFF8000 -FC1000 -FN2 -FF0HC32F460_otp.FLM -FS03000C00 -FL03FC -FP0($$Device:HC32F460KETA$FlashARM\HC32F460_otp.FLM) -FF1HC32F460_512K.FLM -FS10 -FL180000 -FP1($$Device:HC32F460KETA$FlashARM\HC32F460_512K.FLM) + -U4294967295 -O78 -S4 -ZTIFSpeedSel2000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8027 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO14 -FD1FFF8000 -FC1000 -FN2 -FF0HC32F460_otp.FLM -FS03000C00 -FL03FC -FP0($$Device:HC32F460KETA$FlashARM\HC32F460_otp.FLM) -FF1HC32F460_512K.FLM -FS10 -FL180000 -FP1($$Device:HC32F460KETA$FlashARM\HC32F460_512K.FLM) 0 @@ -428,7 +428,24 @@ - + + + 0 + 0 + 1006 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + ..\source\User\Src\Public.c + + +
+
0 diff --git a/Project/GateWay/source/User/Inc/Public.h b/Project/GateWay/source/User/Inc/Public.h index 7c7d4e5..67366c4 100644 --- a/Project/GateWay/source/User/Inc/Public.h +++ b/Project/GateWay/source/User/Inc/Public.h @@ -213,7 +213,8 @@ typedef struct { uint8_t Power; uint32_t BaudRate; SendData RS485Send; - CommUnit_t CUData; + CommUnit_t CUPara; + CommUnitData_t CUData; }__attribute__((packed))RS485Para_t, *RS485Para; typedef struct { diff --git a/Project/GateWay/source/User/Src/CatOneTask.c b/Project/GateWay/source/User/Src/CatOneTask.c index f3fb2a4..c7605bb 100644 --- a/Project/GateWay/source/User/Src/CatOneTask.c +++ b/Project/GateWay/source/User/Src/CatOneTask.c @@ -398,12 +398,12 @@ int GateWayRegister(uint8_t *TxBuff) if(CatOne.GateWay->ConfigPara.Rs485Ch1.CommUnitEnable == true && CatOne.GateWay->ConfigPara.Rs485Ch1.Enable == true) { UnitCommCnt++; - memcpy(&p[len], CatOne.GateWay->ConfigPara.Rs485Ch1.CUData.Para.Mac[0], 6); + memcpy(&p[len], CatOne.GateWay->ConfigPara.Rs485Ch1.CUPara.Para.Mac[0], 6); len += 6; } if(CatOne.GateWay->ConfigPara.Rs485Ch2.CommUnitEnable == true && CatOne.GateWay->ConfigPara.Rs485Ch2.Enable == true) { UnitCommCnt++; - memcpy(&p[len], CatOne.GateWay->ConfigPara.Rs485Ch2.CUData.Para.Mac[0], 6); + memcpy(&p[len], CatOne.GateWay->ConfigPara.Rs485Ch2.CUPara.Para.Mac[0], 6); len += 6; } for(int i = 0; i < COMMUNIT_NUM_MAX; i++) { diff --git a/Project/GateWay/source/User/Src/Public.c b/Project/GateWay/source/User/Src/Public.c index 58659ba..c192d9c 100644 --- a/Project/GateWay/source/User/Src/Public.c +++ b/Project/GateWay/source/User/Src/Public.c @@ -575,11 +575,13 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData MegData[0] = PayLoadLen & 0x00ff;; MegData[1] = (PayLoadLen >> 8) & 0x00ff; MegData[2] = NET_COMM_CMD_ADD_UNIT; + MegData[3] = (GateWay->ConfigPara.CommUnitArray[i].SensorN) & 0x00ff;; + MegData[4] = (GateWay->ConfigPara.CommUnitArray[i].SensorN >> 8) & 0x00ff; for(uint8_t i = 0; i < GateWay->ConfigPara.CommUnitArray[i].SensorN; i++) { - memcpy(&MegData[3], GateWay->ConfigPara.CommUnitArray[i].Mac[i], 6); + memcpy(&MegData[5], GateWay->ConfigPara.CommUnitArray[i].Mac[i], 6); } - CatOneEthSendQueue(MegData, PayLoadLen+3); + CatOneEthSendQueue(MegData, PayLoadLen+5); rt_free(MegData); } return 0xff; @@ -1011,14 +1013,14 @@ int Cat1EthRevCallBack(GateWayPara GateWay, uint8_t *rData, uint16_t rLen) if(GateWay->ConfigPara.Rs485Ch1.Enable == true) { //内部通讯单元处理 if(GateWay->ConfigPara.Rs485Ch1.CommUnitEnable == true) { SensorCnt++; - memcpy(&MegData[sLen], GateWay->ConfigPara.Rs485Ch1.CUData.Para.Mac[0], 6); + memcpy(&MegData[sLen], GateWay->ConfigPara.Rs485Ch1.CUPara.Para.Mac[0], 6); sLen += 6; } } if(GateWay->ConfigPara.Rs485Ch2.Enable == true) { if(GateWay->ConfigPara.Rs485Ch2.CommUnitEnable == true) { SensorCnt++; - memcpy(&MegData[sLen], GateWay->ConfigPara.Rs485Ch2.CUData.Para.Mac[0], 6); + memcpy(&MegData[sLen], GateWay->ConfigPara.Rs485Ch2.CUPara.Para.Mac[0], 6); sLen += 6; } } diff --git a/Project/GateWay/source/User/Src/RS485Task.c b/Project/GateWay/source/User/Src/RS485Task.c index 997b512..06331a7 100644 --- a/Project/GateWay/source/User/Src/RS485Task.c +++ b/Project/GateWay/source/User/Src/RS485Task.c @@ -289,18 +289,18 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP } } } - else if(RS485Ch->CUData.Para.SensorN > 0){ + else if(RS485Ch->CUPara.Para.SensorN > 0){ SCPara->SendFlag = false; if(SCPara->ReadSensorInterval > 0) { SCPara->ReadSensorInterval--; } else { - if(SCPara->ReadSensorCnt >= RS485Ch->CUData.Para.SensorN || SCPara->SensorCnt >= SENSOR_NUM_MAX) { + if(SCPara->ReadSensorCnt >= RS485Ch->CUPara.Para.SensorN || SCPara->SensorCnt >= SENSOR_NUM_MAX) { SCPara->SensorCnt = 0; SCPara->ReadSensorCnt = 0; SCPara->ReadSensorInterval = GateWay->ConfigPara.CommUnitReadInterval * 5; - RS485Ch->CUData.Para.BatLevel = GateWay->Battery; - CommUintLen = CommUintOrgData(GateWay, &RS485Ch->CUData.Para, &SCPara->SensorData, CommUintData); + RS485Ch->CUPara.Para.BatLevel = GateWay->Battery; + CommUintLen = CommUintOrgData(GateWay, &RS485Ch->CUPara.Para, &SCPara->SensorData, CommUintData); //AddLog(&CommUintData[2], CommUintLen - 2); CatOneEthSendQueue(CommUintData, CommUintLen); if(RS485Ch == &GateWay->ConfigPara.Rs485Ch1) { @@ -312,11 +312,11 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP SCPara->SensorCnt = 0; } else { - if(RS485Ch->CUData.Para.SensorType[SCPara->SensorCnt] != 0) { + if(RS485Ch->CUPara.Para.SensorType[SCPara->SensorCnt] != 0) { rt_thread_delay(50); SCPara->Cmd = RS485_SENSOR_CMD_READ; SCPara->SensorAddr = SCPara->SensorCnt + 1; - SCPara->SensorType = RS485Ch->CUData.Para.SensorType[SCPara->SensorCnt]; + SCPara->SensorType = RS485Ch->CUPara.Para.SensorType[SCPara->SensorCnt]; SCPara->CmdParaLen = RS485SensorCmdPayLoadLen[RS485_SENSOR_CMD_READ]; SCPara->CmdPara = NULL; //rt_mutex_take(GateWay->UartRevMutex, RT_WAITING_FOREVER); @@ -402,7 +402,7 @@ void RS485LoopHandler(GateWayPara GateWay, RS485Para RS485Ch, SensorCommPara SCP else { if(RS485Ch->CommUnitEnable == true) { //rt_mutex_release(GateWay->UartRevMutex); - if(SCPara->SendFlag == true) { //&& RS485Ch->CUData.Para.SensorN > 0 && RS485Ch->QuerySensorFlag == false){ + if(SCPara->SendFlag == true) { //&& RS485Ch->CUPara.Para.SensorN > 0 && RS485Ch->QuerySensorFlag == false){ if(RS485Ch == &GateWay->ConfigPara.Rs485Ch1) { test++; MAIN_DBG_LOG("InCommUint1, Sensor %d Comm Error, Cmd %d...\r\n", SCPara->SensorAddr, SCPara->Cmd); @@ -455,13 +455,13 @@ void RS485Ch1_Thread_Entry(void *parameter) InCommUnitMac[3] = GateWay->ConfigPara.GwMac[4]; InCommUnitMac[4] = GateWay->ConfigPara.GwMac[5]; RS485Ch = &GateWay->ConfigPara.Rs485Ch1; - memcpy(RS485Ch->CUData.Para.Mac, InCommUnitMac, 6); + memcpy(RS485Ch->CUPara.Para.Mac, InCommUnitMac, 6); if(RS485Ch->CommUnitEnable == true) { RS485_CH1_POW_ON(); - RS485Ch->CUData.Para.SensorN = 0; - memset(RS485Ch->CUData.Para.SensorType, 0x00, sizeof(SENSOR_NUM_MAX * 2)); + RS485Ch->CUPara.Para.SensorN = 0; + memset(RS485Ch->CUPara.Para.SensorType, 0x00, sizeof(SENSOR_NUM_MAX * 2)); RS485Ch->QuerySensorFlag = true; - RS485Ch->CUData.Para.CommStatus = true; + RS485Ch->CUPara.Para.CommStatus = true; } SCPara->RS485CommUnitReadTimeDelay = 100; SCPara->RS485Rev_Sem = rt_sem_create("rsch1sem", 0, RT_IPC_FLAG_FIFO); @@ -519,13 +519,13 @@ void RS485Ch2_Thread_Entry(void *parameter) InCommUnitMac[3] = GateWay->ConfigPara.GwMac[4]; InCommUnitMac[4] = GateWay->ConfigPara.GwMac[5]; RS485Ch = &GateWay->ConfigPara.Rs485Ch2; - memcpy(RS485Ch->CUData.Para.Mac, InCommUnitMac, 6); + memcpy(RS485Ch->CUPara.Para.Mac, InCommUnitMac, 6); if(RS485Ch->CommUnitEnable == true) { RS485_CH2_POW_ON(); - RS485Ch->CUData.Para.SensorN = 0; - memset(RS485Ch->CUData.Para.SensorType, 0x00, sizeof(SENSOR_NUM_MAX * 2)); + RS485Ch->CUPara.Para.SensorN = 0; + memset(RS485Ch->CUPara.Para.SensorType, 0x00, sizeof(SENSOR_NUM_MAX * 2)); RS485Ch->QuerySensorFlag = true; - RS485Ch->CUData.Para.CommStatus = 1; + RS485Ch->CUPara.Para.CommStatus = 1; } SCPara->RS485CommUnitReadTimeDelay = 100; SCPara->RS485Rev_Sem = rt_sem_create("rsch2sem", 0, RT_IPC_FLAG_FIFO);