Line_In.h 2.62 KB
Newer Older
hu's avatar
hu committed
1 2 3 4 5 6 7 8 9 10


#ifndef LINE_IN_H
#define LINE_IN_H

#include "TYW_stdint.h"
#include "string.h"

/*所有硬线输入的索引*/
typedef enum
11
{
hu's avatar
hu committed
12 13
    /*ZH修改:2021.6.25*/
    /*指示灯相关*/
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
    LINE_IN_ABS = 0U,         /*A22  ABS*/
    LINE_IN_PARK_BRAKE,       /*A23  PARK BRAKE*/
    LINE_IN_HI_BEAM,          /*A25  HI BEAM*/
    LINE_IN_BRAKE_AIR_EBS,    /*A28  BRAKE AIR/EBS*/
    LINE_IN_SEAT_BELT,        /*A30  SEAT BELT*/
    LINE_IN_MIL,              /*A31  MIL*/
    LINE_IN_ENG_OIL,          /*A32  ENG OIL*/
    LINE_IN_CHARGE,           /*A34  CHARGE*/
    LINE_IN_TRAILER_ABS_INFO, /*B03  TRAILER ABS INFO*/
    LINE_IN_Rr_FOG_LAMP,      /*B14  Rr FOG LAMP*/
    LINE_IN_ACC_AIR,          /*B15  ACC AIR*/
    LINE_IN_AIR_SUS,          /*B30  AIR SUS*/
    LINE_IN_TRAILER_BRAKE,    /*B31  TRAILER BRAKE*/
    LINE_IN_TRAILER_ABS,      /*B33  TRAILER ABS*/
    LINE_IN_RR_DIFF_LOCK,     /*B36  RR DIFF LOCK*/
    LINE_IN_WEAR_IND,         /*B38  WEAR IND*/
hu's avatar
hu committed
30 31 32

    /*ZH新增:2021.6.29*/
    /*非指示灯相关*/
33 34 35 36 37 38 39 40 41 42 43 44
    LINE_IN_ILLUMINATION,    /*A06  ILLUMINATION*/
    LINE_IN_RET_BLENDING,    /*A10  RET_BLENDING*/
    LINE_IN_BRAKE,           /*A21  BRAKE*/
    LINE_IN_TURN_R,          /*A26  TURN_R*/
    LINE_IN_TURN_L,          /*A27  TURN_L*/
    LINE_IN_ABS_DETECT,      /*A33  ABS_DETECT*/
    LINE_IN_PTO,             /*B01  PTO*/
    LINE_IN_GLOW,            /*B05  GLOW*/
    LINE_IN_TRAILER_CONNECT, /*B06  TRAILER_CONNECT*/
    LINE_IN_LOW_COOLANT,     /*B32  LOW_COOLANT*/
    LINE_IN_ACC,             /*B39  ACC*/
    LINE_IN_WEAR2,           /*B40  WEAR2*/
hu's avatar
hu committed
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
    LINE_IN_MAX,
} Line_In_Channel_en_t;

/*获取实时硬线电平函数指针*/
typedef LINE_IN_TriggerLevel_en_t (*LineIn_Read_Level)(void);

typedef struct
{
    LINE_IN_TriggerLevel_en_t enValidLevel; /*有效电平*/
    uint16_t u16ValidTime;                  /*从无效到有效的消抖时间 ms*/
    uint16_t u16InvalidTime;                /*从有效到无效的消抖时间*/
    LINE_IN_WorkSt_en_t enPowerStatus;      /*硬线工作的电源状态*/
    LineIn_Read_Level pfnLineIn_Read_Cbk;   /*获取实时电平的回调函数*/
} Line_In_Attribute_st_t;

/*属性表与硬线索引号Line_In_Channel_en_t一一对应*/
extern const Line_In_Attribute_st_t g_stLineInAttribute[LINE_IN_MAX];
extern void Line_In_SetPowerSt(LINE_IN_WorkSt_en_t u8PowerSt);
/*10ms调用*/
extern void Line_In_Debounce_Service(void);

extern LineIn_LogicLevel_en_t Line_In_Get_Status(uint8_t Channel);

extern void Line_In_KL30_Init(void);
extern void Line_In_KL15_ON_Init(void);
extern void Line_In_KL15_OFF_Init(void);

#endif