Line_In_user.c 3.56 KB
Newer Older
时昊's avatar
时昊 committed
1 2 3 4 5 6 7

#include "Line_In_user.h"
#include "Components.h"


const Line_In_Attribute_st g_stLineInAttribute[LINE_IN_MAX] =
{
8 9 10
    {LEVEL_LOW,   LEVEL_HIGH,    LINE_IN_IG_ON,     20U,  20U,  Get_LINE_IN_Turn_Left,        },
    {LEVEL_LOW,   LEVEL_HIGH,    LINE_IN_IG_ON,     20U,  20U,  Get_LINE_IN_Turn_Right,       },
    {LEVEL_LOW,   LEVEL_HIGH,    LINE_IN_IG_ON,     60U,  20U,  Get_LINE_IN_High_Beam,        },
11
    {LEVEL_HIGH,  LEVEL_LOW,   LINE_IN_IG_ON,     100U, 20U,  Get_LINE_IN_Efi_Fault,          },
12 13
    {LEVEL_LOW,    LEVEL_HIGH,    LINE_IN_IG_ON,     20U,  20U,  Get_LINE_IN_ABS,              },
    {LEVEL_HIGH,    LEVEL_LOW,   LINE_IN_IG_ON,     20U,  20U,  Get_LINE_IN_Auto_Start_Stop,  },
14
    {LEVEL_HIGH,    LEVEL_LOW,   LINE_IN_IG_ON,     20U,  20U,  Get_LINE_IN_Oil_Pressure_Alert, },
15 16
    {LEVEL_HIGH,    LEVEL_LOW,   LINE_IN_IG_ON,     20U,  20U,  Get_LINE_IN_Voltage,          },
    {LEVEL_HIGH,    LEVEL_LOW,   LINE_IN_IG_ON,     20U,  20U,  Get_LINE_IN_Fuel_Level_Low,   },
17
    {LEVEL_LOW,    LEVEL_HIGH,   LINE_IN_IG_ON,     20U,  20U,  Get_LINE_IN_Coolant_Temperature },  
时昊's avatar
时昊 committed
18
};
时昊's avatar
时昊 committed
19
Linelib_uint8_t Get_LINE_IN_Turn_Left(void)
时昊's avatar
时昊 committed
20 21
{
    Linelib_uint8_t ret = 0U;
时昊's avatar
时昊 committed
22
    if (RTE_GPIO_Get_Level(LeftTurn_MUC_OUT))
时昊's avatar
时昊 committed
23 24 25
    {
        ret = 1u;
    }
时昊's avatar
时昊 committed
26
    else
时昊's avatar
时昊 committed
27 28 29 30 31
    {
        ret = 0UL;
    }
    return ret;
}
时昊's avatar
时昊 committed
32
Linelib_uint8_t Get_LINE_IN_Turn_Right(void)
时昊's avatar
时昊 committed
33 34
{
    Linelib_uint8_t ret = 0U;
35
    if (RTE_GPIO_Get_Level(RightTurn_MUC_OUT))
时昊's avatar
时昊 committed
36 37 38
    {
        ret = 1u;
    }
时昊's avatar
时昊 committed
39
    else
时昊's avatar
时昊 committed
40 41 42 43 44
    {
        ret = 0UL;
    }
    return ret;
}
时昊's avatar
时昊 committed
45
Linelib_uint8_t Get_LINE_IN_High_Beam(void)
时昊's avatar
时昊 committed
46 47
{
    Linelib_uint8_t ret = 0U;
48
    if (RTE_GPIO_Get_Level(HighBeam_MCU))
时昊's avatar
时昊 committed
49 50 51
    {
        ret = 1u;
    }
时昊's avatar
时昊 committed
52 53 54 55 56 57 58 59 60
    else
    {
        ret = 0UL;
    }
    return ret;
}
Linelib_uint8_t Get_LINE_IN_Efi_Fault(void)
{
    Linelib_uint8_t ret = 0U;
61
    if (RTE_GPIO_Get_Level(Engine_Failure_MCU))
时昊's avatar
时昊 committed
62 63 64 65 66 67 68 69 70 71 72 73
    {
        ret = 1u;
    }
    else
    {
        ret = 0UL;
    }
    return ret;
}
Linelib_uint8_t Get_LINE_IN_ABS(void)
{
    Linelib_uint8_t ret = 0U;
74
    if (RTE_GPIO_Get_Level(ABS_Faulty_lights))
时昊's avatar
时昊 committed
75 76 77 78
    {
        ret = 1u;
    }
    else
时昊's avatar
时昊 committed
79 80 81 82 83 84 85 86
    {
        ret = 0UL;
    }
    return ret;
}
Linelib_uint8_t Get_LINE_IN_Auto_Start_Stop(void)
{
    Linelib_uint8_t ret = 0U;
87
    if (RTE_GPIO_Get_Level(Start_stop_MCU))
时昊's avatar
时昊 committed
88 89 90 91 92 93 94 95 96 97 98 99
    {
        ret = 1u;
    }
    else
    {
        ret = 0UL;
    }
    return ret;
}
Linelib_uint8_t Get_LINE_IN_Oil_Pressure_Alert(void)
{
    Linelib_uint8_t ret = 0U;
100
    if (RTE_GPIO_Get_Level(Gears_N_MCU))
时昊's avatar
时昊 committed
101 102 103 104 105 106 107 108 109 110 111
    {
        ret = 1u;
    }
    else
    {
        ret = 0UL;
    }
    return ret;
}
Linelib_uint8_t Get_LINE_IN_Voltage(void)
{
112 113 114 115 116 117 118 119 120 121
    // Linelib_uint8_t ret = 0U;
    // if (RTE_GPIO_Get_Level(LeftTurn_MUC_OUT))/*没找到电压指示灯*/
    // {
    //     ret = 1u;
    // }
    // else
    // {
    //     ret = 0UL;
    // }
    // return ret;
时昊's avatar
时昊 committed
122 123 124
}
Linelib_uint8_t Get_LINE_IN_Fuel_Level_Low(void)
{
125 126 127 128 129 130 131 132 133 134
    // Linelib_uint8_t ret = 0U;
    // if (RTE_GPIO_Get_Level(LeftTurn_MUC_OUT))/*修改指示灯*/
    // {
    //     ret = 1u;
    // }
    // else
    // {
    //     ret = 0UL;
    // }
    // return ret;
时昊's avatar
时昊 committed
135
}
136
Linelib_uint8_t Get_LINE_IN_Coolant_Temperature(void)
时昊's avatar
时昊 committed
137 138
{
    Linelib_uint8_t ret = 0U;
139
    if (RTE_GPIO_Get_Level(A_WaterTemp_IN))
时昊's avatar
时昊 committed
140 141 142
    {
        ret = 1u;
    }
时昊's avatar
时昊 committed
143
    else
时昊's avatar
时昊 committed
144 145 146 147 148 149
    {
        ret = 0UL;
    }
    return ret;
}

150 151


时昊's avatar
时昊 committed
152 153 154 155 156 157
__align(4)
Linelib_uint8_t LINE_IN_Men[LINE_IN_MAX * LINE_IN_BLOCK_SIZE];

static Linelib_uint16_t LINE_GET_PWR(void)
{
    Linelib_uint16_t Res;
时昊's avatar
时昊 committed
158
    Res = Common_Get_IG_Sts() & 0x00FFu;
时昊's avatar
时昊 committed
159 160 161 162 163 164 165
    return Res;
}

void LINE_IN_Init(void)
{
    Line_In_KL30_WakeUp_Init(LINE_IN_Men, g_stLineInAttribute, LINE_IN_MAX, LINE_GET_PWR);
}