#ifndef CAN_CH0_CAN_COMMUNICATION_MATRIX_H_
#define CAN_CH0_CAN_COMMUNICATION_MATRIX_H_

#include "TYW_stdint.h"
#include "CAN_Lib.h"

extern st_CanMsgOp CAN_CH0_CanMsgOp;

extern st_CanMsgTxOp CAN_CH0_CanMsgTxOp;

typedef enum
{
    ID_ID0x18FF30E1_Msg_Count,
    ID_ID0x18FE4F0B_Msg_Count,
    ID_ID0x189116EF_Msg_Count,
    ID_ID0x18FF31E0_Msg_Count,
    ID_ID0x0CFE5A2F_Msg_Count,
    ID_ID0x18FF4AEF_Msg_Count,
    ID_ID0x18FFFE9C_Msg_Count,
    ID_ID0x18FF0321_Msg_Count,
    ID_ID0x18FF0221_Msg_Count,
    ID_ID0x18FF0121_Msg_Count,
    ID_ID0x18FAB017_Msg_Count,
    ID_ID0x0CD22F27_Msg_Count,
    ID_ID0x1CFEC317_Msg_Count,
    ID_ID0x0CFDCC17_Msg_Count,
    ID_ID0x18F10217_Msg_Count,
    ID_ID0x18FEAE30_Msg_Count,
    ID_ID0x18FEAE17_Msg_Count,
    ID_ID0x18F10117_Msg_Count,
    ID_ID0x18FEF100_Msg_Count,
    ID_ID0x18FE17EF_Msg_Count,
    ID_ID0x18FEF117_Msg_Count,
    ID_ID0x18FFA017_Msg_Count,
    ID_ID0x18000000_Msg_Count,

    CAN_CH0_ID_TOTAL_MAX,
} CAN_MSG_ID_t;

typedef enum
{
    CAN_CH0_MSGID_18FEF117,
    CAN_CH0_MSGID_18FEF100,
    CAN_CH0_MSGID_18F10117,
    CAN_CH0_MSGID_18FEAE17,
    CAN_CH0_MSGID_18FEAE30,
    CAN_CH0_MSGID_18F10217,
    CAN_CH0_MSGID_18000001,
    CAN_CH0_ID_SEND_TOTAL,
} CAN_MSG_SEND_ID_t;

extern const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] ;
extern const st_CAN_SendAttribute    CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL] ;

#define  ID_ID0x18FF30E1_Msg    0x98FF30E1u
#define  ID_ID0x18FE4F0B_Msg    0x98FE4F0Bu
#define  ID_ID0x189116EF_Msg    0x989116EFu
#define  ID_ID0x18FF31E0_Msg    0x98FF31E0u
#define  ID_ID0x0CFE5A2F_Msg    0x8CFE5A2Fu
#define  ID_ID0x18FF4AEF_Msg    0x98FF4AEFu
#define  ID_ID0x18FFFE9C_Msg    0x98FFFE9Cu
#define  ID_ID0x18FF0321_Msg    0x98FF0321u
#define  ID_ID0x18FF0221_Msg    0x98FF0221u
#define  ID_ID0x18FF0121_Msg    0x98FF0121u
#define  ID_ID0x18FAB017_Msg    0x98FAB017u
#define  ID_ID0x0CD22F27_Msg    0x8CD22F27u
#define  ID_ID0x1CFEC317_Msg    0x9CFEC317u
#define  ID_ID0x0CFDCC17_Msg    0x8CFDCC17u
#define  ID_ID0x18F10217_Msg    0x98F10217u
#define  ID_ID0x18FEAE30_Msg    0x98FEAE30u
#define  ID_ID0x18FEAE17_Msg    0x98FEAE17u
#define  ID_ID0x18F10117_Msg    0x98F10117u
#define  ID_ID0x18FEF100_Msg    0x98FEF100u
#define  ID_ID0x18FE17EF_Msg    0x98FE17EFu
#define  ID_ID0x18FEF117_Msg    0x98FEF117u
#define  ID_ID0x18FFA017_Msg    0x98FFA017u
#define  ID_ID0x18000000_Msg    0x98000000u

extern uint16_t ADC_U16;
extern uint16_t ADC_U48;

extern uint8_t  Get_ID_18FF30E1_Sig_ECAS_Decrease(void);
extern uint8_t  Get_ID_18FE4F0B_Sig_VDC_Brake_Light_quest(void);
extern uint8_t  Get_ID_18FE4F0B_Sig_VDC_Lamp_State(void);
extern uint8_t  Get_ID_189116EF_Sig_Reverse_Prompt_Enable_Output(void);
extern uint8_t  Get_ID_189116EF_Sig_Brake_Light_Signal_Output(void);
extern uint8_t  Get_ID_18FF31E0_Sig_Right_Turn_Signal_Switch(void);
extern uint8_t  Get_ID_0CFE5A2F_Sig_ECAS_Kneeling_Work_Light(void);
extern uint8_t  Get_ID_18FF4AEF_Sig_Power_On_High_Voltage_Indicator(void);
extern uint8_t  Get_ID_18FF4AEF_Sig_Reverse_Gear_Signal(void);
extern uint8_t  Get_ID_18FFFE9C_Sig_LowBeamHeadlightControlOutput(void);
extern uint8_t  Get_ID_18FFFE9C_Sig_Small_Lamp_Control_Output(void);
extern uint8_t  Get_ID_18FF0321_Sig_AirCompressorEnable(void);
extern uint8_t  Get_ID_18FF0321_Sig_RearFogLamp(void);
extern uint8_t  Get_ID_18FF0321_Sig_FogLamp(void);
extern uint8_t  Get_ID_18FF0321_Sig_highBeam(void);
extern uint8_t  Get_ID_18FF0321_Sig_LowBeam(void);
extern uint8_t  Get_ID_18FF0321_Sig_LeftFrontTurnSignal(void);
extern uint8_t  Get_ID_18FF0321_Sig_TurnLampRightFront(void);
extern uint8_t  Get_ID_18FF0321_Sig_PositionLights(void);
extern uint8_t  Get_ID_18FF0221_Sig_BarometerSensor2(void);
extern uint8_t  Get_ID_18FF0221_Sig_BarometerSensor1(void);
extern uint8_t  Get_ID_18FF0221_Sig_FuelLevelSensor(void);
extern uint8_t  Get_ID_18FF0121_Sig_GetOffNotificationBellStopLight(void);
extern uint8_t  Get_ID_18FF0121_Sig_MiddleDoorLocking(void);
extern uint8_t  Get_ID_18FF0121_Sig_FrontDoorLocking(void);
extern uint8_t  Get_ID_18FF0121_Sig_MiddleDoorEmergencyValve(void);
extern uint8_t  Get_ID_18FF0121_Sig_MiddleDoorEmergencyValveCover(void);
extern uint8_t  Get_ID_18FF0121_Sig_MotorLowWaterLevelAlarmSwitch(void);
extern uint8_t  Get_ID_18FF0121_Sig_CoolingWaterLevelTooLow(void);
extern uint8_t  Get_ID_18FF0121_Sig_Middle_Door_Open_Signal(void);
extern uint8_t  Get_ID_18FF0121_Sig_Front_Door_Open_Signal(void);
extern uint8_t  Get_ID_18FF0121_Sig_Release_Door_Open_Brake_Command(void);
extern uint8_t  Get_ID_18FF0121_Sig_Front_Door_Trip_Valve_Spin_Alarm(void);
extern uint8_t  Get_ID_18FF0121_Sig_Front_Door_Trip_Valve_Open_Alarm(void);
extern uint8_t  Get_ID_18FF0121_Sig_Battery_Compartment_TEM_Alarm(void);
extern uint8_t  Get_ID_18FF0121_Sig_Driver_Seatbele_Not_Fastened(void);
extern uint8_t  Get_ID_18FF0121_Sig_Driver_Departure_Warning(void);
extern uint8_t  Get_ID_18FF0121_Sig_Door_Pump_Low_Air_Pressure_alarm(void);
extern uint8_t  Get_ID_18FAB017_Sig_Wiper_Sensitivity(void);
extern uint8_t  Get_ID_18FAB017_Sig_Wiper_Reset(void);
extern uint8_t  Get_ID_18FAB017_Sig_Washing_Switch(void);
extern uint8_t  Get_ID_18FAB017_Sig_Speed(void);
extern uint8_t  Get_ID_18FAB017_Sig_Automatic_Rainfall(void);
extern uint8_t  Get_ID_18FAB017_Sig_Automatic_Lighting(void);
extern uint8_t  Get_ID_18FAB017_Sig_Manual_State_Of_Wiper(void);
extern uint8_t  Get_ID_0CD22F27_Sig_Nominal_Level_Request_Rear_Axle(void);
extern uint8_t  Get_ID_0CD22F27_Sig_Nominal_Level_Request_Front_Axle(void);
extern uint8_t  Get_ID_0CD22F27_Sig_Kneeling_Requestright_Side(void);
extern uint8_t  Get_ID_1CFEC317_Sig_Reverse_Gear_Signal(void);
extern uint8_t  Get_ID_0CFDCC17_Sig_Turn_Signal(void);
extern uint8_t  Get_ID_0CFDCC17_Sig_Hazard_Indicator_Light(void);
extern uint8_t  Get_ID_0CFDCC17_Sig_High_And_Low_Beam_Lighes(void);
extern uint8_t  Get_ID_18F10217_Sig_Air_Compressor_Forced_Switch(void);
extern uint8_t  Get_ID_18F10217_Sig_Economic_Mode(void);
extern uint8_t  Get_ID_18F10217_Sig_Sports_Mode(void);
extern uint8_t  Get_ID_18F10217_Sig_Snow_Mode(void);
extern uint8_t  Get_ID_18F10217_Sig_Front_Door_Solenoid_Valve_Close(void);
extern uint8_t  Get_ID_18F10217_Sig_Middle_Door_Open_Status(void);
extern uint8_t  Get_ID_18F10217_Sig_Middle_Door_Solenoid_Valve_Open(void);
extern uint8_t  Get_ID_18F10217_Sig_Middle_Door_Close(void);
extern uint8_t  Get_ID_18F10217_Sig_Middle_Door_Open(void);
extern uint8_t  Get_ID_18F10217_Sig_Front_Door_Open_Status(void);
extern uint8_t  Get_ID_18F10217_Sig_Middle_Door_Solenoid_Valve_Close(void);
extern uint8_t  Get_ID_18F10217_Sig_Front_Door_Close(void);
extern uint8_t  Get_ID_18F10217_Sig_Front_Door_Solenoid_Valve_Open(void);
extern uint8_t  Get_ID_18F10217_Sig_Front_Door_Open(void);
extern uint8_t  Get_ID_18FEAE30_Sig_Front_Air_Reservoir_Pressure(void);
extern uint8_t  Get_ID_18FEAE30_Sig_Rear_Air_Reservoir_Pressure(void);
extern uint8_t  Get_ID_18FEAE17_Sig_Front_Air_Reservoir_Pressure(void);
extern uint8_t  Get_ID_18FEAE17_Sig_Rear_Air_Reservoir_Pressure(void);
extern uint8_t  Get_ID_18F10117_Sig_Seat_Belt_Status(void);
extern uint8_t  Get_ID_18F10117_Sig_Right_Middle_Passenger_Door(void);
extern uint8_t  Get_ID_18F10117_Sig_Rear_Cabin_Door_Status(void);
extern uint8_t  Get_ID_18F10117_Sig_Turn_Signal(void);
extern uint8_t  Get_ID_18F10117_Sig_Right_Front_Passenger_Door(void);
extern uint8_t  Get_ID_18F10117_Sig_Passenger_Door(void);
extern uint8_t  Get_ID_18F10117_Sig_Air_Compressor_Switch(void);
extern uint8_t  Get_ID_18F10117_Sig_Condenser_Power_Output(void);
extern uint8_t  Get_ID_18F10117_Sig_Charging_Door_Interlock(void);
extern uint8_t  Get_ID_18F10117_Sig_Rear_Cabin_Door_Interlock(void);
extern uint8_t  Get_ID_18F10117_Sig_Air_Pump_Signal(void);
extern uint8_t  Get_ID_18F10117_Sig_Dryer_Exhaust_Signal(void);
extern uint8_t  Get_ID_18FEF100_Sig_Brake(void);
extern uint16_t Get_ID_18FEF100_Sig_Dash_VehicleSpeed(void);
extern uint8_t  Get_ID_18FEF100_Sig_Parking_Brake(void);
extern uint8_t  Get_ID_18FE17EF_Sig_Rear_Cabin_Door_Status(void);
extern uint16_t Get_ID_18FE17EF_Sig_Speed(void);
extern uint8_t  Get_ID_18FEF117_Sig_Brake(void);
extern uint16_t Get_ID_18FEF117_Sig_Dash_VehicleSpeed(void);
extern uint8_t  Get_ID_18FEF117_Sig_Parking_Brake(void);
extern uint8_t  Get_ID_18FFA017_Sig_Disabled_Step_Board_Indication(void);
extern uint8_t  Get_ID_18FFA017_Sig_Front_Door_External_Switch(void);
extern uint8_t  Get_ID_18FFA017_Sig_Emergency_Valve_Alarm_Switch(void);
extern uint8_t  Get_ID_18FFA017_Sig_Emergency_Switch(void);
extern uint8_t  Get_ID_18FFA017_Sig_Main_Power_Switch(void);
extern uint8_t  Get_ID_18FFA017_Sig_Charging_Door_Open(void);
extern uint8_t  Get_ID_18FFA017_Sig_Danger_Lights(void);
extern uint8_t  Get_ID_18FFA017_Sig_Hand_Brake(void);
extern uint8_t  Get_ID_18FFA017_Sig_Instrument_Igon_Wake_Up_Power(void);
extern uint8_t  Get_ID_18000000_Sig_PC_Control_U16_Power(void);
extern uint8_t  Get_ID_18000000_Sig_PC_Control_U48_Power(void);
extern uint16_t Get_ID_18000000_Sig_PC_Control_U48_CurrentControlSet(void);
extern uint8_t  Get_ID_18000000_Sig_PC_Control_U48_LOW(void);
extern uint8_t  Get_ID_18000000_Sig_PC_Control_U48_HIGH(void);

extern uint8_t  Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID);
extern uint8_t  Co_Can_ConvertSubID(uint32_t MsgID);

#endif
