#ifndef FAULTCODE_H
#define FAULTCODE_H
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MaxFaultCode 72
#define FaultCodeCount 5000
#define DISP_TIMER 500
typedef uint32_t(*Get_FaultCode)(void);
typedef uint8_t(*Get_FaultCodeNum)(void);
typedef struct __attribute__((aligned(4)))
{
uint32_t *code_list; //故障码列表
uint8_t hade; //列表头
uint8_t tail; //列表尾
uint16_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);
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_Mid_FaultCode(void);
extern uint8_t Get_FaultCode_Lost(void);
// extern uint8_t Get_FaultCode_Valid(void);
#endif