|
@@ -3,7 +3,7 @@
|
|
|
* @Date : 2021-10-14 09:27:15
|
|
|
* @Version : V3.0
|
|
|
* @LastEditors : ChenJie
|
|
|
- * @LastEditTime : 2021-10-26 14:54:49
|
|
|
+ * @LastEditTime : 2021-10-29 18:17:47
|
|
|
* @Description : 应用层函数定义区,UTF-8
|
|
|
* @FilePath : \PLAT\project\ec616_0h00\apps\qx_app\src\AppFunc.c
|
|
|
*/
|
|
@@ -433,25 +433,26 @@ BOOL BattHeaterSwitch(UINT8 *heaterSwitch, UINT8 HeatForceControl)
|
|
|
* @param {float} DutyRatio
|
|
|
* @return {*}
|
|
|
*/
|
|
|
-void relayControlFunc(UINT8 BuzzerPeriod, float DutyRatio)
|
|
|
+void relayControlFunc(UINT16 BuzzerPeriod, float DutyRatio)
|
|
|
{
|
|
|
|
|
|
- static UINT8 BuzzerTimer = 0;
|
|
|
- BuzzerTimer++;
|
|
|
-
|
|
|
- if (BuzzerTimer < (UINT8)(BuzzerPeriod * DutyRatio))
|
|
|
+ static UINT16 BuzzerTimer = 0;
|
|
|
+ if (BuzzerTimer < (UINT16)(BuzzerPeriod * DutyRatio))
|
|
|
{
|
|
|
relayControl(TRUE);
|
|
|
}
|
|
|
- else if (BuzzerTimer >= (UINT8)(BuzzerPeriod * DutyRatio) && BuzzerTimer < BuzzerPeriod)
|
|
|
+ else
|
|
|
{
|
|
|
relayControl(FALSE);
|
|
|
}
|
|
|
- else
|
|
|
+ if (BuzzerTimer > BuzzerPeriod)
|
|
|
{
|
|
|
- relayControl(FALSE);
|
|
|
BuzzerTimer = 0;
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ BuzzerTimer = BuzzerTimer + 100;
|
|
|
+ }
|
|
|
}
|
|
|
/**
|
|
|
* @brief : LED控制函数,根据不同状态进行LED显示
|
|
@@ -462,20 +463,23 @@ void LEDDisplay(void)
|
|
|
{
|
|
|
UINT8 LedBattSoc = 0;
|
|
|
LedBattSoc = socd_pct_bcuSoc / 10;
|
|
|
- static UINT8 currentState = 0;
|
|
|
- static UINT8 LightTimer = 0;
|
|
|
- static UINT8 ErrorLightTimer = 0;
|
|
|
+ static UINT16 LightTimer = 0;
|
|
|
+ static UINT16 ErrorLightTimer = 0;
|
|
|
+
|
|
|
+ UINT16 LEDFlashPeriod = 1000; //1000ms
|
|
|
+ float DutyRatio = 0.5;
|
|
|
+ if (battWorkState == 2)
|
|
|
+ {
|
|
|
+ LEDFlashPeriod = 100 * (LedBattSoc / 10 + 1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LEDFlashPeriod = 1000;
|
|
|
+ }
|
|
|
|
|
|
- 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))
|
|
|
+ if (LightTimer < (UINT16)(LEDFlashPeriod * DutyRatio))
|
|
|
{
|
|
|
NetSocDisplay(LED_SOC_0, LED_TURN_ON);
|
|
|
NetSocDisplay(LED_SOC_1, LED_TURN_ON);
|
|
@@ -483,14 +487,6 @@ void LEDDisplay(void)
|
|
|
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);
|
|
@@ -498,20 +494,13 @@ void LEDDisplay(void)
|
|
|
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 (UartErrorFlag == 1) //电池未收到UART信息,出现Uart故障
|
|
|
+ if (UartErrorFlag == 1) //电池未收到UART信息,出现Uart故障
|
|
|
{
|
|
|
- if (LightTimer < (UINT8)(LEDFlashPeriod * DutyRatio))
|
|
|
+ if (LightTimer < (UINT16)(LEDFlashPeriod * DutyRatio))
|
|
|
{
|
|
|
NetSocDisplay(LED_SOC_0, LED_TURN_ON);
|
|
|
NetSocDisplay(LED_SOC_1, LED_TURN_OFF);
|
|
@@ -519,14 +508,6 @@ void LEDDisplay(void)
|
|
|
NetSocDisplay(LED_SOC_3, LED_TURN_OFF);
|
|
|
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);
|
|
@@ -534,9 +515,7 @@ void LEDDisplay(void)
|
|
|
NetSocDisplay(LED_SOC_2, LED_TURN_OFF);
|
|
|
NetSocDisplay(LED_SOC_3, LED_TURN_OFF);
|
|
|
FaultDisplay(LED_TURN_OFF);
|
|
|
- LightTimer = 0;
|
|
|
}
|
|
|
- return;
|
|
|
}
|
|
|
else if (UartRecvFlag == 1) //电池接收到UART信息,且正确运行
|
|
|
{
|
|
@@ -546,203 +525,172 @@ void LEDDisplay(void)
|
|
|
NetSocDisplay(LED_SOC_1, LED_TURN_OFF);
|
|
|
NetSocDisplay(LED_SOC_2, LED_TURN_OFF);
|
|
|
NetSocDisplay(LED_SOC_3, LED_TURN_OFF);
|
|
|
- if (ErrorLightTimer < (UINT8)(LEDFlashPeriod * DutyRatio))
|
|
|
+ if (ErrorLightTimer < (UINT16)(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;
|
|
|
}
|
|
|
- return;
|
|
|
- }
|
|
|
- else if (getbit(sfmd_st_fltAct, 1) == 1) //通过下线检测,有故障亮红灯
|
|
|
- {
|
|
|
- FaultDisplay(LED_TURN_ON);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- FaultDisplay(LED_TURN_OFF);
|
|
|
- }
|
|
|
- if (battWorkState == 0 || battWorkState == 1) //静置或放电状态
|
|
|
- {
|
|
|
- if (LedBattSoc <= 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;
|
|
|
- }
|
|
|
- }
|
|
|
- else if (LedBattSoc > 10 && LedBattSoc <= 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 (LedBattSoc > 25 && LedBattSoc <= 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 (LedBattSoc > 50 && LedBattSoc <= 75)
|
|
|
+ if (getbit(sfmd_st_fltAct, 1) == 1) //通过下线检测,有故障亮红灯
|
|
|
{
|
|
|
- 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;
|
|
|
+ FaultDisplay(LED_TURN_ON);
|
|
|
}
|
|
|
- else if (LedBattSoc > 75 && LedBattSoc <= 100)
|
|
|
+ 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_ON);
|
|
|
- LightTimer = 0;
|
|
|
+ FaultDisplay(LED_TURN_OFF);
|
|
|
}
|
|
|
- }
|
|
|
- else if (battWorkState == 2)
|
|
|
- {
|
|
|
- if (LedBattSoc <= 25)
|
|
|
+ if (battWorkState == 0 || battWorkState == 1) //静置或放电状态
|
|
|
{
|
|
|
- if (LightTimer < (UINT8)(LEDFlashPeriod * DutyRatio))
|
|
|
+ if (LedBattSoc <= 10)
|
|
|
{
|
|
|
- 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);
|
|
|
+ if (LightTimer < (UINT16)(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
|
|
|
+ {
|
|
|
+ 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
|
|
|
+ else if (LedBattSoc > 10 && LedBattSoc <= 25)
|
|
|
{
|
|
|
- NetSocDisplay(LED_SOC_0, LED_TURN_OFF);
|
|
|
+ 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 (LedBattSoc > 25 && LedBattSoc <= 50)
|
|
|
- {
|
|
|
- if (LightTimer < (UINT8)(LEDFlashPeriod * DutyRatio))
|
|
|
+ else if (LedBattSoc > 25 && LedBattSoc <= 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);
|
|
|
}
|
|
|
- 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
|
|
|
+ else if (LedBattSoc > 50 && LedBattSoc <= 75)
|
|
|
{
|
|
|
NetSocDisplay(LED_SOC_0, LED_TURN_ON);
|
|
|
- NetSocDisplay(LED_SOC_1, LED_TURN_OFF);
|
|
|
- NetSocDisplay(LED_SOC_2, LED_TURN_OFF);
|
|
|
+ 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 (LedBattSoc > 50 && LedBattSoc <= 75)
|
|
|
- {
|
|
|
- if (LightTimer < (UINT8)(LEDFlashPeriod * DutyRatio))
|
|
|
+ else if (LedBattSoc > 75 && LedBattSoc <= 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_OFF);
|
|
|
+ NetSocDisplay(LED_SOC_3, LED_TURN_ON);
|
|
|
}
|
|
|
- else if (LightTimer >= (UINT8)(LEDFlashPeriod * DutyRatio) && LightTimer < LEDFlashPeriod)
|
|
|
+ }
|
|
|
+ else if (battWorkState == 2)
|
|
|
+ {
|
|
|
+ if (LedBattSoc <= 25)
|
|
|
{
|
|
|
- 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);
|
|
|
+ if (LightTimer < (UINT16)(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
|
|
|
+ {
|
|
|
+ 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
|
|
|
+ else if (LedBattSoc > 25 && LedBattSoc <= 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;
|
|
|
+ if (LightTimer < (UINT16)(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
|
|
|
+ {
|
|
|
+ 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 (LedBattSoc > 75 && LedBattSoc <= 97)
|
|
|
- {
|
|
|
- if (LightTimer < (UINT8)(LEDFlashPeriod * DutyRatio))
|
|
|
+ else if (LedBattSoc > 50 && LedBattSoc <= 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_ON);
|
|
|
+ if (LightTimer < (UINT16)(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
|
|
|
+ {
|
|
|
+ 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)
|
|
|
+ else if (LedBattSoc > 75 && LedBattSoc <= 97)
|
|
|
{
|
|
|
- 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);
|
|
|
+ if (LightTimer < (UINT16)(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
|
|
|
+ {
|
|
|
+ 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
|
|
|
+ else if (LedBattSoc > 97 && LedBattSoc <= 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_OFF);
|
|
|
- LightTimer = 0;
|
|
|
+ NetSocDisplay(LED_SOC_3, LED_TURN_ON);
|
|
|
}
|
|
|
}
|
|
|
- else if (LedBattSoc > 97 && LedBattSoc <= 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);
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if (LightTimer > LEDFlashPeriod)
|
|
|
+ {
|
|
|
+ LightTimer = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LightTimer = LightTimer + 100;
|
|
|
+ }
|
|
|
+ if (ErrorLightTimer > LEDFlashPeriod)
|
|
|
+ {
|
|
|
+ ErrorLightTimer = 0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ErrorLightTimer = ErrorLightTimer + 100;
|
|
|
+ }
|
|
|
+ return;
|
|
|
}
|
|
|
/**
|
|
|
* @brief : 串口数据解码函数
|
|
@@ -2455,7 +2403,7 @@ void UDS_Service(CAN_Msg_Type *CanRxMsg)
|
|
|
UDSNegtiveAnswer(0x06, i, UDSSubServiceActionCode[i] << 8 | 0xFF); //重点测试
|
|
|
}
|
|
|
}
|
|
|
- else if (UDSSubService[i] == 0x10) //control the heater 31 10 00/01/02
|
|
|
+ else if (UDSSubService[i] == 0x11) //control the heater 31 10 00/01/02
|
|
|
{
|
|
|
if (UDSSubServiceActionCode[i] <= 0x02) //case 00/01/02
|
|
|
{
|
|
@@ -2467,7 +2415,7 @@ void UDS_Service(CAN_Msg_Type *CanRxMsg)
|
|
|
UDSNegtiveAnswer(0x05, i, UDSSubServiceActionCode[i]);
|
|
|
}
|
|
|
}
|
|
|
- else if (UDSSubService[i] == 0x11) //control the main relay 31 11 00/01/02
|
|
|
+ else if (UDSSubService[i] == 0x10) //control the main relay 31 11 00/01/02
|
|
|
{
|
|
|
if (UDSSubServiceActionCode[i] <= 0x02) //case 00/01/02
|
|
|
{
|