Commit 7134ed56 authored by 张金硕's avatar 张金硕

🐞 fix:更换故障码文件,修复故障码的bug

parent dc80ae3d
This diff is collapsed.
......@@ -6,55 +6,40 @@
#include <string.h>
/*故障码类型A can报文轮询发送方式*/
#define FaultCodeType_A 1
#define FaultCodeType FaultCodeType_A
#define MaxFaultCode 40
#define MaxFaultCode 72
#define FaultCodeCount 5000
typedef enum
{
DTC1,
DTC2,
DTC3,
NUM_FAULT_TYPES,
} FaultCodeType_Num;
typedef uint32_t (*FaultCodeCallback)(void); /* 故障码回调函数 */
typedef uint16_t (*FaultCodeNumback)(void); /* 故障码个数回调函数 */
typedef uint16_t (*FaultCodeValidback)(void); /* 故障码有效回调函数 */
typedef struct
{
uint32_t u16FaultCode; /* 故障码 */
uint16_t u16FaultCodeCount; /* 故障码总数 */
} _st_FaultCode;
#define DISP_TIMER 500
typedef struct
typedef uint32_t(*Get_FaultCode)(void);
typedef uint8_t(*Get_FaultCodeNum)(void);
typedef struct __attribute__((aligned(4)))
{
FaultCodeCallback callbacks[NUM_FAULT_TYPES];
FaultCodeNumback FaultCodeNumCbk;
FaultCodeValidback FaultCodeVaildCbk;
} _st_Init;
uint32_t *code_list; //故障码列表
uint8_t hade; //列表头
uint8_t tail; //列表尾
uint8_t code_num; //获取的故障码数量
uint8_t len; //故障码列表最大长度
uint8_t disp; //故障码显示下标
uint16_t TimeCount; //故障码循环显示用的定时器
uint16_t disp_timer; //故障码显示的超时时间,超时显示下一个
Get_FaultCode Get_FaultCode1_cbk; //获取故障码的回调函数1
Get_FaultCode Get_FaultCode2_cbk; //获取故障码的回调函数2
Get_FaultCodeNum Get_FaultCodeNum_cbk; //获取故障码数量的回调函数
}FaultCodeList_t;
uint8_t List_Init(FaultCodeList_t *CodeList, uint32_t Arr[], uint8_t Len);
extern void FaultCode_Service(uint16_t Cycle);
extern void FaultCode_Init(void);
void FaultCode_Init(void);
void FaultCode_Servers(void);
extern uint32_t Get_Current_FaultCode(void);
extern uint8_t Get_Current_Hight_FaultCode(void);
extern uint8_t Get_Current_Hight_FaultCode(void);
extern uint8_t Get_FaultCode_Valid(void);
extern uint8_t Get_Current_Mid_FaultCode(void);
// extern uint8_t Get_FaultCode_Valid(void);
#endif
\ No newline at end of file
......@@ -33,7 +33,7 @@ void AMT630H_GUI_SETTING(void);
void AMT630H_GUI_Quit(void);
void AMT630H_GUI_Phone_Connect(void);
void AMT630H_GUI_Fault_Information(void);
void AMT630H_GUI_FaultCode(uint8_t FaultCodeLost,uint8_t FaultCodevalid,uint8_t FaultCode_hight,uint8_t FaultCode_mid);
void AMT630H_GUI_FaultCode(uint8_t FaultCodeLost);
void AMT630H_GUI_Language_Information(void);
void AMT630H_GUI_Unit_Information(void);
void AMT630H_GUI_Display_Mode_Information(void);
......@@ -142,7 +142,7 @@ void AMT630H_GUI_Fault_Information(void)
SetPagePic(GRAPHICS_PAGE_0, Pic_0168_350_290);
SetPagePic(GRAPHICS_PAGE_0, Pic_0169_353_227);/*历史故障*/
SetPagePic(GRAPHICS_PAGE_0, Pic_0170_354_162);/*当前故障*/
AMT630H_GUI_FaultCode(Get_FaultCode_Lost(),Get_FaultCode_Valid(),Get_Current_Hight_FaultCode(),Get_Current_Mid_FaultCode());
AMT630H_GUI_FaultCode(Get_FaultCode_Lost());
}
else if(g_u8Language == EN)
{
......@@ -159,7 +159,7 @@ void AMT630H_GUI_Fault_Information(void)
SetPagePic(GRAPHICS_PAGE_0, Pic_0096_338_228);/*Fault history*/
SetPagePic(GRAPHICS_PAGE_0, Pic_0097_334_163);/*current fault*/
AMT630H_GUI_FaultCode(Get_FaultCode_Lost(),Get_FaultCode_Valid(),Get_Current_Hight_FaultCode(),Get_Current_Mid_FaultCode());
AMT630H_GUI_FaultCode(Get_FaultCode_Lost());
}
/*os MCU版本*/
/* RGB 0 0 0 --- 黑*/
......@@ -186,7 +186,7 @@ void AMT630H_GUI_Fault_Information(void)
SetPagePic(GRAPHICS_PAGE_0, Pic_0356_353_227);/*历史故障*/
SetPagePic(GRAPHICS_PAGE_0, Pic_0357_354_162);/*当前故障*/
AMT630H_GUI_FaultCode(Get_FaultCode_Lost(),Get_FaultCode_Valid(),Get_Current_Hight_FaultCode(),Get_Current_Mid_FaultCode());
AMT630H_GUI_FaultCode(Get_FaultCode_Lost());
}
else if(g_u8Language == EN)
{
......@@ -203,7 +203,7 @@ void AMT630H_GUI_Fault_Information(void)
SetPagePic(GRAPHICS_PAGE_0, Pic_0284_338_228);
SetPagePic(GRAPHICS_PAGE_0, Pic_0285_334_163);/*current fault*/
AMT630H_GUI_FaultCode(Get_FaultCode_Lost(),Get_FaultCode_Valid(),Get_Current_Hight_FaultCode(),Get_Current_Mid_FaultCode());
AMT630H_GUI_FaultCode(Get_FaultCode_Lost());
}
/*os MCU版本*/
/* RGB 0 0 0 --- 黑*/
......@@ -243,11 +243,9 @@ static uint16_t NumbeList_FaultCode_night[]={
uint8_t FaultCodevalid_monitor = 2;
/*故障码显示函数*/
static void AMT630H_GUI_FaultCode(uint8_t FaultCodeLost,uint8_t FaultCodevalid,uint8_t FaultCode_hight,uint8_t FaultCode_mid)
static void AMT630H_GUI_FaultCode(uint8_t FaultCodeLost)
{
if(FaultCodeLost == 1)
{
if(FaultCodevalid == 1)
{
if(g_u8Display_Mode == ModeDAY)
{
......@@ -268,7 +266,6 @@ static void AMT630H_GUI_FaultCode(uint8_t FaultCodeLost,uint8_t FaultCodevalid,u
SetPageText(GRAPHICS_PAGE_0, 0x6009, 610 , 164 , 200, ALIGN_LEFT, 0, TEXT_COLOR(0XFF,0XFF,0XFF,0XFF),TEXT_LINE_OFFSET(1,1));
}
}
}
else if(FaultCodeLost == 0)
{
if(g_u8Display_Mode == ModeDAY)
......
......@@ -34,7 +34,7 @@ void Sys_5ms_Tasks(void)
void Sys_10ms_Tasks(void)
{
Can_BusOff_Recover(10);
FaultCode_Service(10u);
FaultCode_Servers();
Line_In_Debounce_Service(10u);
My_Key_Service();
Data_Mileage_Write_EEPROM();
......
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