diff --git a/MDK/hc32l17x.uvoptx b/MDK/hc32l17x.uvoptx index 3f335ab..4ed0a55 100644 --- a/MDK/hc32l17x.uvoptx +++ b/MDK/hc32l17x.uvoptx @@ -433,7 +433,7 @@ 0 CMSIS_AGDI - -X"Any" -UAny -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0FlashHC32L17X_128K.FLM -FS00 -FL020000 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM) + -X"Any" -UAny -O206 -S9 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO14 -FD20000000 -FC1000 -FN1 -FF0FlashHC32L17X_128K.FLM -FS00 -FL020000 -FP0($$Device:HC32L170JATA$Flash\FlashHC32L17X_128K.FLM) 0 @@ -473,6 +473,26 @@ 1 LocalMAC + + 2 + 1 + SGCP.LoginOk + + + 3 + 1 + SGCP.UploadOk + + + 4 + 1 + App.Login_LPTimer0 + + + 5 + 1 + App.Upload_LPTimer0 + @@ -537,7 +557,7 @@ 0 0 2 - 10000000 + 5000000 diff --git a/source/src/main.c b/source/src/main.c index e9da4d1..2cbe1ee 100644 --- a/source/src/main.c +++ b/source/src/main.c @@ -20,17 +20,17 @@ extern uint32_t CommWay; extern uint32_t DeviceSign; extern uint32_t AddNumber; -extern uint8_t LocalMAC[6]; //本机MAC地址 -extern uint8_t GatewayMAC[6]; //网关MAC地址,注册时全为0 -extern uint8_t LocalDataPack[sizeof(SGCP.DevData.LaserTracing)]; //本机数据包 //本机数据包 +extern uint8_t LocalMAC[6]; //MACַ +extern uint8_t GatewayMAC[6]; //MACַעʱȫΪ0 +extern uint8_t LocalDataPack[sizeof(SGCP.DevData.LaserTracing)]; //ݰ //ݰ bool MainDispEn = true; bool DataDispEn = true; /***************************************************************************************** -* 函数名称: MainDBGOnOff -* 功能描述: 主调试信息开关函数 -* 参 数: OnOff,开关 -* 返 回 值: 无 +* : MainDBGOnOff +* : Ϣغ +* : OnOff, +* ֵ: *****************************************************************************************/ void MainDBGOnOff(bool OnOff) { @@ -41,10 +41,10 @@ void MainDBGOnOff(bool OnOff) DBG_LOG("\r\nMain Display Disable!\r\n\r\n"); } /***************************************************************************************** -* 函数名称: DataDBGOnOff -* 功能描述: 数据信息开关函数 -* 参 数: OnOff,开关 -* 返 回 值: 无 +* : DataDBGOnOff +* : Ϣغ +* : OnOff, +* ֵ: *****************************************************************************************/ void DataDBGOnOff(bool OnOff) { @@ -82,17 +82,17 @@ static void AppInit(void) LocalMAC[i] = *((volatile const uint8_t *)(0x00002800 + i)); } memcpy(&App.Para.BLPara.DevMac, &LocalMAC[0], 6); - LocalType = (App.Para.BLPara.DevMac[0] | (App.Para.BLPara.DevMac[1] << 8)); //本机设备类型 - CommWay = App.Para.BLPara.DevMac[2]; //本机通讯方式 - DeviceSign = App.Para.BLPara.DevMac[3] & 0x80; //本机设备标志 - AddNumber = ((App.Para.BLPara.DevMac[3] << 16)+ (App.Para.BLPara.DevMac[4] << 8) + App.Para.BLPara.DevMac[5]) - 0x800000; //本机地址编号,数字部分对应唯一地址编号 + LocalType = (App.Para.BLPara.DevMac[0] | (App.Para.BLPara.DevMac[1] << 8)); //豸 + CommWay = App.Para.BLPara.DevMac[2]; //ͨѶʽ + DeviceSign = App.Para.BLPara.DevMac[3] & 0x80; //豸־ + AddNumber = ((App.Para.BLPara.DevMac[3] << 16)+ (App.Para.BLPara.DevMac[4] << 8) + App.Para.BLPara.DevMac[5]) - 0x800000; //ַţֲֶӦΨһַ #else - LocalType = LASER_TRACING; //本机设备类型 - CommWay = LORA; //本机通讯方式 - DeviceSign = MASTER; //本机设备标志 - AddNumber = 0x000023 + DeviceSign;//本机地址编号,数字部分对应唯一地址编号 + LocalType = LASER_TRACING; //豸 + CommWay = LORA; //ͨѶʽ + DeviceSign = MASTER; //豸־ + AddNumber = 0x000023 + DeviceSign;//ַţֲֶӦΨһַ App.Para.BLPara.LoraFreq = CH0; - LocalMAC[0] = LocalType & 0xFF; //本机MAC地址 + LocalMAC[0] = LocalType & 0xFF; //MACַ LocalMAC[1] = (LocalType >> 8) & 0xFF; LocalMAC[2] = CommWay; LocalMAC[3] = (AddNumber >> 16) & 0xFF; @@ -104,7 +104,7 @@ static void AppInit(void) if(App.Para.FactoryFlag != 0x00) { App.Para.FactoryFlag = 0x00; - /*校准参数初始化*/ + /*У׼ʼ*/ App.Para.CaliPara.PitchZero = 0; App.Para.CaliPara.RollZero = 0; App.Para.CaliPara.YawZero = 0; @@ -137,7 +137,7 @@ static void AppInit(void) if(App.Para.BLPara.LoraFreq < 410000000 || App.Para.BLPara.LoraFreq > 525000000) App.Para.BLPara.LoraFreq = CH0; App.Para.Lora.FreqCent = App.Para.BLPara.LoraFreq; - SX1276LoRaWriteFreq(App.Para.Lora.FreqCent); //Lora频率:433100000ul + 200000*N + SX1276LoRaWriteFreq(App.Para.Lora.FreqCent); //LoraƵ:433100000ul + 200000*N if(App.Para.Rs485Ch1.Addr > 16 || App.Para.Rs485Ch1.Addr < 1){ App.Para.Rs485Ch1.Addr = 1; @@ -159,10 +159,10 @@ static void AppInit(void) } SAVE_APP_PARA((uint32_t *)&App.Para); - LpUart0Init(App.Para.Rs485Ch1.BaudRate);//低功耗串口初始化 + LpUart0Init(App.Para.Rs485Ch1.BaudRate);//͹Ĵڳʼ LORAIntEnable(); - LoraInit(); //< LORA芯片初始化 + LoraInit(); //< LORAоƬʼ FeedDog(); Lsm6dslInit(); @@ -173,7 +173,7 @@ static void AppInit(void) LPTimer0_OFF(); - uint32_t seed = 0;//< 随机数初始化 + uint32_t seed = 0;//< ʼ seed = seed + LocalMAC[2]; seed = (seed << 8) + LocalMAC[3]; seed = (seed << 8) + LocalMAC[4]; @@ -194,7 +194,7 @@ static void AppInit(void) App.LoginFlag = false; App.Login_RTC = false; App.Login_LPTimer0 = true; - //LPTimer0_ON((App.Nonce % 1200) + 300);//定时30s+随机2分钟,最小间隙100ms + //LPTimer0_ON((App.Nonce % 1200) + 300);//ʱ30s+2ӣС϶100ms LPTimer0_ON(50); MAIN_DBG_LOG("Login LPTimer0 Open\r\n"); @@ -282,7 +282,7 @@ static void ReadDataLoopHandler(void) RollDiff = App.ConvertedData.Roll - App.Para.CaliPara.RollZero; if((PitchDiff > ERINTERVAL_VPT) || (RollDiff > ERINTERVAL_VPT)) { - //触发紧急上报 + //ϱ App.ERFlag = true; DATA_DBG_LOG("PitchDiff=%04d, PitchDiff=%04d\r\n", PitchDiff,RollDiff); DATA_DBG_LOG("Start emergency reporting!\r\n"); @@ -300,7 +300,7 @@ static void ReadDataLoopHandler(void) SGCP.DevData.LaserTracing.MasterDev.BatLevel = 0x00; #endif #if (SGCP_SELECT == 1 || SGCP_SELECT == 2) - SX1276LoCalcRssiSnr(&SGCP.DevData.LaserTracing.MasterDev.RSSI, &SGCP.DevData.LaserTracing.MasterDev.Nsr);//获取信号强度 + SX1276LoCalcRssiSnr(&SGCP.DevData.LaserTracing.MasterDev.RSSI, &SGCP.DevData.LaserTracing.MasterDev.Nsr);//ȡźǿ #else SGCP.DevData.LaserTracing.MasterDev.RSSI = 0x00; SGCP.DevData.LaserTracing.MasterDev.Nsr = 0x00; @@ -308,7 +308,7 @@ static void ReadDataLoopHandler(void) memcpy(LocalDataPack, &SGCP.DevData.LaserTracing, sizeof(LocalDataPack)); DATA_DBG_LOG("<------------ Sensor Data Upda End ------------> \r\n"); - //App.RDStatus = READDATA_STATUS_UPDAING;//持续工作 + //App.RDStatus = READDATA_STATUS_UPDAING;// App.RDStatus = READDATA_STATUS_IDLE; App.UpdateOk = true; break;} @@ -333,7 +333,7 @@ static void AppLoopHandler(void) case APP_STATUS_ON:{ if(App.TD1mSDelayCnt <= 0){ - App.TD1mSDelayCnt = 1000;//唤醒后待机时间 + App.TD1mSDelayCnt = 300;//Ѻʱ App.Status = APP_STATUS_ACTION; } break;} @@ -348,15 +348,15 @@ static void AppLoopHandler(void) if(SGCP.InStatus != IN_STATUS_IDLE){ break; } - else if(SGCP.LoginOk == false && App.LoginFlag == true && SGCP.GWStatus == GW_STATUS_IDLE)//设备注册 + else if(SGCP.LoginOk == false && App.LoginFlag == true && SGCP.GWStatus == GW_STATUS_IDLE)//豸ע { PrintfMess(); App.LoginFlag = false; - LPTimer0_OFF();//关闭低功耗定时器 - SGCP.GWStatus = GW_STATUS_LOGIN;//注册 + LPTimer0_OFF();//رյ͹Ķʱ + SGCP.GWStatus = GW_STATUS_LOGIN;//ע App.Status = APP_STATUS_WAIT_LOGIN; } - else if(SGCP.TimingAcquisition == true && App.RDStatus == READDATA_STATUS_IDLE)//设备数据获取 + else if(SGCP.TimingAcquisition == true && App.RDStatus == READDATA_STATUS_IDLE)//豸ݻȡ { PrintfMess(); SGCP.TimingAcquisition = false; @@ -368,8 +368,8 @@ static void AppLoopHandler(void) { PrintfMess(); App.UploadFlag = false; - LPTimer0_OFF();//关闭低功耗定时器 - SGCP.GWStatus = GW_STATUS_UPLOAD_SENSOR;//上传 + LPTimer0_OFF();//رյ͹Ķʱ + SGCP.GWStatus = GW_STATUS_UPLOAD_SENSOR;//ϴ App.Status = APP_STATUS_WAIT_UPLOAD; } else if(App.RDStatus == READDATA_STATUS_IDLE @@ -380,7 +380,7 @@ static void AppLoopHandler(void) && App.ReadData1mSDelayCnt == 0 && SGCP.LaserOnOff == false) { - //App.Status = APP_STATUS_ACTION;//持续工作 + //App.Status = APP_STATUS_ACTION;// App.Status = APP_STATUS_OFF; } break;} @@ -398,14 +398,14 @@ static void AppLoopHandler(void) MAIN_DBG_LOG("Login RTC Open\r\n"); App.Login2Min30SCount = 0; App.Login30MinCount = 0; - App.Login_RTC = true;//启动30分注册定时器 + App.Login_RTC = true;//30עᶨʱ } else { PrintfMess(); App.Login_LPTimer0 = true; - LPTimer0_ON((App.Nonce % 1200) + 300);//定时30s+随机2分钟,最小间隙100ms - //LPTimer0_ON(100);//定时10s + LPTimer0_ON((App.Nonce % 1200) + 300);//ʱ30s+2ӣС϶100ms + //LPTimer0_ON(100);//ʱ10s MAIN_DBG_LOG("Number of registration failures:%d\r\n",App.Login2Min30SCount); MAIN_DBG_LOG("Login LPTimer0 Open\r\n"); } @@ -430,23 +430,21 @@ static void AppLoopHandler(void) if(SGCP.UploadOk == false) { App.Upload45S10SCount++; - if((App.Upload45S10SCount%3) == 0) + if(App.Upload45S10SCount >= 3) { PrintfMess(); MAIN_DBG_LOG("Number of failed uploads:%d\r\n",App.Upload45S10SCount); - if(App.Upload45S10SCount >= 9) - { - MAIN_DBG_LOG("Resend registration information.\r\n"); - SGCP.LoginOk = false; - App.LoginFlag = true; - } + MAIN_DBG_LOG("Resend registration information.\r\n"); + App.Upload45S10SCount = 0; + SGCP.LoginOk = false; + App.LoginFlag = true; } else { PrintfMess(); App.Upload_LPTimer0 = true; - LPTimer0_ON((App.Nonce % 100) + 45);//随机延时100~10000ms+45秒后重新发送 - //LPTimer0_ON(100);//定时10s + LPTimer0_ON((App.Nonce % 100) + 450);//ʱ100~10000ms+45· + //LPTimer0_ON(100);//ʱ10s MAIN_DBG_LOG("Number of failed uploads:%d\r\n",App.Upload45S10SCount); MAIN_DBG_LOG("Upload LPTimer0 Open\r\n"); } @@ -482,7 +480,7 @@ void FeedDogHandler(void) void SystemResetHandler(void) { - //系统定时重启 + //ϵͳʱ if(App.SysResetTimeCnt > SYSTEM_TIMING_LOGIN) { delay_ms(5); SystemReset(); @@ -502,7 +500,7 @@ void SystemResetHandler(void) int32_t main(void) { BspInit(); - delay_ms(3000);//上电延时,等待从设备启动 + delay_ms(3000);//ϵʱȴ豸 AppInit(); DBG_LOG("\r\n\r\n"); @@ -535,7 +533,7 @@ int32_t main(void) } } /******************************************************************************* - * 中断回调函数 + * жϻص ******************************************************************************/ void SysTick_CallBack(void) { @@ -548,19 +546,19 @@ void SysTick_CallBack(void) void RtcIRQHander(void) { - //SGCP.TimingAcquisition = true; //30S更新一次数据 + //SGCP.TimingAcquisition = true; //30Sһ if(SGCP.LoginOk == true) { App.RepeLoginCount++; if(App.RepeLoginCount >= SYSTEM_TIMING_LOGIN){ MAIN_DBG_LOG("24h Repetition Login\r\n"); App.RepeLoginCount = 0; - SGCP.LoginOk = false;//24h重复注册 + SGCP.LoginOk = false;//24hظע App.Login2Min30SCount = 0; App.Login30MinCount = 0; - App.Login_RTC = false;//关闭30分注册定时器 + App.Login_RTC = false;//ر30עᶨʱ - LPTimer0_ON((App.Nonce % 1200) + 300);//定时30s+随机2分钟,最小间隙100ms + LPTimer0_ON((App.Nonce % 1200) + 300);//ʱ30s+2ӣС϶100ms MAIN_DBG_LOG("Login LPTimer0 Open\r\n"); } @@ -568,7 +566,7 @@ void RtcIRQHander(void) if(App.Coll_N >= App.Para.Layout.CollectTime) { App.Coll_N = 0; - SGCP.TimingAcquisition = true; //定时更新数据 + SGCP.TimingAcquisition = true; //ʱ } if(App.ERFlag == true) @@ -584,7 +582,7 @@ void RtcIRQHander(void) { App.ERTime_N = 0; App.ERFlag = false; - SGCP.MasterCaliOk = true;//紧急上报时间结束,重新校准参数 + SGCP.MasterCaliOk = true;//ϱʱУ׼ } } else{ @@ -600,16 +598,16 @@ void RtcIRQHander(void) if(App.Login_RTC == true) { App.Login30MinCount++; - if(App.Login30MinCount >= ERR_TIMING_LOGIN)//30分钟重置注册错误信息 + if(App.Login30MinCount >= ERR_TIMING_LOGIN)//30עϢ { PrintfMess(); App.Login30MinCount = 0; - App.Login_RTC = false;//关闭30分注册定时器 + App.Login_RTC = false;//ر30עᶨʱ MAIN_DBG_LOG("Login RTC Close\r\n"); App.Login_LPTimer0 = true; - LPTimer0_ON((App.Nonce % 1200) + 300);//定时30s+随机2分钟,最小间隙100ms - //LPTimer0_ON(100);//定时10s + LPTimer0_ON((App.Nonce % 1200) + 300);//ʱ30s+2ӣС϶100ms + //LPTimer0_ON(100);//ʱ10s MAIN_DBG_LOG("Login LPTimer0 Open\r\n"); } }