Line_In.h 2.99 KB
Newer Older
hu's avatar
hu committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96


#ifndef LINE_IN_H
#define LINE_IN_H

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



/*
Note !  NOW LineIn only support 254 channel!!!!!
Note !  NOW LineIn only support 254 channel!!!!!
Note !  NOW LineIn only support 254 channel!!!!!
Note !  NOW LineIn only support 254 channel!!!!!
Note !  NOW LineIn only support 254 channel!!!!!
*/



/*所有硬线输入的索引*/
typedef enum
{   
    /*ZH修改:2021.6.25*/
    /*指示灯相关*/
    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*/

    /*ZH新增:2021.6.29*/
    /*非指示灯相关*/
    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*/
    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