Commit 810f8c21 authored by hu's avatar hu

增加遗漏功能

parent 92084f75
...@@ -58,7 +58,7 @@ void BL_Init(void) ...@@ -58,7 +58,7 @@ void BL_Init(void)
void BL_Management_service(void) void BL_Management_service(void)
{ {
uint8_t Msg; uint8_t Msg;
uint8_t LED_Pos; uint8_t LED_Pos = 0u;
uint8_t LED_Left; uint8_t LED_Left;
uint8_t LED_Right; uint8_t LED_Right;
uint8_t LED_Plus; uint8_t LED_Plus;
......
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
#include "TYW_stdint.h" #include "TYW_stdint.h"
#include "DisplaySch_user.h" #include "DisplaySch_user.h"
#include "DispSch.h" #include "DispSch.h"
#include <string.h>
static uint16_t Fuel_CurSeg; static uint16_t Fuel_CurSeg;
static uint16_t Fuel_CyrStep; static uint16_t Fuel_CyrStep;
#pragma ghs section bss=".myNonInitArea" #pragma ghs section bss=".myNonInitArea"
uint8_t FuelSaveData[1024] ;// = {0}; uint8_t FuelSaveData[1024] ;// = {0};
uint16_t FuelSaveLen ;// = 0; uint16_t FuelSaveLen ;// = 0;
...@@ -117,13 +117,13 @@ void Fuel_User_Sleep_Init(void) ...@@ -117,13 +117,13 @@ void Fuel_User_Sleep_Init(void)
if (FuelSaveLen < 1024) if (FuelSaveLen < 1024)
{ {
memcpy_new(FuelSaveData, p, FuelSaveLen); memcpy(FuelSaveData, p, FuelSaveLen);
} }
p = GetDrivingRangeSaveData(&DrivingRangeSaveLen); p = GetDrivingRangeSaveData(&DrivingRangeSaveLen);
if (DrivingRangeSaveLen < 1024) if (DrivingRangeSaveLen < 1024)
{ {
memcpy_new(DrivingRangeSaveData, p, DrivingRangeSaveLen); memcpy(DrivingRangeSaveData, p, DrivingRangeSaveLen);
} }
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
......
...@@ -21,7 +21,7 @@ static struct ...@@ -21,7 +21,7 @@ static struct
static void Data_Voltmeter_2_Gui(void); static void Data_Voltmeter_2_Gui(void);
static uint16_t Get_VoltFilter(void); static uint16_t Get_VoltFilter(void);
static
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Function Name : Voltmeter_KL30_Init * Function Name : Voltmeter_KL30_Init
* Description : * Description :
......
...@@ -628,16 +628,22 @@ uint8_t LED_H_S_A_T_Judgement(void) ...@@ -628,16 +628,22 @@ uint8_t LED_H_S_A_T_Judgement(void)
{ {
uint8_t u8Result = 0u; uint8_t u8Result = 0u;
uint8_t m_Condition1 = 0u; uint8_t m_Condition1 = 0u;
uint8_t m_Condition2 = 0u;
m_Condition1 = (uint8_t)XXXX; m_Condition1 = Get_ID_18FDC40B_Sig_HSAYellow_Sta();
m_Condition2 = Get_ID_18F0010B_Sig_HSAGreen_Sta();
if (m_Condition1 == 1u) if (m_Condition1 == 1u)
{ {
u8Result = 1u; u8Result = 2u;
} }
else if (m_Condition1 == 2u) else if (m_Condition1 == 2u)
{ {
u8Result = 2u; u8Result = FLASH_SYNC_2Hz;
}
else if (m_Condition2 == 1u)
{
u8Result = 3u;
} }
else else
{ {
...@@ -650,10 +656,15 @@ void LED_H_S_A_T_Execution(uint8_t led_status) ...@@ -650,10 +656,15 @@ void LED_H_S_A_T_Execution(uint8_t led_status)
{ {
if (led_status == 1u) if (led_status == 1u)
{ {
IS31_CHIP0_CHANNEL28 = 0x00; /*绿灯 灭*/ IS31_CHIP0_CHANNEL29 = LED_BRIGHTNESSY; /*黄灯 闪烁*/
IS31_CHIP0_CHANNEL29 = LED_BRIGHTNESSY; /*黄灯 亮*/ IS31_CHIP0_CHANNEL28 = 0x00u;
} }
else if (led_status == 2u) else if (led_status == 2u)
{
IS31_CHIP0_CHANNEL29 = LED_BRIGHTNESSY; /*黄灯 亮*/
IS31_CHIP0_CHANNEL28 = 0x00; /*绿灯 灭*/
}
else if (led_status == 3u)
{ {
if (Line_In_Get_Status(LINE_IN_ILLUMINATION)) if (Line_In_Get_Status(LINE_IN_ILLUMINATION))
{ {
...@@ -663,7 +674,7 @@ void LED_H_S_A_T_Execution(uint8_t led_status) ...@@ -663,7 +674,7 @@ void LED_H_S_A_T_Execution(uint8_t led_status)
{ {
IS31_CHIP0_CHANNEL28 = LED_BRIGHTNESSG; /*绿灯 亮*/ IS31_CHIP0_CHANNEL28 = LED_BRIGHTNESSG; /*绿灯 亮*/
} }
IS31_CHIP0_CHANNEL29 = 0x00; /*黄灯 灭*/ IS31_CHIP0_CHANNEL29 = 0x00u; /*黄灯 灭*/
} }
else else
{ {
......
...@@ -484,7 +484,16 @@ const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] = ...@@ -484,7 +484,16 @@ const st_CANMsgAttribute CAN_MSG_CONST_ARRAY[ID_TOTAL_MAX] =
(( void * )0), (( void * )0),
(( void * )0), (( void * )0),
}, },
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x18FDC40Bul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{ {
...@@ -800,24 +809,29 @@ uint8_t Get_ID_18FE4F0B_Sig_VDC_Fully_operational(void) ...@@ -800,24 +809,29 @@ uint8_t Get_ID_18FE4F0B_Sig_VDC_Fully_operational(void)
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18FE4F0B_Msg_Count, 0u) >> 2u) & 0x03u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18FE4F0B_Msg_Count, 0u) >> 2u) & 0x03u));
} }
uint8_t Get_ID_18F0010B_Sig_ATC_or_ASR_Lamp_State(void) uint8_t Get_ID_18F0010B_Sig_ASR_Lamp_State(void)
{ {
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 5u) >> 6u) & 0x03u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 0u) >> 0u) & 0x03u));
} }
uint8_t Get_ID_18F0010B_Sig_EBS_Amber_Warning_State(void) uint8_t Get_ID_18F0010B_Sig_ASR_Brake_Control_Active(void)
{ {
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 5u) >> 4u) & 0x03u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 0u) >> 2u) & 0x03u));
} }
uint8_t Get_ID_18F0010B_Sig_ASR_Lamp_State(void) uint8_t Get_ID_18F0010B_Sig_HSAGreen_Sta(void)
{ {
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 0u) >> 0u) & 0x03u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 0u) >> 4u) & 0x03u));
} }
uint8_t Get_ID_18F0010B_Sig_ASR_Brake_Control_Active(void) uint8_t Get_ID_18F0010B_Sig_ASR_Offroad_Switch(void)
{ {
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 0u) >> 2u) & 0x03u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 2u) >> 2u) & 0x03u));
}
uint8_t Get_ID_18F0010B_Sig_ABS_Fully_Operational(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 5u) >> 0u) & 0x03u));
} }
uint8_t Get_ID_18F0010B_Sig_EBS_Red_Warning_Lamp_State(void) uint8_t Get_ID_18F0010B_Sig_EBS_Red_Warning_Lamp_State(void)
...@@ -825,16 +839,17 @@ uint8_t Get_ID_18F0010B_Sig_EBS_Red_Warning_Lamp_State(void) ...@@ -825,16 +839,17 @@ uint8_t Get_ID_18F0010B_Sig_EBS_Red_Warning_Lamp_State(void)
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 5u) >> 2u) & 0x03u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 5u) >> 2u) & 0x03u));
} }
uint8_t Get_ID_18F0010B_Sig_ABS_Fully_Operational(void) uint8_t Get_ID_18F0010B_Sig_EBS_Amber_Warning_State(void)
{ {
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 5u) >> 0u) & 0x03u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 5u) >> 4u) & 0x03u));
} }
uint8_t Get_ID_18F0010B_Sig_ASR_Offroad_Switch(void) uint8_t Get_ID_18F0010B_Sig_ATC_or_ASR_Lamp_State(void)
{ {
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 2u) >> 2u) & 0x03u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18F0010B_Msg_Count, 5u) >> 6u) & 0x03u));
} }
uint8_t Get_ID_CF02F2A_Sig_Relevant_objected_for_AEBS(void) uint8_t Get_ID_CF02F2A_Sig_Relevant_objected_for_AEBS(void)
{ {
return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg0CF02F2A_Msg_Count, 1u) >> 0u) & 0x07u)); return (((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg0CF02F2A_Msg_Count, 1u) >> 0u) & 0x07u));
...@@ -1400,6 +1415,16 @@ uint8_t Get_ID_18FEE64A_Sig_TBOX_Year(void) ...@@ -1400,6 +1415,16 @@ uint8_t Get_ID_18FEE64A_Sig_TBOX_Year(void)
return ((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18FEE64A_Msg_Count, 5u) >> 0u) & 0xFFu); return ((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18FEE64A_Msg_Count, 5u) >> 0u) & 0xFFu);
} }
uint8_t Get_ID_18FDC40B_Sig_HSAYellow_Sta(void)
{
return ((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18FDC40B_Msg_Count, 0u) >> 5u) & 0x07u);
}
uint8_t Get_ID_18ECFFA0_Sig_PRIO(void) uint8_t Get_ID_18ECFFA0_Sig_PRIO(void)
{ {
return ((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18ECFFA0_Msg_Count, 0u) >> 0u) & 0xFFu); return ((uint8_t)((uint8_t)CAN_MSG_Read(ID_CanMsg18ECFFA0_Msg_Count, 0u) >> 0u) & 0xFFu);
...@@ -1621,6 +1646,9 @@ uint8_t Co_Can_ConvertSubID(uint32_t MsgID) ...@@ -1621,6 +1646,9 @@ uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
case ID_CanMsg18FEE64A_Msg: case ID_CanMsg18FEE64A_Msg:
u8Result = ID_CanMsg18FEE64A_Msg_Count; u8Result = ID_CanMsg18FEE64A_Msg_Count;
break; break;
case ID_CanMsg18FDC40B_Msg:
u8Result = ID_CanMsg18FDC40B_Msg_Count;
break;
case ID_CanMsg18FECA00_Msg: case ID_CanMsg18FECA00_Msg:
......
...@@ -52,6 +52,7 @@ typedef enum ...@@ -52,6 +52,7 @@ typedef enum
/*43*/ID_CanMsg18FECAA0_Msg_Count, /*43*/ID_CanMsg18FECAA0_Msg_Count,
/*44*/ID_CanMsg18FF064A_Msg_Count, /*44*/ID_CanMsg18FF064A_Msg_Count,
/*45*/ID_CanMsg18FEE64A_Msg_Count, /*45*/ID_CanMsg18FEE64A_Msg_Count,
/*46*/ID_CanMsg18FDC40B_Msg_Count,
ID_CanMsg18FECA00_Msg_Count, ID_CanMsg18FECA00_Msg_Count,
ID_CanMsg18FECA10_Msg_Count, ID_CanMsg18FECA10_Msg_Count,
...@@ -139,6 +140,7 @@ extern const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] ; ...@@ -139,6 +140,7 @@ extern const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] ;
#define ID_CanMsg18FECAA0_Msg 0x18FECAA0u #define ID_CanMsg18FECAA0_Msg 0x18FECAA0u
#define ID_CanMsg18FF064A_Msg 0x18FF064Au #define ID_CanMsg18FF064A_Msg 0x18FF064Au
#define ID_CanMsg18FEE64A_Msg 0x18FEE64Au #define ID_CanMsg18FEE64A_Msg 0x18FEE64Au
#define ID_CanMsg18FDC40B_Msg 0x18FDC40Bu
#define ID_CanMsg18FECA00_Msg 0x18FECA00u #define ID_CanMsg18FECA00_Msg 0x18FECA00u
#define ID_CanMsg18FECA10_Msg 0x18FECA10u #define ID_CanMsg18FECA10_Msg 0x18FECA10u
...@@ -196,6 +198,7 @@ extern uint8_t Get_ID_18F0010B_Sig_ATC_or_ASR_Lamp_State(void); ...@@ -196,6 +198,7 @@ extern uint8_t Get_ID_18F0010B_Sig_ATC_or_ASR_Lamp_State(void);
extern uint8_t Get_ID_18F0010B_Sig_EBS_Amber_Warning_State(void); extern uint8_t Get_ID_18F0010B_Sig_EBS_Amber_Warning_State(void);
extern uint8_t Get_ID_18F0010B_Sig_ASR_Lamp_State(void); extern uint8_t Get_ID_18F0010B_Sig_ASR_Lamp_State(void);
extern uint8_t Get_ID_18F0010B_Sig_ASR_Brake_Control_Active(void); extern uint8_t Get_ID_18F0010B_Sig_ASR_Brake_Control_Active(void);
extern uint8_t Get_ID_18F0010B_Sig_HSAGreen_Sta(void);
extern uint8_t Get_ID_18F0010B_Sig_EBS_Red_Warning_Lamp_State(void); extern uint8_t Get_ID_18F0010B_Sig_EBS_Red_Warning_Lamp_State(void);
extern uint8_t Get_ID_18F0010B_Sig_ABS_Fully_Operational(void); extern uint8_t Get_ID_18F0010B_Sig_ABS_Fully_Operational(void);
extern uint8_t Get_ID_18F0010B_Sig_ASR_Offroad_Switch(void); extern uint8_t Get_ID_18F0010B_Sig_ASR_Offroad_Switch(void);
...@@ -268,6 +271,7 @@ extern uint8_t Get_ID_18FEE64A_Sig_TBOX_Hours(void); ...@@ -268,6 +271,7 @@ extern uint8_t Get_ID_18FEE64A_Sig_TBOX_Hours(void);
extern uint8_t Get_ID_18FEE64A_Sig_TBOX_Month(void); extern uint8_t Get_ID_18FEE64A_Sig_TBOX_Month(void);
extern uint8_t Get_ID_18FEE64A_Sig_TBOX_Day(void); extern uint8_t Get_ID_18FEE64A_Sig_TBOX_Day(void);
extern uint8_t Get_ID_18FEE64A_Sig_TBOX_Year(void); extern uint8_t Get_ID_18FEE64A_Sig_TBOX_Year(void);
extern uint8_t Get_ID_18FDC40B_Sig_HSAYellow_Sta(void);
//extern uint32_t Get_ID_18EA0021_Sig_CruiseControl_VehicleSpeedSetup(void); //extern uint32_t Get_ID_18EA0021_Sig_CruiseControl_VehicleSpeedSetup(void);
extern uint8_t Get_ID_0C010305_Sig_Auto_EcoPow(void); extern uint8_t Get_ID_0C010305_Sig_Auto_EcoPow(void);
extern uint32_t Get_ID_18FECA03_Sig_SPN(void); extern uint32_t Get_ID_18FECA03_Sig_SPN(void);
......
...@@ -1108,6 +1108,7 @@ void Can_Set_Buff_18EA0017(uint8_t CopyData[]) ...@@ -1108,6 +1108,7 @@ void Can_Set_Buff_18EA0017(uint8_t CopyData[])
void Can_Set_Buff_18EF1817(uint8_t CopyData[]) void Can_Set_Buff_18EF1817(uint8_t CopyData[])
{ {
uint8_t Trip_Type = 0u; uint8_t Trip_Type = 0u;
uint8_t Engine_Oil_Num_Cup = 0u;
Trip_Type = User_set_Num.Trip_Type ; Trip_Type = User_set_Num.Trip_Type ;
...@@ -1143,6 +1144,7 @@ void Can_Set_Buff_18EF1817(uint8_t CopyData[]) ...@@ -1143,6 +1144,7 @@ void Can_Set_Buff_18EF1817(uint8_t CopyData[])
} }
else else
{ {
/*清空发动机油&滤清器残留距离 (m) 请求*/
if (Common_Get_Can_Engine_Oil_Sta() == 1) if (Common_Get_Can_Engine_Oil_Sta() == 1)
{ {
CopyData[0] = 0x40; CopyData[0] = 0x40;
...@@ -1156,6 +1158,23 @@ void Can_Set_Buff_18EF1817(uint8_t CopyData[]) ...@@ -1156,6 +1158,23 @@ void Can_Set_Buff_18EF1817(uint8_t CopyData[])
Common_Set_Can_Engine_Oil_Sta(0); Common_Set_Can_Engine_Oil_Sta(0);
} }
/*上电连续发送五次 发动机油&滤清器警报阈值 (m) 请求*/
else if (Common_Get_Can_Engine_Oil_Num() < 5)
{
Engine_Oil_Num_Cup = Common_Get_Can_Engine_Oil_Num();
Engine_Oil_Num_Cup++;
Common_Set_Can_Engine_Oil_Num(Engine_Oil_Num_Cup);
CopyData[0] = 0x01;
CopyData[1] = 0x30;
CopyData[2] = 0x00;
CopyData[3] = 0x00;
CopyData[4] = 0x00;
CopyData[5] = 0x00;
CopyData[6] = 0xFF;
CopyData[7] = 0xFF;
}
/*正常状态发送数据*/
else else
{ {
/*增加发送5次机制*/ /*增加发送5次机制*/
......
...@@ -89,6 +89,7 @@ static uint32_t Menu_FacDea_Time; ...@@ -89,6 +89,7 @@ static uint32_t Menu_FacDea_Time;
static uint32_t OIL_PRESSURE_Time; static uint32_t OIL_PRESSURE_Time;
uint32_t UdsCanIDSta; uint32_t UdsCanIDSta;
uint32_t Can_Engine_Oil_Num ;
#pragma ghs section bss=".myNonInitArea" #pragma ghs section bss=".myNonInitArea"
static uint32_t Menu_Off_Time; static uint32_t Menu_Off_Time;
...@@ -140,6 +141,7 @@ void Common_DataInit(void) ...@@ -140,6 +141,7 @@ void Common_DataInit(void)
Set_18EF1718_Msg_Sta = COMMON_InValid; Set_18EF1718_Msg_Sta = COMMON_InValid;
//Menu_Off_Time = 0x00u; //Menu_Off_Time = 0x00u;
UdsCanIDSta = 0x00u; UdsCanIDSta = 0x00u;
Can_Engine_Oil_Num = 0u;
} }
/*以下由各个处理模块按需调用*/ /*以下由各个处理模块按需调用*/
...@@ -935,3 +937,12 @@ uint32_t Common_Get_OIL_PRESSURE_Time(void) ...@@ -935,3 +937,12 @@ uint32_t Common_Get_OIL_PRESSURE_Time(void)
{ {
return OIL_PRESSURE_Time; return OIL_PRESSURE_Time;
} }
void Common_Set_Can_Engine_Oil_Num(uint32_t Val)
{
Can_Engine_Oil_Num = Val;
}
uint32_t Common_Get_Can_Engine_Oil_Num(void)
{
return Can_Engine_Oil_Num;
}
\ No newline at end of file
...@@ -66,4 +66,7 @@ void Common_Set_UdsCanIDSta(uint32_t Val); ...@@ -66,4 +66,7 @@ void Common_Set_UdsCanIDSta(uint32_t Val);
uint32_t Common_Get_UdsCanIDSta(void); uint32_t Common_Get_UdsCanIDSta(void);
uint32_t Common_Get_OIL_PRESSURE_Time(void); uint32_t Common_Get_OIL_PRESSURE_Time(void);
void Common_Set_Can_Engine_Oil_Num(uint32_t Val);
uint32_t Common_Get_Can_Engine_Oil_Num(void);
#endif #endif
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