#ifndef _DATA_TPMS_H_
#define _DATA_TPMS_H_

#include "common.h"
typedef struct __attribute__((aligned(4)))
{
	uint32_t  Front_Press_Value;
    uint32_t  Rear_Press_Value;	
	uint8_t   Front_TPMS_Valid;
    uint8_t   Rear_TPMS_Valid;
    uint8_t   TPMS_Warning;
    uint8_t   TPMS_Unit;
    uint8_t   TPMS_LOST;
    uint8_t   TPMS_Front_Learn;
    uint8_t   TPMS_Rear_Learn;
    uint8_t   TPMS_Front_FirstLearn_Flag;
    uint8_t   TPMS_Rear_FirstLearn_Flag;

    uint8_t   TPMS_Front_Timeclean;
    uint8_t   TPMS_Rear_Timeclean;

    uint8_t   TPMS_Front_ID_Value;
    uint8_t   TPMS_Rear_ID_Value;
  
}_TPMS_Display;
typedef enum
{
    Unstudied = 0,
    Learning,
    LearningCompletion,
    LearningFailure,
} TPMSLearning;
void Data_TPMS_KL30_Init ( void );
void Data_TPMS_Processing_Service ( void );
uint32_t Data_Bar_To_Psi (uint32_t bar);
uint8_t Get_Led_TPMS_Waring (void);
uint8_t Get_Front_TPMS_Sig_Vaild (void);
uint8_t Get_Rear_TPMS_Sig_Vaild (void);
uint8_t Get_Front_TPMS_ID_Vaild (void);
uint8_t Get_Rear_TPMS_ID_Vaild (void);
uint16_t Get_Front_TPMS_Sig_Value (void);
uint16_t Get_Rear_TPMS_Sig_Value (void);
uint16_t Get_Rear_TPMS_TX (void);
uint16_t Get_Front_TPMS_TX (void);
void Data_TPMS_KL15_WAKE_UP_Init ( void );
uint8_t Get_Front_FirstLearn_Flag (void);
uint8_t Get_Rear_FirstLearn_Flag (void);
uint8_t Get_TPMS_CAN_LOST (void);
uint8_t Get_TPMS_Front_Learn(void);
uint8_t Get_TPMS_Rear_Learn(void);
void Can_341_Receive(void);

#endif