Commit ab45dc8d authored by 时昊's avatar 时昊

Merge branch 'zhengping' into 'dev'

Zhengping

See merge request !14
parents b16aedb1 97821bfa
......@@ -8,6 +8,40 @@ uint8_t SOC_Count_Time = 0;
uint8_t BUZZER_ON = 0;
uint8_t Charge_OFF_Flag = 0;
void TYW_Clear_Eeprom_Service(void)
{
uint8_t u8MBMS_StatBattChargeState = 0;
uint8_t u8MBMS_StatBattWorkState = 0;
uint8_t u8BMCU_BladeSpeedGear = 0;
uint16_t u16MMCU_AccumulatedWorkHours = 0;
if (Get_CAN_Power_State() == READY)
{
if ((CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x18203220_Msg)) == CAN_SIG_NORMAL) && (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x157_Msg)) == CAN_SIG_NORMAL) && (CAN_MSG_Status(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(CAN_CH0_ID_CAN_0x339_Msg)) == CAN_SIG_NORMAL))
{
u8MBMS_StatBattChargeState = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattChargeState();
u8MBMS_StatBattWorkState = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState();
u16MMCU_AccumulatedWorkHours = Get_CAN_CH0_ID_339_Sig_MMCU_AccumulatedWorkHours();
u8BMCU_BladeSpeedGear = Get_CAN_CH0_ID_157_Sig_BMCU_BladeSpeedGear();
if ((u8MBMS_StatBattChargeState == 0x7) && (u8MBMS_StatBattWorkState == 0xf) && (u8BMCU_BladeSpeedGear == 0x7) && (u16MMCU_AccumulatedWorkHours >= 60000))
{
g_u8TYWClearEepromFlag = 1;
}
else
{
g_u8TYWClearEepromFlag = 0;
}
}
else
{
g_u8TYWClearEepromFlag = 0;
}
}
else
{
g_u8TYWClearEepromFlag = 0;
}
}
void Gauge_Power_SOC_pull_Display(void)
{
// uint8_t MBMS_StatBattWorkState = Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState();
......@@ -314,8 +348,8 @@ void Data_CumulativeWorkHours_EEPROM_Write(void)
eeprom_ReadRecord(EEPROM_BLOCK_00, (uint8_t *)u32Data_read, 4);
u32Data[0] = u32Data_read[0] - CumulativeWorkHours_readDiffer;
eeprom_WriteRecord(EEPROM_BLOCK_00, (uint8_t *)u32Data, 4);
CumulativeWorkHours_Writeback = CurrentData;
}
CumulativeWorkHours_Writeback = CurrentData;
}
}
}
......@@ -386,25 +420,32 @@ void Gauge_Service(void)
{
if ((Get_CAN_Power_State() != PKEY_ON) && (Get_CAN_Power_State() != KEY_OFF) && (Get_CAN_Power_State() != POWER_CHECK_NULL))
{
BUZZER_Init();
interact_PWM_Low_Duty = 100;
if (Common_GetIgnOnTime() > 1500)
if (g_u8TYWClearEepromFlag >= 1)
{
SOC_charge_seg_Flag = 0;
Checkself_Init();
Gauge_CAN_setup_Service();
TYW_RESET_TIME();
}
else
{
checkself_seg_Flag = 1;
if (Get_CAN_Power_State() == KEY_ACC)
TYW_Clear_Eeprom_Service();
BUZZER_Init();
interact_PWM_Low_Duty = 100;
if (Common_GetIgnOnTime() > 1500)
{
interact_PWM_Low_Duty = 0;
SOC_charge_seg_Flag = 0;
Checkself_Init();
Gauge_CAN_setup_Service();
}
else
{
checkself_seg_Flag = 1;
if (Get_CAN_Power_State() == KEY_ACC)
{
interact_PWM_Low_Duty = 0;
}
Checkself_LED_Display();
// Checkself_SEG_Display();
Checkself_LED_Display();
// Checkself_SEG_Display();
}
}
}
else if (Get_CAN_Power_State() == PKEY_ON)
......@@ -455,7 +496,7 @@ void Gauge_Service(void)
{
LED_Driver_Channel_Set(LampChannel_0, i, LED_OFF);
}
}
}
}
void Gauge_CAN_setup_Service(void)
......@@ -581,3 +622,15 @@ void BUZZER_Init(void)
BUZZER_ON = 0;
RTE_GPIO_Set_Level(RTE_GPIO_PORT04_PIN01, RTE_GPIO_LEVEL_LOW); // OUT_EN_1
}
void TYW_RESET_TIME(void)
{
uint32_t Clear_EE[1] = {0};
if (g_u8TYWClearEepromFlag == 1)
{
g_u8TYWClearEepromFlag = 2;
Clear_EE[0] = 0;
eeprom_WriteRecord(EEPROM_BLOCK_00, (uint8_t *)&Clear_EE, 4);
}
Check_SEG_Display();
}
......@@ -39,6 +39,7 @@ typedef struct
extern uint8_t BUZZER_ON;
extern uint8_t Charge_OFF_Flag;
extern uint8_t EEPROM_Cumulativee_clean;
extern uint16_t poweroff_time;
void Gauge_Power_SOC_pull_Display(void);
// void Gauge_Power_2_SOC_Display(void);
......@@ -73,5 +74,6 @@ uint8_t Get_EleDial_AllSOC_lenth(void);
uint8_t Get_Clockonetime_lenth(void);
uint8_t Get_CAN_Num_SBMS_Soc_2_Grid(void);
uint8_t Get_CAN_Num_MBMS_Soc_1_Grid(void);
void TYW_Clear_Eeprom_Service(void);
void TYW_RESET_TIME(void);
#endif
......@@ -12,6 +12,7 @@ const uint8_t SEG_DISPLAY_NUMBER0[] = {0x3Fu, 0x06u, 0x5Bu, 0x4Fu, 0x66u, 0x6Du,
const uint8_t SEG_UNDISPLAY_NUMBER0[] = {0x00u, 0x06u, 0x5Bu, 0x4Fu, 0x66u, 0x6Du, 0x7Du, 0x07u, 0x7Fu, 0x6Fu};
uint8_t SOC_charge_seg_Flag = 0;
uint8_t checkself_seg_Flag = 0;
uint8_t g_u8TYWClearEepromFlag = 0;
/**@brief 边框线显示函数
* @param[in] m_Flag 是否显示 -1 显示 -0 不显示
* @return 函数执行结果
......@@ -21,14 +22,14 @@ uint8_t checkself_seg_Flag = 0;
_Fun_Res SEG_SET_Frame(uint8_t m_Flag)
{
_Fun_Res m_Res = EX_ERR;
_Fun_Res m_Res = EX_ERR;
if (m_Flag == 1)
{
/*边框*/
IC2_SEG040 = IC_SEG_ON;
IC2_SEG140 = IC_SEG_ON;
IC1_SEG086 = IC_SEG_ON;
m_Res = EX_OK;
m_Res = EX_OK;
}
else
{
......@@ -36,9 +37,9 @@ _Fun_Res SEG_SET_Frame(uint8_t m_Flag)
IC2_SEG040 = IC_SEG_OFF;
IC2_SEG140 = IC_SEG_OFF;
IC1_SEG086 = IC_SEG_OFF;
m_Res = EX_OK;
m_Res = EX_OK;
}
return m_Res;
return m_Res;
}
/**@brief 指示灯显示函数
......@@ -251,6 +252,7 @@ _Fun_Res SEG_SET_Cutterhead(uint8_t m_Flag, uint8_t LED_NUM, uint8_t checkself)
}
else
{
IC1_SEG117 = IC_SEG_OFF;
IC1_SEG075 = IC_SEG_OFF;
IC1_SEG082 = IC_SEG_OFF;
IC1_SEG081 = IC_SEG_OFF;
......@@ -299,7 +301,7 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself)
{
/*挡位符号*/
uint8_t m8 = 0;
_Fun_Res Res = EX_ERR;
_Fun_Res Res = EX_ERR;
if (m_Gear_Flag == 1u)
{
IC2_SEG094 = IC_SEG_ON;
......@@ -386,7 +388,7 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself)
IC2_SEG099 = IC_SEG_OFF;
IC2_SEG146 = IC_SEG_OFF;
}
Res = EX_OK;
Res = EX_OK;
}
else
{
......@@ -456,7 +458,7 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself)
IC2_SEG142 = IC_SEG_OFF;
}
}
Res = EX_OK;
Res = EX_OK;
}
else
{
......@@ -481,9 +483,9 @@ _Fun_Res SEG_SET_GEAR(uint8_t m_Gear_Flag, uint8_t m_Gear, uint8_t checkself)
IC2_SEG146 = IC_SEG_OFF;
IC2_SEG142 = IC_SEG_OFF;
IC2_SEG150 = IC_SEG_OFF;
Res = EX_ERR;
Res = EX_ERR;
}
return Res;
return Res;
}
// /**@brief 燃油表盘显示函数
// * @param[in] m_Flag 段与数字是否显示 -1 显示 -0 不显示
......@@ -2555,39 +2557,77 @@ _Fun_Res SEG_SET_Clock_ALL(uint8_t m_Flag, uint32_t m_NUM)
}
return m_Res;
}
// uint8_t check_SEG_step = 0;
uint8_t check_SEG_step = 0;
///*仪表段码扫描函数*/
// void Check_SEG_Display(void)
//{
// uint32_t a;
// a = check_SEG_step / 25u;
// SEG_SET_TRIP_NUM(1u, ((a * 1000u) + (a * 100u) + (a * 10u) + a));
// SEG_SET_ODO_NUM(1u, ((a * 100000u) + (a * 10000u) + (a * 1000u) + (a * 100u) + (a * 10u) + a));
// SEG_SET_VSpeed_NUM(1u, (100u + (a * 10u) + a));
// SEG_SET_Clock(((a * 10u) + a), ((a * 10u) + a), 1u, 1u, 1u);
// SEG_SET_LED_STS(0, 1);
// SEG_SET_LED_STS(1, 1);
// SEG_SET_LED_STS(2, 1);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_07_Key_ISTOP, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_02_Normal_Voltage, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_03_High_Low_Voltage, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Fuel_Y, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_Fuel_W, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_06_Screen_Time, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_29_MPH, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_30_KM_H, LED_ON);
// RTE_GPIO_Set_Level(VSPEED_TEN_OUT, 1);
// RTE_GPIO_Set_Level(VSPEED_HUNDREDS_OUT, 1);
// SEG_Scan_SET_FuelDial();
// SEG_Scan_SET_EspeedDial();
//
//}
/*仪表段码扫描函数*/
void Check_SEG_Display(void)
{
uint16_t hour = 0;
uint16_t min = 0;
uint8_t soc_all = 0;
uint8_t Checkself_num = ((check_SEG_step * 10) / 48);
if (Checkself_num >= 10)
{
Checkself_num = 9;
}
uint32_t allhour = Checkself_num * 11111;
// Fuel = Checkself_SEG_step / 5u;
// SEG_SET_FuelDial(1, Fuel);
uint32_t EleDial_2SOC = ((check_SEG_step * 10) / 48);
SEG_SET_EleDial_2SOC(1, EleDial_2SOC);
SEG_SET_EleDial_1SOC(1, EleDial_2SOC);
soc_all = Checkself_num * 11 + 100;
SEG_SET_EleDial_AllSOC(1, soc_all);
checkself_seg_Flag = 1;
SEG_SET_Clock_ALL(1, allhour);
hour = Checkself_num * 11;
min = Checkself_num * 11;
SEG_SET_Clock(hour, min, 1, 1, 1);
SEG_SET_GEAR(1, Checkself_num, 1);
SEG_SET_Cutterhead(1, Checkself_num, 1);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_00_Grass_Full_R, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_01_Power_Battery_Failure_R, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_02_System_Indicator_R, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_05_Gears_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_04_GEAR_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_08_Battery_Charging_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_10_READY_G, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_11_Key_Access_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_12_Seat_Detection_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_13_OVERLOAD_R, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_14_Cutterhead_Switch_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_15_Cutterhead_Gear_W, LED_ON);
// LED_Driver_Channel_Set(LampChannel_0, LampCh0_17_External_Discharge_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_21_LED_Open_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_31_Working_Hours_One_W, LED_ON);
LED_Driver_Channel_Set(LampChannel_0, LampCh0_32_Charging_Connection_R, LED_ON);
SEG_SET_LED_STS(SEG_LED_Recharge, 1);
SEG_SET_LED_STS(SEG_LED_System_Light, 1);
SEG_SET_LED_STS(SEG_LED_Chloramine, 1);
SEG_SET_LED_STS(SEG_LED_Cutter_Overload, 1);
SEG_SET_LED_STS(SEG_LED_Seat_Detection, 1);
SEG_SET_LED_STS(SEG_LED_Key_Access, 1);
SEG_SET_LED_STS(SEG_LED_Ready, 1);
SEG_SET_LED_STS(SEG_LED_Cutter_Head_switch, 1);
// SEG_SET_LED_STS(SEG_LED_External_Discharge, 1);
SEG_SET_LED_STS(SEG_LED_Distance_Light, 1);
SEG_SET_LED_STS(SEG_LED_HHT_Charger, 1);
SEG_SET_Frame(1);
if (check_SEG_step < 50)
{
check_SEG_step++;
}
else
{
check_SEG_step = 0;
}
}
uint8_t Checkself_SEG_step = 0;
uint8_t Checkself_SEG_step_count = 0;
......@@ -2597,6 +2637,7 @@ void Checkself_Init(void)
Checkself_SEG_step = 0;
Checkself_SEG_step_count = 0;
checkself_seg_Flag = 0;
check_SEG_step = 0;
Buzzer_time = 0;
}
uint8_t soc_all = 0;
......@@ -2606,16 +2647,16 @@ void Checkself_SEG_Display(void)
uint16_t Trip = 0;
uint16_t hour = 0;
uint16_t min = 0;
uint8_t Checkself_num = ((Checkself_SEG_step*10) / 48);
if(Checkself_num >= 10)
uint8_t Checkself_num = ((Checkself_SEG_step * 10) / 48);
if (Checkself_num >= 10)
{
Checkself_num = 9;
}
uint32_t allhour = Checkself_num * 11111;
// Fuel = Checkself_SEG_step / 5u;
// SEG_SET_FuelDial(1, Fuel);
uint32_t EleDial_2SOC = ((Checkself_SEG_step*10) / 48);
uint32_t EleDial_2SOC = ((Checkself_SEG_step * 10) / 48);
SEG_SET_EleDial_2SOC(1, EleDial_2SOC);
SEG_SET_EleDial_1SOC(1, EleDial_2SOC);
soc_all = Checkself_num * 11 + 100;
......@@ -2678,4 +2719,3 @@ void Checkself_SEG_Display(void)
// }
// }
}
......@@ -83,7 +83,7 @@ _Fun_Res SEG_SET_Clock(uint8_t m_hour, uint8_t m_minute, uint8_t m_icon, uint8_t
/**@brief 累计时间显示函数*/
_Fun_Res SEG_SET_Clock_ALL(uint8_t m_Flag , uint32_t m_NUM);
uint8_t Check_SEG_Display(void);
void Check_SEG_Display(void);
......@@ -116,6 +116,7 @@ extern uint8_t SOC_charge_seg_Flag;
extern uint8_t Checkself_SEG_step;
extern uint8_t Checkself_SEG_step_count;
extern uint8_t checkself_seg_Flag;
extern uint8_t g_u8TYWClearEepromFlag;
extern uint16_t Buzzer_time;
......
......@@ -310,7 +310,7 @@
#define CheckSumErr 7 // Checksum Error
#define UnknownPartID 8 // Unknown Part ID
#define SWV 0x102 // 0x100 = 1.00 software version 软件版本号
#define SWV 0x103 // 0x100 = 1.00 software version 软件版本号
#define HWV 0x100 // 0x100 = 1.00 hardware version 硬件版本号
#define BTV 0x100 // 0x100 = 1.00 bootloader version boot程序版本号
#define INTLV 0x101 // 0x100 = 1.00 internal version 内部版本号
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
#new Option
#Fri Jul 19 15:39:26 CST 2024
#Mon Jul 22 11:48:10 CST 2024
IsSort=true
MergeFlashIsCompression=false
ChangeAppFilePath=
......@@ -26,7 +26,7 @@ MergeLineInOutPutPath=
Leave2ID=1
PHYID=781
BaudRate=250K
AppUpdateFilePath=D\:\\\u5DE5\u4F5C\\\u6DA6\u901A\u8349\u5730\\new\\rt_rmr42e\\Firmware\\utility\\\u7A0B\u5E8F\u91CA\u653E\\RT_RMRE42-60-20240719\\APP_20240719153738090030.srec
AppUpdateFilePath=C\:\\Users\\Administrator\\Desktop\\RT_RMRE42-60-20240722\\APP_20240722114621583037.srec
FUNID=7DF
IsMergeCreateBin=false
IsOverWrite=false
......@@ -56,8 +56,8 @@ IsHexDisplay=true
MergeLineInXLSPath=
MergeFlashInPutFilePath=
MergeFlashIsInternal=false
MergeOutPutFilePath=D\:\\\u5DE5\u4F5C\\\u6DA6\u901A\u8349\u5730\\new\\rt_rmr42e\\Firmware\\utility\\\u7A0B\u5E8F\u91CA\u653E\\RT_RMRE42-60-20240719
MergeAppFilePath=D\:\\\u5DE5\u4F5C\\\u6DA6\u901A\u8349\u5730\\new\\rt_rmr42e\\Firmware\\utility\\\u7A0B\u5E8F\u91CA\u653E\\RT_RMRE42-60-20240719\\RMR42E.hex
MergeOutPutFilePath=C\:\\Users\\Administrator\\Desktop\\RT_RMRE42-60-20240722
MergeAppFilePath=C\:\\Users\\Administrator\\Desktop\\RT_RMRE42-60-20240722\\RMR42E.hex
MergeTelltalesXLSPath=
FillingByte=-86
ImageVersion=0
......
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