|
@@ -8,7 +8,484 @@
|
|
|
****************************************************************************/
|
|
|
#include "AppFunc.h"
|
|
|
#include "numeric.h"
|
|
|
+#include "hal_module_adapter.h"
|
|
|
|
|
|
+
|
|
|
+void battSOCDisplay()
|
|
|
+{
|
|
|
+
|
|
|
+ static UINT8 lightTimer = 0;
|
|
|
+ UINT8 socLowLEDFlashPeriod = 10;//10*100 = 1000ms
|
|
|
+ UINT8 chargeLEDFlashPeriod = 6;//6*100 = 600ms
|
|
|
+ float dutyRatio = 0.4;
|
|
|
+
|
|
|
+ if(UartRecvFlag == true)
|
|
|
+ {
|
|
|
+ lightTimer++;
|
|
|
+
|
|
|
+ if(battWorkState == 0||battWorkState == 1) //静置或放电状态
|
|
|
+ {
|
|
|
+ if(battSOC<=10)
|
|
|
+ {
|
|
|
+ if(lightTimer<(UINT8)(socLowLEDFlashPeriod*dutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else if(lightTimer>=(UINT8)(socLowLEDFlashPeriod*dutyRatio) && lightTimer<socLowLEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ lightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(battSOC>10&&battSOC<=25)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ lightTimer = 0;
|
|
|
+ }
|
|
|
+ else if(battSOC>25&&battSOC<=50)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ lightTimer = 0;
|
|
|
+ }
|
|
|
+ else if(battSOC>50&&battSOC<=75)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ lightTimer = 0;
|
|
|
+ }
|
|
|
+ else if(battSOC>75&&battSOC<=100)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
+ lightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(battWorkState == 2)
|
|
|
+ {
|
|
|
+ if(battSOC<=25)
|
|
|
+ {
|
|
|
+ if(lightTimer<(UINT8)(chargeLEDFlashPeriod*dutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else if(lightTimer>=(UINT8)(chargeLEDFlashPeriod*dutyRatio) && lightTimer<chargeLEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ lightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(battSOC>25&&battSOC<=50)
|
|
|
+ {
|
|
|
+ if(lightTimer<(UINT8)(chargeLEDFlashPeriod*dutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else if(lightTimer>=(UINT8)(chargeLEDFlashPeriod*dutyRatio) && lightTimer<chargeLEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ lightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(battSOC>50&&battSOC<=75)
|
|
|
+ {
|
|
|
+ if(lightTimer<(UINT8)(chargeLEDFlashPeriod*dutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else if(lightTimer>=(UINT8)(chargeLEDFlashPeriod*dutyRatio) && lightTimer<chargeLEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ lightTimer = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else if(battSOC>75&&battSOC<=97)
|
|
|
+ {
|
|
|
+ if(lightTimer<(UINT8)(chargeLEDFlashPeriod*dutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
+ }
|
|
|
+ else if(lightTimer>=(UINT8)(chargeLEDFlashPeriod*dutyRatio) && lightTimer<chargeLEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ lightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(battSOC>97&&battSOC<=100)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+/***********************************************************************************************************************
|
|
|
+ * LED控制函数
|
|
|
+ * 输入:运行状态
|
|
|
+ * 输出:LED控制
|
|
|
+ * 处理:根据不同状态进行LED显示
|
|
|
+***********************************************************************************************************************/
|
|
|
+void LEDDisplay(void)
|
|
|
+{
|
|
|
+ static UINT8 currentState = 0;
|
|
|
+ static UINT8 LightTimer = 0;
|
|
|
+ static UINT8 ErrorLightTimer = 0;
|
|
|
+
|
|
|
+ UINT8 LEDFlashPeriod = 10;//1000ms
|
|
|
+ float DutyRatio = 0.4;
|
|
|
+ LightTimer++;
|
|
|
+ ErrorLightTimer++;
|
|
|
+ #ifdef USING_PRINTF1
|
|
|
+ printf("[%d]-%d-%d-%d\n",__LINE__,LightTimer,ErrorLightTimer,battSOC);
|
|
|
+ #endif
|
|
|
+ if(AppDataInfo.BattLock==TRUE)//电池整处于锁定状态
|
|
|
+ {
|
|
|
+ if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
+ FaultDisplay(LED_TURN_ON);
|
|
|
+
|
|
|
+ }
|
|
|
+ else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ FaultDisplay(LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ FaultDisplay(LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else //电池未处于锁定状态
|
|
|
+ {
|
|
|
+ if(currentState!=AppDataInfo.BattLock)
|
|
|
+ {
|
|
|
+ currentState = AppDataInfo.BattLock;
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ else if(UartRecvFlag==0) //电池未收到UART信息
|
|
|
+ {
|
|
|
+ if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ FaultDisplay(LED_TURN_ON);
|
|
|
+ }
|
|
|
+ else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ FaultDisplay(LED_TURN_OFF);
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ FaultDisplay(LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ #ifdef USING_PRINTF
|
|
|
+ printf("[%d]",__LINE__);
|
|
|
+ #endif
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else if(UartRecvFlag==1) //电池接收到UART信息,且正确运行
|
|
|
+ {
|
|
|
+ if(battWarningState != 0)
|
|
|
+ {
|
|
|
+ if(ErrorLightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
+ {
|
|
|
+
|
|
|
+ FaultDisplay(LED_TURN_ON);
|
|
|
+
|
|
|
+ }
|
|
|
+ else if(ErrorLightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && ErrorLightTimer<LEDFlashPeriod)
|
|
|
+ {
|
|
|
+
|
|
|
+ FaultDisplay(LED_TURN_OFF);
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ FaultDisplay(LED_TURN_OFF);
|
|
|
+ ErrorLightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ FaultDisplay(LED_TURN_OFF);
|
|
|
+ ErrorLightTimer = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(battWorkState == 0||battWorkState == 1) //静置或放电状态
|
|
|
+ {
|
|
|
+ if(battSOC<=10)
|
|
|
+ {
|
|
|
+ if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ #ifdef USING_PRINTF
|
|
|
+ printf("[%d]",__LINE__);
|
|
|
+ #endif
|
|
|
+ }
|
|
|
+ else if(battSOC>10&&battSOC<=25)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ else if(battSOC>25&&battSOC<=50)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ else if(battSOC>50&&battSOC<=75)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ else if(battSOC>75&&battSOC<=100)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(battWorkState == 2)
|
|
|
+ {
|
|
|
+ if(battSOC<=25)
|
|
|
+ {
|
|
|
+ if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ #ifdef USING_PRINTF
|
|
|
+ printf("[%d]",__LINE__);
|
|
|
+ #endif
|
|
|
+ }
|
|
|
+ else if(battSOC>25&&battSOC<=50)
|
|
|
+ {
|
|
|
+ if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(battSOC>50&&battSOC<=75)
|
|
|
+ {
|
|
|
+ if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else if(battSOC>75&&battSOC<=97)
|
|
|
+ {
|
|
|
+ if(LightTimer<(UINT8)(LEDFlashPeriod*DutyRatio))
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
+ }
|
|
|
+ else if(LightTimer>=(UINT8)(LEDFlashPeriod*DutyRatio) && LightTimer<LEDFlashPeriod)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_OFF);
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(battSOC>97&&battSOC<=100)
|
|
|
+ {
|
|
|
+ NetSocDisplay(LED_SOC_0,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_1,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_2,LED_TURN_ON);
|
|
|
+ NetSocDisplay(LED_SOC_3,LED_TURN_ON);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
/***********************************************************************************************************************
|
|
|
* Uart数据解码函数
|
|
|
* 输入:数据指针
|