Commit fa1bbec1 authored by 李冠华's avatar 李冠华

🦄 refactor:将刀盘挡位功能数据处理逻辑从显示逻辑中独立出来

parent f999a532
...@@ -508,6 +508,16 @@ ...@@ -508,6 +508,16 @@
<FileType>5</FileType> <FileType>5</FileType>
<FilePath>..\..\..\..\Source\Application\Driving_Information\Data_Time.h</FilePath> <FilePath>..\..\..\..\Source\Application\Driving_Information\Data_Time.h</FilePath>
</File> </File>
<File>
<FileName>Data_Gear.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Application\Driving_Information\Data_Gear.c</FilePath>
</File>
<File>
<FileName>Data_Gear.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Application\Driving_Information\Data_Gear.h</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include "Data_Soc\Data_Soc.h" #include "Data_Soc\Data_Soc.h"
#include "Data_Fuel\Data_Fuel.h" #include "Data_Fuel\Data_Fuel.h"
#include "Driving_Information\Data_Time.h" #include "Driving_Information\Data_Time.h"
#include "Driving_Information\Data_Gear.h"
#endif #endif
#include "Components.h"
#include "Driving_Information\Data_Gear.h"
GearStruct_st_t Gear;
void Data_Gear_KL30_Init(void)
{
Gear.CutterHeadNum = 0U;
Gear.CutterheadValid = 0U;
Gear.GearNum = 0U;
}
void Data_Gear_KL15_Init(void)
{
}
void Data_Gear_Cutterhead_Service(void)
{
uint8_t Signal1 = Get_CAN_Num_BMCU_BladeSpeedGear();
uint8_t Signal2 = Get_CAN_Num_BMCU_ErrorGrage();
// uint8_t MBMS_StatBattWorkState = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState();
if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (Get_CAN_Power_State() >= KEY_ACC) && (Get_CAN_Power_State() < CHRGEND) && (System_Indicator_CANFlag != 1))
{
if ((Signal1 > 0U) && (Signal1 <= 3U))
{
Gear.CutterHeadNum = Signal1;
}
else
{
Gear.CutterHeadNum = 0U;
}
if ((Signal2 == 0x1) || (Signal2 == 0x2) || (Signal2 == 0x3) || (Signal2 == 0x4))
{
Gear.CutterheadValid = 0x2U;
}
else
{
Gear.CutterheadValid = 0x1U;
}
}
else
{
Gear.CutterheadValid = 0x0U;
Gear.CutterHeadNum = 0U;
}
}
void Data_Gear_Service(void)
{
}
/******************************************************************************
函数名:Get_Gear_Cutterhead_Value
功 能:获取刀盘挡位数函数
参 数:无
返回值:Gear.CutterHeadNum;
******************************************************************************
注 意:该函数必须每 ms被调用一次
******************************************************************************/
uint8_t Get_Gear_Cutterhead_Value(void)
{
return Gear.CutterHeadNum;
}
/******************************************************************************
函数名:Get_Gear_Cutterhead_Valid
功 能:获取刀盘挡位状态函数
参 数:无
返回值:Gear.CutterheadValid 0--不显示,1--常显,2--闪烁
******************************************************************************
注 意:该函数必须每 ms被调用一次
******************************************************************************/
uint8_t Get_Gear_Cutterhead_Valid(void)
{
return Gear.CutterheadValid;
}
#ifndef DATA_GEAR_H__
#define DATA_GEAR_H__
#include "Application.h"
#include "Components.h"
typedef struct //__attribute__((aligned(4)))
{
uint8_t CutterHeadNum; //燃油格数
uint8_t CutterheadValid; //燃油有效状态
uint8_t GearNum; /*燃油状态计数*/
}GearStruct_st_t;
extern void Data_Gear_KL30_Init(void);
extern void Data_Gear_KL15_Init(void);
extern void Data_Gear_Cutterhead_Service(void);
extern void Data_Gear_Service(void);
extern uint8_t Get_Gear_Cutterhead_Value(void);
extern uint8_t Get_Gear_Cutterhead_Valid(void);
#endif
...@@ -53,34 +53,42 @@ void Gauge_Power_SOC_pull_Display(void) ...@@ -53,34 +53,42 @@ void Gauge_Power_SOC_pull_Display(void)
void Gauge_Cutterhead_Gear_Display(void) void Gauge_Cutterhead_Gear_Display(void)
{ {
uint8_t Signal1 = Get_CAN_Num_BMCU_BladeSpeedGear(); uint8_t CutterheadValue = Get_Gear_Cutterhead_Value();
uint8_t Signal2 = Get_CAN_Num_BMCU_ErrorGrage(); uint8_t CutterheadValid = Get_Gear_Cutterhead_Valid();
// uint8_t MBMS_StatBattWorkState = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState(); // uint8_t MBMS_StatBattWorkState = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState();
if ((Common_Get_IG_Sts() == COMMON_POWER_ON) && (Charge_OFF_Flag == 0) && (System_Indicator_CANFlag != 1))
if (CutterheadValid == 2U)
{ {
if ((Signal2 == 0x1) || (Signal2 == 0x2) || (Signal2 == 0x3) || (Signal2 == 0x4)) if (CutterheadValue > 0U)
{ {
if (FLASH_SYNC_1Hz) if (FLASH_SYNC_1Hz)
{ {
SEG_SET_Cutterhead(1, Signal1, 0); SEG_SET_Cutterhead(1, CutterheadValue, 0);
} }
else else
{ {
SEG_SET_Cutterhead(1, 4, 0); SEG_SET_Cutterhead(1, 4, 0);
} }
} }
else if (Signal2 == 0x0) else
{ {
SEG_SET_Cutterhead(1, Signal1, 0); SEG_SET_Cutterhead(1, 4, 0);
} }
}
else if (CutterheadValid == 1U)
{
if (CutterheadValue > 0U)
{
SEG_SET_Cutterhead(1, CutterheadValue, 0);
}
else else
{ {
SEG_SET_Cutterhead(0, Signal1, 0); SEG_SET_Cutterhead(1, 4, 0);
} }
} }
else else
{ {
SEG_SET_Cutterhead(0, Signal1, 0); SEG_SET_Cutterhead(0, 0, 0);
} }
} }
......
...@@ -72,6 +72,7 @@ static void Power_KL30_Init(void) ...@@ -72,6 +72,7 @@ static void Power_KL30_Init(void)
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN,Trigger_Rising); RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN,Trigger_Rising);
Data_Soc_KL30_Init(); Data_Soc_KL30_Init();
Data_Time_KL30_Init(); Data_Time_KL30_Init();
Data_Gear_KL30_Init();
} }
extern uint32_t PowerIgnOffTimeLine; extern uint32_t PowerIgnOffTimeLine;
......
...@@ -680,22 +680,20 @@ static void LED_Tire_pressure_R_Execution(Tellib_uint16_t led_status) ...@@ -680,22 +680,20 @@ static void LED_Tire_pressure_R_Execution(Tellib_uint16_t led_status)
static Tellib_uint16_t LED_Cutterhead_Gear_Judgement(void) static Tellib_uint16_t LED_Cutterhead_Gear_Judgement(void)
{ {
Tellib_uint16_t LED_STATE = 0u; Tellib_uint16_t LED_STATE = 0u;
Tellib_uint8_t Signal1 = Get_CAN_Num_BMCU_BladeSpeedGear(); Tellib_uint8_t CutterheadValid = Get_Gear_Cutterhead_Valid();
Tellib_uint8_t Signal2 = Get_CAN_Num_BMCU_ErrorGrage();
if (((Signal2 == 0x1) || (Signal2 == 0x2) || (Signal2 == 0x3) || (Signal2 == 0x4)) && openLED_flag) if (CutterheadValid > 0U)
{
LED_STATE = 2;
}
else if ((Signal2 == 0x0) && openLED_flag)
{ {
LED_STATE = 1; LED_STATE = 1U;
} }
else else
{ {
LED_STATE = 0; LED_STATE = 0U;
} }
return LED_STATE; return LED_STATE;
} }
static void LED_Cutterhead_Gear_Execution(Tellib_uint16_t led_status) static void LED_Cutterhead_Gear_Execution(Tellib_uint16_t led_status)
{ {
if (led_status != 0u) if (led_status != 0u)
......
...@@ -4,38 +4,40 @@ ...@@ -4,38 +4,40 @@
typedef enum typedef enum
{ {
em_LED_EFI_failure_Y = 0, em_LED_EFI_failure_Y = 0, /*电喷故障指示灯*/
em_LED_Fuel_Alarm_Y, em_LED_Fuel_Alarm_Y, /*燃油低指示灯(黄色)*/
em_LED_Lead_Acid_Battery_Failure_R, em_LED_Lead_Acid_Battery_Failure_R, /*铅酸电池故障指示灯*/
em_LED_Oil_Pressure_R, em_LED_Oil_Pressure_R, /*机油压力报警指示灯*/
em_LED_Grass_Full_R, em_LED_Grass_Full_R, /*草满指示灯*/
em_LED_OVERLOAD_R, em_LED_OVERLOAD_R, /*刀盘过载指示灯*/
em_LED_READY_G, em_LED_READY_G, /*Ready指示灯*/
em_LED_Seat_Detection_W, em_LED_Seat_Detection_W, /*座椅检测指示灯*/
em_LED_Key_Access_W, em_LED_Key_Access_W, /*钥匙接入指示灯*/
em_LED_Battery_Charging_W, em_LED_Battery_Charging_W, /*电池充电进行中指示灯*/
em_LED_Cutterhead_Switch_W, em_LED_Cutterhead_Switch_W, /*刀盘开关指示*/
em_LED_GEAR_W, em_LED_GEAR_W, /*挡位指示灯*/
em_LED_External_Discharge_W, em_LED_External_Discharge_W, /*对外放电指示灯*/
em_LED_Engine_Works_W, em_LED_Engine_Works_W, /*发动机工作指示灯*/
em_LED_Bluetooth_Connection_W, em_LED_Bluetooth_Connection_W, /*蓝牙显示*/
em_LED_LED_Open_W, em_LED_LED_Open_W, /*大灯灯光检测*/
em_LED_Cruise_Control_W, em_LED_Cruise_Control_W, /*定速巡航指示灯*/
em_LED_Tire_pressure_F_W, em_LED_Tire_pressure_F_W, /*左胎压显示*/
em_LED_Tire_pressure_R_W, em_LED_Tire_pressure_R_W, /*右胎压显示*/
em_LED_Cutterhead_Gear_W, em_LED_Cutterhead_Gear_W, /*刀盘档位指示灯*/
em_LED_Working_Hours_One_W, em_LED_Working_Hours_One_W, /*单次工作时长统计*/
em_LED_Fault_Codes_W, em_LED_Fault_Codes_W, /*故障码显示*/
em_LED_System_Indicator_R, //系统指示灯-R-AW21036-OUT
em_LED_P_GEAR_G, //空挡指示灯-G-AW21036-OUT
em_LED_Fuel_Alarm_W, //燃油报警灯-WAW21036-OUT(白色)
em_LED_Charging_Connection_R, //充电枪连接-R-AW21036-OUT
em_LED_Power_Battery_Failure_R, //动力电池故障指示灯HV-R-AW21036-OUT
em_LED_System_Indicator_R, //系统指示灯-R-AW21036-OUT
em_LED_P_GEAR_G, //空挡指示灯-G-AW21036-OUT
em_LED_Fuel_Alarm_W, //燃油报警灯-WAW21036-OUT
em_LED_Charging_Connection_R, //充电枪连接-R-AW21036-OUT
em_LED_Power_Battery_Failure_R, //动力电池故障指示灯HV-R-AW21036-OUT
LED_Max , LED_Max ,
} LED_Idx_t; } LED_Idx_t;
......
...@@ -26,6 +26,7 @@ void Sys_2ms_Tasks(void) ...@@ -26,6 +26,7 @@ void Sys_2ms_Tasks(void)
void Sys_5ms_Tasks(void) void Sys_5ms_Tasks(void)
{ {
Flash_Sync_Signal_Generation_Service(); Flash_Sync_Signal_Generation_Service();
Data_Gear_Cutterhead_Service();
} }
void Sys_10ms_Tasks(void) void Sys_10ms_Tasks(void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment