
#define __CAN_C__


#include "can.h"
#include "board.h"
#include "KATECK_Logic.h"
#include <IG_Layer/Ignition.h>
#include "System_Check.h"
#include <Operation_Layer/Drive_Mode.h>
#include "Global_Variable.h"
#include "Safety_Layer/BMS/Charging_Status.h"
#include "Safety_Layer/CRC/CRC_UDM.h"
#include "Safety_Layer/CRC/CRC_UDM_4BIT.h"
#include "Logic/ADM_Integrated_Logic.h"

const float Factor_0_000127 	= 0.000127f;
const float Factor_0_000127465 	= 0.000127465f;
const float Factor_0_005 		= 0.005f;
const float Factor_0_001 		= 0.001f;
const float Factor_0_01 		= 0.01f;
const float Factor_0_0125 		= 0.0125f;
const float Factor_0_02 		= 0.02f;
const uint8_t Factor_0_02_INT	= 50;
const float Factor_0_025 		= 0.025f;
const float Factor_0_03125 		= 0.03125f;
const float Factor_0_05 		= 0.05f;
const float Factor_0_0625 		= 0.0625f;
const float Factor_0_1 			= 0.1f;
const float Factor_0_125 		= 0.125f;
const float Factor_0_15 		= 0.15f;
const float Factor_0_2 			= 0.2f;
const float Factor_0_25 		= 0.25f;
const float Factor_0_390625		= 0.390625f;
const float Factor_0_392157 	= 0.392157f;
const float Factor_0_5 			= 0.5f;
const float Factor_1_6 			= 1.6f;
const float Factor_3_17 		= 3.17f;
const float Factor_0_1e05 		= 0.00001f;
const float Factor_0_00125 		= 0.00125f;

const uint8_t Factor_4 			= 4;
const uint8_t Factor_5 			= 5;
const uint8_t Factor_10 		= 10;
const uint8_t Factor_20 		= 20;
const uint16_t Factor_320 		= 320;
const uint16_t Factor_634 		= 634;

const float Offset_m_0_255 		= -0.255f;
const float Offset_m_2_55 		= -2.55f;
const float Offset_m_3_2 		= -3.2f;
const float Offset_m_4_17677 	= -4.17677f;
const float Offset_m_4_17677312 = -4.17677312f;
const float Offset_m_10_23 		= -10.23f;
const float Offset_m_12_5 		= -12.5f;
const float Offset_m_14_95 		= -14.95f;
const float Offset_m_15_15 		= -15.15f;
const float Offset_m_20_48 		= -20.48f;
const float Offset_m_51_15 		= -51.15f;
const float Offset_m_102_4 		= -102.4f;
const float Offset_m_163_84 	= -163.84f;
const float Offset_m_204_8 		= -204.8f;
const float Offset_m_327_67 	= -327.67f;
const float Offset_m_327_68 	= -0.32768F;
const float Offset_m_40_957		= -40.957f;
const float Offset_m_40			= -40.0f;

//const float Offset_RWA_ANG -655.0f;
const int16_t Offset_1 			= 1;
const int16_t Offset_200 		= 200;
const int16_t Offset_2000 		= 2000;
const int16_t Offset_m_1 		= -1;
const int16_t Offset_m_15 		= -15;
const int16_t Offset_m_32 		= -32;
const int16_t Offset_m_50 		= -50;
const int16_t Offset_m_68 		= -68;
const int16_t Offset_m_90 		= -90;
const int16_t Offset_m_200 		= -200;
const int16_t Offset_m_409 		= -409;
const int16_t Offset_m_524 		= -524;
const int16_t Offset_m_655 		= -655;
const int16_t Offset_m_1638 	= -1638;
const int32_t Offset_m_32767 	= -32767;
const int32_t Offset_m_32768	= -32768;


const canMessageObjectConfigType    g_messageObjectConf_ECU3_0ch_TX[NUMBER_OF_ECU3_CH0_TX_MESSAGE] =
{
	{ 0x010, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_VCU_RC_Signals1_10ms
	{ 0x011, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_VCU_RC_Signals2_10ms
	{ 0x012, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_CAR_STAT_10ms
	{ 0x013, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_VCU_RC_Fault_Flag_10ms
//	{ 0x017, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_Debug_VCU_Signal_1_TX_5ms
//	{ 0x018, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_Debug_VCU_Signal_2_TX_5ms
	{ 0x050, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_RWA_VCU_RC_Signal1_10ms
	{ 0x051, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_RWA_VCU_RC_Signal2_10ms
	{ 0x060, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_RWS_VCU_RC_Signal1_10ms
	{ 0x061, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_RWS_VCU_RC_Signal2_10ms
	{ 0x100, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_SW_VER_10ms
	{ 0x140, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_TARGET_VALUE_10ms
	{ 0x151, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_VCU_BCM_Signal_1_10ms
	{ 0x180, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_VCU_BCM_Signal_2_10ms
	{ 0x220, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_VCU_EPAM_10ms
	{ 0x250, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_TX_VCU_MCU_Signals1_10ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_0ch_RX[NUMBER_OF_ECU3_CH0_RX_MESSAGE] =
{
	{ 0x040, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_RC_VCU_Signal1_10ms
	{ 0x041, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_RC_VCU_Signal2_10ms
	{ 0x042, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RC_VCU_Fault_Flag_10ms
	{ 0x155, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RC_BCM_Signal_1_10ms
	{ 0x174, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_IMU_TX1_10ms
	{ 0x178, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_IMU_TX2_10ms
	{ 0x17C, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_IMU_TX3_10ms
	{ 0x221, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_EPAM_VCU_10ms
	{ 0x300, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_MCU_VCU_Signals1_10ms
	{ 0x301, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_MCU_VCU_Signals2_10ms
	{ 0x570, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_BCM_VCU_Signal1_10ms
	{ 0x580, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_BCM_VCU_Signal2_10ms
	{ 0x585, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_BCM_VCU_Signal5_10ms
	{ 0x590, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_BCM_VCU_Signal3_10ms
	{ 0x595, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH0_RX_BCM_VCU_Signal4_10ms
	{ 0x777, FALSE,  DataLengthCode_8, FALSE }, //for Debugging_10ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_1ch_TX[NUMBER_OF_ECU3_CH1_TX_MESSAGE] =
{
	{ 0x050, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_RWA_VCU_ACU_Signal1_10ms
	{ 0x051, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_RWA_VCU_ACU_Signal2_10ms
	{ 0x060, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_RWS_VCU_ACU_Signal1_10ms
	{ 0x061, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_RWS_VCU_ACU_Signal2_10ms
	{ 0x013, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_VCU_ACU_Signal1_10ms
	{ 0x014, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_VCU_ACU_Signal2_10ms
	{ 0x015, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_VCU_ACU_Signal3_10ms
	{ 0x016, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_ACU_CAR_STAT_10ms
	{ 0x017, FALSE,  DataLengthCode_1, FALSE }, //ECU3_CH1_TX_VCU_ACU_Fault_Flag_10ms
	{ 0x174, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_IMU_TX1_10ms
	{ 0x178, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_IMU_TX2_10ms
	{ 0x17C, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_IMU_TX3_10ms
	{ 0x245, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_VCU_VESS_VCU_245h_10ms
	{ 0x303, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_VCU_VESS_ICM_303h_10ms
	{ 0x372, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_VCU_VESS_CGW_372h_10ms
	{ 0x3AC, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_VCU_VESS_VCU_3ACh_10ms
	{ 0x570, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_BCM_VCU_ACU_Signal1_10ms
	{ 0x580, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_BCM_VCU_ACU_Signal2_10ms
	{ 0x585, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_BCM_VCU_ACU_Signal5_10ms
	{ 0x588, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_VCU_VESS_CGW_588h_VC_10ms
	{ 0x590, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_BCM_VCU_ACU_Signal3_10ms
	{ 0x595, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_TX_BCM_VCU_ACU_Signal4_10ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_1ch_RX[NUMBER_OF_ECU3_CH1_RX_MESSAGE] =
{
	{ 0x091, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_RX_ACU_VCU_Signal1_10ms
	{ 0x092, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_RX_ACU_VCU_Signal2_10ms
	{ 0x093, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_RX_ACU_VCU_Signal3_10ms
	{ 0x151, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH1_RX_ACU_BCM_Signal_1_10ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_2ch_TX[NUMBER_OF_ECU3_CH2_TX_MESSAGE] =
{
	{ 0x032, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_BSC_IDB_StartupCommand_5ms
	{ 0x040, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_BSC_RWA_RackCommand_5ms
	{ 0x064, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_BSC_IDB_BrakeCommand_5ms
	{ 0x06A, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_BSC_RegenCommand_5ms
	{ 0x070, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_BSC_IMU_10ms
	{ 0x088, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_IDB_WheelSpeedStatus_5ms
	{ 0x310, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_BSC_RWA_StartupCommand_5ms
	{ 0x350, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_BSC_RWA_Sister_5ms
	{ 0x384, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_BSC_VehicleEnvironment_1000ms
	{ 0x796, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_TX_BSC_IDB_UdsRequest_10ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_2ch_RX[NUMBER_OF_ECU3_CH2_RX_MESSAGE] =
{
	{ 0x072, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_RWA_Status1_5ms
	{ 0x073, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_RWA_Status2_5ms
	{ 0x082, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_IDB_RegenTcsRequest_5ms
	{ 0x08C, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_IDB_WheelStatus_5ms
	{ 0x092, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_IDB_Status_5ms
	{ 0x096, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_IDB_TireSlipStatus_10ms
	{ 0x09A, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_IDB_BrakeStatus1_10ms
	{ 0x0A0, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_IDB_PressureStatus_10ms
	{ 0x0AA, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_RWA_Status3_100ms
	{ 0x0C8, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_IDB_BrakeStatus2_1000ms
	{ 0x798, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH2_RX_IDB_UdsResponse_10ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_3ch_TX[NUMBER_OF_ECU3_CH3_TX_MESSAGE] =
{
	{ 0x033, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_TX_BSC_RCU_StartupCommand_5ms
	{ 0x040, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_TX_BSC_RWA_RackCommand_5ms
	{ 0x065, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_TX_BSC_RCU_BrakeCommand_5ms
	{ 0x071, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_TX_BSC_IMU_10ms
	{ 0x089, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_TX_RCU_WheelSpeedStatus_5ms
	{ 0x310, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_TX_BSC_RWA_StartupCommand_5ms
	{ 0x350, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_TX_BSC_RWA_Sister_5ms
	{ 0x385, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_TX_BSC_VehicleEnvironment_1000ms
	{ 0x797, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_TX_BSC_RCU_UdsRequest_10ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_3ch_RX[NUMBER_OF_ECU3_CH3_RX_MESSAGE] =
{
	{ 0x072, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RWA_Status1_5ms
	{ 0x073, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RWA_Status2_5ms
	{ 0x08D, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RCU_WheelStatus_5ms
	{ 0x093, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RCU_Status_5ms
	{ 0x097, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RCU_TireSlipStatus_10ms
	{ 0x09B, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RCU_BrakeStatus1_10ms
	{ 0x0A1, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RCU_PressureStatus_10ms
	{ 0x0AA, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RWA_Status3_100ms
	{ 0x0C9, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RCU_BrakeStatus2_1000ms
	{ 0x799, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH3_RX_RCU_UdsResponse_10ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_4ch_TX[NUMBER_OF_ECU3_CH4_TX_MESSAGE] =
{
	{ 0x040, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH4_TX_VCU_RWS_Rack_Cmd_5ms
	{ 0x310, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH4_TX_VCU_RWS_StartupCommand_5ms
	{ 0x350, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH4_TX_VCU_RWS_Sister_5ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_4ch_RX[NUMBER_OF_ECU3_CH4_RX_MESSAGE] =
{
	{ 0x072, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH4_RX_RWS_VCU_stat_Signal_5ms
	{ 0x073, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH4_RX_RWS_VCU_Rack_AngleFbk_5ms
};


const canMessageObjectConfigType    g_messageObjectConf_ECU3_5ch_TX[NUMBER_OF_ECU3_CH5_TX_MESSAGE] =
{
	{ 0x040, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH5_TX_VCU_RWS_Rack_Cmd_5ms
	{ 0x310, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH5_TX_VCU_RWS_StartupCommand_5ms
	{ 0x350, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH5_TX_VCU_RWS_Sister_5ms
};

const canMessageObjectConfigType    g_messageObjectConf_ECU3_5ch_RX[NUMBER_OF_ECU3_CH5_RX_MESSAGE] =
{
	{ 0x072, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH5_RX_RWS_VCU_stat_Signal_5ms
	{ 0x073, FALSE,  DataLengthCode_8, FALSE }, //ECU3_CH5_RX_RWS_VCU_Rack_AngleFbk_5ms
};


uint32_t can_data_set_rx(uint8_t ch, uint8_t data_type) //intel order
{
    uint32_t ret;

    ret = CAN_ch[ch].rx.buf[(data_type*4) + 3];
    ret = (ret << shift8) ;

    ret += CAN_ch[ch].rx.buf[(data_type*4) + 2];
    ret = (ret << shift8) ;

    ret += CAN_ch[ch].rx.buf[(data_type*4) + 1];
    ret = (ret << shift8) ;

    ret += CAN_ch[ch].rx.buf[(data_type*4) + 0];
    return ret;
}

void can_data_set_tx(uint8_t ch, uint8_t data_type, uint32_t data)
{
    CAN_ch[ch].tx.buf[(data_type*4) + 0] = data & 0xFF;
    data = (data >> shift8);

    CAN_ch[ch].tx.buf[(data_type*4) + 1] = data & 0xFF;
    data = (data >> shift8);

    CAN_ch[ch].tx.buf[(data_type*4) + 2] = data & 0xFF;
    data = (data >> shift8);

    CAN_ch[ch].tx.buf[(data_type*4) + 3] = data & 0xFF;
}


void can_send_config(uint8_t ch, canMessageObjectConfigType config)
{
    uint32_t id;
    uint16_t len;

    id = config.messageId;
    len = config.messageLen;

    can_send_txring(ch,id,CAN_ch[ch].tx.buf,len);
    clear_tx_buf(ch);
}

void CAN_Task_5ms(void)
{
	ECU3_InputData_Set_for_Logic_5ms();
	ECU3_KATECH_Logic_5ms();
	ECU3_CAN_Data_Set_5ms();
	ECU3_CAN_Bypass_5ms();
	ECU3_CAN_Transmit_5ms();
}

void CAN_Task_10ms(void)
{
	ECU3_InputData_Set_for_Logic_10ms();
	ECU3_KATECH_Logic_10ms();
	ECU3_CAN_Data_Set_10ms();
	ECU3_CAN_Bypass_10ms();
	ECU3_CAN_Transmit_10ms();
}

void CAN_Task_20ms(void)
{
	ECU3_InputData_Set_for_Logic_20ms();
	ECU3_KATECH_Logic_20ms();
	ECU3_CAN_Data_Set_20ms();
	ECU3_CAN_Bypass_20ms();
	ECU3_CAN_Transmit_20ms();
}

void CAN_Task_100ms(void)
{
	ECU3_InputData_Set_for_Logic_100ms();
	ECU3_KATECH_Logic_100ms();
	ECU3_CAN_Data_Set_100ms();
	ECU3_CAN_Bypass_100ms();
	ECU3_CAN_Transmit_100ms();
}

void CAN_Task_200ms(void)
{
	ECU3_InputData_Set_for_Logic_200ms();
	ECU3_KATECH_Logic_200ms();
	ECU3_CAN_Data_Set_200ms();
	ECU3_CAN_Bypass_200ms();
	ECU3_CAN_Transmit_200ms();
}

void CAN_Task_1000ms(void)
{
	ECU3_InputData_Set_for_Logic_1000ms();
	ECU3_KATECH_Logic_1000ms();
	ECU3_CAN_Data_Set_1000ms();
	ECU3_CAN_Bypass_1000ms();
	ECU3_CAN_Transmit_1000ms();
}

void ECU3_InputData_Set_for_Logic_5ms(void)
{
	/*---------- CH2 ----------*/
	Input_Data_Set_RWA_Status1_CH2_0x072();
	Input_Data_Set_RWA_Status2_CH2_0x073();
	Input_Data_Set_IDB_RegenTcsRequest_CH2_0x082();
    Input_Data_Set_IDB_WheelStatus_CH2_0x08C();
    Input_Data_Set_IDB_Status_CH2_0x092();

    /*---------- CH3 ----------*/
    Input_Data_Set_RWA_Status1_CH3_0x072();
    Input_Data_Set_RWA_Status2_CH3_0x073();
    Input_Data_Set_RCU_WheelStatus_CH3_0x08D();
    Input_Data_Set_RCU_Status_CH3_0x093();

    /*---------- CH4 ----------*/
    Input_Data_Set_RWS_VCU_stat_Signal_CH4_0x072();
    Input_Data_Set_RWS_VCU_Rack_AngleFbk_CH4_0x073();

    /*---------- CH5 ----------*/
    Input_Data_Set_RWS_VCU_stat_Signal_CH5_0x072();
    Input_Data_Set_RWS_VCU_Rack_AngleFbk_CH5_0x073();
}

void ECU3_CAN_Data_Set_5ms(void)
{
	/*---------- CH2 ----------*/
	Output_Data_Set_BSC_IDB_StartupCommand_CH2_0x032();
	Output_Data_Set_BSC_RWA_RackCommand_CH2_0x040();
	Output_Data_Set_BSC_IDB_BrakeCommand_CH2_0x064();
    Output_Data_Set_BSC_RegenCommand_CH2_0x06A();
    Output_Data_Set_IDB_WheelSpeedStatus_CH2_0x088();
    Output_Data_Set_BSC_RWA_StartupCommand_CH2_0x310();
    Output_Data_Set_BSC_RWA_Sister_CH2_0x350();

    /*---------- CH3 ----------*/
    Output_Data_Set_BSC_RCU_StartupCommand_CH3_0x033();
    Output_Data_Set_BSC_RWA_RackCommand_CH3_0x040();
    Output_Data_Set_BSC_RCU_BrakeCommand_CH3_0x065();
    Output_Data_Set_RCU_WheelSpeedStatus_CH3_0x089();
    Output_Data_Set_BSC_RWA_StartupCommand_CH3_0x310();
    Output_Data_Set_BSC_RWA_Sister_CH3_0x350();

    /*---------- CH4 ----------*/
    Output_Data_Set_VCU_RWS_Rack_Cmd_CH4_0x040();
    Output_Data_Set_VCU_RWS_StartupCommand_CH4_0x310();
    Output_Data_Set_VCU_RWS_Sister_CH4_0x350();

    /*---------- CH5 ----------*/
    Output_Data_Set_VCU_RWS_Rack_Cmd_CH5_0x040();
    Output_Data_Set_VCU_RWS_StartupCommand_CH5_0x310();
    Output_Data_Set_VCU_RWS_Sister_CH5_0x350();
}

void ECU3_CAN_Bypass_5ms(void)
{
//	/*---------- CH2 ----------*/
//    Bypass_Data_Set_BSC_RWA_RackCommand_CH2_0x040();

//	/*---------- CH3 ----------*/
//    Bypass_Data_Set_BSC_RWA_RackCommand_CH3_0x040();

//	/*---------- CH4 ----------*/
//    Bypass_Data_Set_VCU_RWS_Rack_Cmd_CH4_0x040();

//	/*---------- CH5 ----------*/
//    Bypass_Data_Set_VCU_RWS_Rack_Cmd_CH5_0x040();
}

void ECU3_CAN_Transmit_5ms(void)
{
	/*---------- CH2 ----------*/
	Transmit_BSC_IDB_StartupCommand_CH2_0x032();
	Transmit_BSC_RWA_RackCommand_CH2_0x040();
    Transmit_BSC_IDB_BrakeCommand_CH2_0x064();
    Transmit_BSC_RegenCommand_CH2_0x06A();
//    Transmit_IDB_WheelSpeedStatus_CH2_0x088();
    Transmit_BSC_RWA_StartupCommand_CH2_0x310();
    Transmit_BSC_RWA_Sister_CH2_0x350();

    /*---------- CH3 ----------*/
    Transmit_BSC_RCU_StartupCommand_CH3_0x033();
    Transmit_BSC_RWA_RackCommand_CH3_0x040();
    Transmit_BSC_RCU_BrakeCommand_CH3_0x065();
//    Transmit_RCU_WheelSpeedStatus_CH3_0x089();
    Transmit_BSC_RWA_StartupCommand_CH3_0x310();
    Transmit_BSC_RWA_Sister_CH3_0x350();

    /*---------- CH4 ----------*/
    Transmit_VCU_RWS_Rack_Cmd_CH4_0x040();
    Transmit_VCU_RWS_StartupCommand_CH4_0x310();
    Transmit_VCU_RWS_Sister_CH4_0x350();

    /*---------- CH5 ----------*/
    Transmit_VCU_RWS_Rack_Cmd_CH5_0x040();
    Transmit_VCU_RWS_StartupCommand_CH5_0x310();
    Transmit_VCU_RWS_Sister_CH5_0x350();
}

void ECU3_InputData_Set_for_Logic_10ms(void)
{
	/*---------- CH0 ----------*/
	Input_Data_Set_RC_VCU_Signal1_CH0_0x040();
	Input_Data_Set_RC_VCU_Signal2_CH0_0x041();
	Input_Data_Set_RC_VCU_BCM_Signal_1_CH0_0x155();
	Input_Data_Set_EPAM_VCU_CH0_0x221();
	Input_Data_Set_MCU_VCU_Signals1_CH0_0x300();
	Input_Data_Set_MCU_VCU_Signals2_CH0_0x301();
	Input_Data_Set_BCM_VCU_Signal1_CH0_0x570();
    Input_Data_Set_BCM_VCU_Signal2_CH0_0x580();
    Input_Data_Set_BCM_VCU_Signal5_CH0_0x585();
    Input_Data_Set_BCM_VCU_Signal3_CH0_0x590();
    Input_Data_Set_BCM_VCU_Signal4_CH0_0x595();

    Input_Data_Set_IMU_TX1_CH0_0x174();
    Input_Data_Set_IMU_TX1_CH0_0x178();
    Input_Data_Set_IMU_TX1_CH0_0x17C();

    /*---------- CH1 ----------*/
    Input_Data_Set_ACU_VCU_Signal1_CH1_0x091();
    Input_Data_Set_ACU_VCU_Signal2_CH1_0x092();
    Input_Data_Set_ACU_VCU_Signal3_CH1_0x093();
    Input_Data_Set_ACU_BCM_Signal_1_CH1_0x151();

    /*---------- CH2 ----------*/
    Input_Data_Set_IDB_TireSlipStatus_CH2_0x096();
    Input_Data_Set_IDB_BrakeStatus1_CH2_0x09A();
    Input_Data_Set_IDB_PressureStatus_CH2_0x0A0();
    Input_Data_Set_IDB_UdsResponse_CH2_0x798();

    /*---------- CH3 ----------*/
    Input_Data_Set_RCU_TireSlipStatus_CH3_0x097();
    Input_Data_Set_RCU_BrakeStatus1_CH3_0x09B();
    Input_Data_Set_RCU_PressureStatus_CH3_0x0A1();
    Input_Data_Set_RCU_UdsResponse_CH3_0x799();
}

void ECU3_CAN_Data_Set_10ms(void)
{
	/*---------- CH0 ----------*/
	Output_Data_Set_VCU_RC_Signals1_CH0_0x010();
	Output_Data_Set_VCU_RC_Signals2_CH0_0x011();
	Output_Data_Set_CAR_STAT_CH0_0x012();
	Output_Data_Set_VCU_RC_Fault_Flag_CH0_0x013();
	Output_Data_Set_TARGET_VALUE_CH0_0x140();
    Output_Data_Set_RWA_VCU_RC_Signal1_CH0_0x050();
    Output_Data_Set_RWA_VCU_RC_Signal2_CH0_0x051();
    Output_Data_Set_RWS_VCU_RC_Signal1_CH0_0x060();
    Output_Data_Set_RWS_VCU_RC_Signal2_CH0_0x061();
    Output_Data_Set_SW_VER_CH0_0x100();
    Output_Data_Set_VCU_BCM_Signal_1_CH0_0x151();
    Output_Data_Set_VCU_BCM_Signal_2_CH0_0x180();
    Output_Data_Set_VCU_EPAM_CH0_0x220();
    Output_Data_Set_VCU_MCU_Signals1_CH0_0x250();

    /*---------- CH1 ----------*/
    Output_Data_Set_VCU_ACU_Signal1_CH1_0x013();
	Output_Data_Set_VCU_ACU_Signal2_CH1_0x014();
	Output_Data_Set_VCU_ACU_Signal3_CH1_0x015();
	Output_Data_Set_TX_VCU_ACU_Fault_Flag_0x017();
	Output_Data_Set_RWA_VCU_ACU_Signal1_CH1_0x050();
	Output_Data_Set_RWA_VCU_ACU_Signal2_CH1_0x051();
	Output_Data_Set_RWS_VCU_ACU_Signal1_CH1_0x060();
	Output_Data_Set_RWS_VCU_ACU_Signal2_CH1_0x061();
	Output_Data_Set_CH1_IMU_TX1_CH1_0x174();
	Output_Data_Set_CH1_IMU_TX2_CH1_0x178();
	Output_Data_Set_CH1_IMU_TX3_CH1_0x17C();
	Output_Data_Set_BCM_VCU_ACU_Signal1_CH1_0x570();
    Output_Data_Set_BCM_VCU_ACU_Signal2_CH1_0x580();
    Output_Data_Set_BCM_VCU_ACU_Signal3_CH1_0x590();
    Output_Data_Set_BCM_VCU_ACU_Signal4_CH1_0x595();
    Output_Data_Set_BCM_VCU_ACU_Signal5_CH1_0x585();
    Output_Data_Set_VCU_245h_CH1_0x245();
	Output_Data_Set_ICM_303h_CH1_0x303();
	Output_Data_Set_CGW_372h_CH1_0x372();
	Output_Data_Set_VCU_3ACh_CH1_0x3AC();
	Output_Data_Set_CGW_588h_CH1_0x588();

    /*---------- CH2 ----------*/
    Output_Data_Set_BSC_IMU_CH2_0x070();
    Output_Data_Set_BSC_IDB_UdsRequest_CH2_0x796();

    /*---------- CH3 ----------*/
    Output_Data_Set_BSC_IMU_CH3_0x071();
    Output_Data_Set_BSC_RCU_UdsRequest_CH3_0x797();
}

void ECU3_CAN_Bypass_10ms(void)
{
    Bypass_Data_Set_RWA_VCU_RC_Signal1_0x050();
    Bypass_Data_Set_RWA_VCU_RC_Signal2_0x051();
    Bypass_Data_Set_RWS_VCU_RC_Signal1_0x060();
    Bypass_Data_Set_RWS_VCU_RC_Signal2_0x061();
//    Bypass_Data_Set_ACU_BCM_Signal_1_CH1_to_CH0_0x151();

    Bypass_Data_Set_BCM_VCU_Signal1_0x570_CH0_to_CH1();
    Bypass_Data_Set_BCM_VCU_Signal2_0x580_CH0_to_CH1();
    Bypass_Data_Set_BCM_VCU_Signal3_0x590_CH0_to_CH1();
    Bypass_Data_Set_BCM_VCU_Signal4_0x595_CH0_to_CH1();
    Bypass_Data_Set_BCM_VCU_Signal5_0x585_CH0_to_CH1();

    Bypass_Data_Set_RWA_VCU_ACU_Signal1_CH3_to_CH1_0x050();
    Bypass_Data_Set_RWA_VCU_ACU_Signal2_CH2_to_CH1_0x051();
    Bypass_Data_Set_RWS_VCU_ACU_Signal1_CH4_to_CH1_0x060();
    Bypass_Data_Set_RWS_VCU_ACU_Signal2_CH5_to_CH1_0x061();


}
void ECU3_CAN_Transmit_10ms(void)
{
	/*---------- CH0 ----------*/
	Transmit_VCU_RC_Signals1_CH0_0x010();
	Transmit_VCU_RC_Signals2_CH0_0x011();
	Transmit_CAR_STAT_CH0_0x012();
	Transmit_VCU_RC_Fault_Flag_CH0_0x013();
    Transmit_RWA_VCU_RC_Signal1_CH0_0x050();
    Transmit_RWA_VCU_RC_Signal2_CH0_0x051();
//    Transmit_RWS_VCU_RC_Signal1_CH0_0x060();
//    Transmit_RWS_VCU_RC_Signal2_CH0_0x061();
    Transmit_SW_VER_CH0_0x100();
    Transmit_VCU_BCM_Signal_1_CH0_0x151();
    Transmit_VCU_BCM_Signal_2_CH0_0x180();
    Transmit_VCU_EPAM_CH0_0x220();
    Transmit_VCU_MCU_Signals1_CH0_0x250(); // �ӽ� ����,�̼����������� ������ �� ���� 0830
    Transmit_TARGET_VALUE_CH0_0x140();

    /*---------- CH1 ----------*/
    Transmit_VCU_ACU_Signal1_CH1_0x013();
	Transmit_VCU_ACU_Signal2_CH1_0x014();
	Transmit_VCU_ACU_Signal3_CH1_0x015();
	Transmit_VCU_ACU_Fault_Flag_CH1_0x017();
    Transmit_RWA_VCU_ACU_Signal2_CH1_0x051();
	Transmit_RWS_VCU_ACU_Signal1_CH1_0x060();
	Transmit_RWS_VCU_ACU_Signal2_CH1_0x061();
    Transmit_RWA_VCU_ACU_Signal1_CH1_0x050();
    Transmit_CH1_IMU_TX1_CH1_0x174();
	Transmit_CH1_IMU_TX2_CH1_0x178();
	Transmit_CH1_IMU_TX3_CH1_0x17C();
    Transmit_BCM_VCU_ACU_Signal1_CH1_0x570();
	Transmit_BCM_VCU_ACU_Signal2_CH1_0x580();
	Transmit_BCM_VCU_ACU_Signal3_CH1_0x590();
	Transmit_BCM_VCU_ACU_Signal5_CH1_0x585();
	Transmit_BCM_VCU_ACU_Signal4_CH1_0x595();
	Transmit_VCU_245h_CH1_0x245();
	Transmit_ICM_303h_CH1_0x303();
	Transmit_CGW_372h_CH1_0x372();
	Transmit_VCU_3ACh_CH1_0x3AC();
	Transmit_CGW_588h_CH1_0x588();

    /*---------- CH2 ----------*/
    Transmit_BSC_IMU_CH2_0x070();
//    Transmit_BSC_IDB_UdsRequest_CH2_0x796();

    /*---------- CH3 ----------*/
    Transmit_BSC_IMU_CH3_0x071();
//    Transmit_BSC_RCU_UdsRequest_CH3_0x797();
}

void ECU3_InputData_Set_for_Logic_20ms(void)
{
	Input_RC_VCU_Fault_Flag_CH0_0x042();
}

void ECU3_CAN_Data_Set_20ms(void)
{

}

void ECU3_CAN_Bypass_20ms(void)
{

}

void ECU3_CAN_Transmit_20ms(void)
{

}

void ECU3_InputData_Set_for_Logic_100ms(void)
{
	/*---------- CH2 ----------*/
    Input_Data_Set_RWA_Status3_CH2_0x0AA();

    /*---------- CH3 ----------*/
    Input_Data_Set_RWA_Status3_CH3_0x0AA();
}

void ECU3_CAN_Data_Set_100ms(void)
{
	/*---------- CH1 ----------*/
	Output_Data_Set_CH1_ACU_CAR_STAT_CH1_0x016();
}

void ECU3_CAN_Bypass_100ms(void)
{

}

void ECU3_CAN_Transmit_100ms(void)
{
	/*---------- CH0 ----------*/

	/*---------- CH1 ----------*/
	Transmit_CH1_ACU_CAR_STAT_CH1_0x016();
}

void ECU3_InputData_Set_for_Logic_200ms(void)
{

}

void ECU3_CAN_Data_Set_200ms(void)
{

}

void ECU3_CAN_Bypass_200ms(void)
{

}

void ECU3_CAN_Transmit_200ms(void)
{

}

void ECU3_InputData_Set_for_Logic_1000ms(void)
{
	/*---------- CH2 ----------*/
	Input_Data_Set_IDB_BrakeStatus2_CH2_0x0C8();

	/*---------- CH3 ----------*/
    Input_Data_Set_RCU_BrakeStatus2_CH3_0x0C9();
}
void ECU3_CAN_Data_Set_1000ms(void)
{
	/*---------- CH2 ----------*/
    Output_Data_Set_BSC_VehicleEnvironment_CH2_0x384();

    /*---------- CH3 ----------*/
    Output_Data_Set_BSC_VehicleEnvironment_CH3_0x385();
}

void ECU3_CAN_Bypass_1000ms(void)
{

}

void ECU3_CAN_Transmit_1000ms(void)
{
	/*---------- CH2 ----------*/
    Transmit_BSC_VehicleEnvironment_CH2_0x384();

    /*---------- CH3 ----------*/
    Transmit_BSC_VehicleEnvironment_CH3_0x385();
}

/*======================================== Receive Data ========================================*/
/*---------------------------------------- CH0 RX ----------------------------------------*/
void Receive_RC_VCU_Signal1_CH0_0x040(void)
{
    ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_BrakeTorqueCommand 		= ((CAN_ch[0].rx.buf[0] >> shift0)
                                         	 	 	 	 		| (CAN_ch[0].rx.buf[1] << shift8)) & _16bit;
    ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_RWA_RackAngleCommand	= ((CAN_ch[0].rx.buf[2] >> shift0)
    															| (CAN_ch[0].rx.buf[3] << shift8)) & _16bit;
    ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_Drive_ACC_Cmd 			= ((CAN_ch[0].rx.buf[4] >> shift0)
                                         	 	 	 	 		| (CAN_ch[0].rx.buf[5] << shift8)) & _16bit;
    ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_Vx_Command  			= (CAN_ch[0].rx.buf[6] >> shift0) & _8bit;
    ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_VCU_counter1 			= (CAN_ch[0].rx.buf[7] >> shift0) & _8bit;
    ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_VCU_CRC1 				= (CAN_ch[0].rx.buf[7] >> shift4) & _4bit;
}

void Receive_RC_VCU_Signal2_CH0_0x041(void)
{
    ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_Drive_Mode 		= (CAN_ch[0].rx.buf[0] >> shift0) & _2bit;
    ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_GearSelStat		= (CAN_ch[0].rx.buf[0] >> shift2) & _4bit;
    ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_ParkBrake_Cmd 	= (CAN_ch[0].rx.buf[0] >> shift6) & _2bit;
    ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_Emergency_Stop 	= (CAN_ch[0].rx.buf[1] >> shift0) & _1bit;
    ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_VCU_long_Ctl_mode = (CAN_ch[0].rx.buf[1] >> shift1) & _2bit;
    ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_VX_Limit 		= (CAN_ch[0].rx.buf[2] >> shift0) & _8bit;
    ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_VCU_ARC 		= (CAN_ch[0].rx.buf[3] >> shift0) & _8bit;
}

void Receive_RC_VCU_Fault_Flag_CH0_0x042(void)
{
    ECU3.RX.CH0_RX_RC_VCU_Fault_Flag_0x042.ACU_Fault_Flag			= CAN_ch[0].rx.buf[0] & _1bit;
    ECU3.RX.CH0_RX_RC_VCU_Fault_Flag_0x042.MCU_Actuator_Fault_Flag	= (CAN_ch[0].rx.buf[0] >> shift1) & _1bit;
	ECU3.RX.CH0_RX_RC_VCU_Fault_Flag_0x042.RWA_Actuator_Fault_Flag	= (CAN_ch[0].rx.buf[0] >> shift6) & _1bit;
}

void Receive_RX_RC_RWA_Fault_mode_0x043(void)
{
    ECU3.RX.CH0_RX_RC_RWA_Fault_mode_0x043.RC_RWA1_CMD 	 		   	= (CAN_ch[0].rx.buf[0] >> shift0) & _1bit;
    ECU3.RX.CH0_RX_RC_RWA_Fault_mode_0x043.RC_RWA2_CMD 	 		   	= (CAN_ch[0].rx.buf[0] >> shift1) & _1bit;
    ECU3.RX.CH0_RX_RC_RWA_Fault_mode_0x043.RC_RWA1_WakeupCommand   	= (CAN_ch[0].rx.buf[0] >> shift2) & _1bit;
    ECU3.RX.CH0_RX_RC_RWA_Fault_mode_0x043.RC_RWA2_WakeupCommand   	= (CAN_ch[0].rx.buf[0] >> shift3) & _1bit;
    ECU3.RX.CH0_RX_RC_RWA_Fault_mode_0x043.RC_RWA1_2_FAULT 	 	   	= (CAN_ch[0].rx.buf[0] >> shift4) & _1bit;
}

void Receive_RX_RC_RWS_Fault_mode_0x044(void)
{
    ECU3.RX.CH0_RX_RC_RWS_Fault_mode_0x044.RC_RWS1_CMD 	 		   	= (CAN_ch[0].rx.buf[0] >> shift0) & _1bit;
    ECU3.RX.CH0_RX_RC_RWS_Fault_mode_0x044.RC_RWS2_CMD 	 		   	= (CAN_ch[0].rx.buf[0] >> shift1) & _1bit;
    ECU3.RX.CH0_RX_RC_RWS_Fault_mode_0x044.RC_RWS1_WakeupCommand   	= (CAN_ch[0].rx.buf[0] >> shift2) & _1bit;
    ECU3.RX.CH0_RX_RC_RWS_Fault_mode_0x044.RC_RWS2_WakeupCommand	= (CAN_ch[0].rx.buf[0] >> shift3) & _1bit;
    ECU3.RX.CH0_RX_RC_RWS_Fault_mode_0x044.RC_RWS1_2_FAULT 	 	   	= (CAN_ch[0].rx.buf[0] >> shift4) & _1bit;
}

void Receive_RX_RC_IDB_RCU_Fault_mode_0x045(void)
{
    ECU3.RX.CH0_RX_RC_IDB_RCU_Fault_mode_0x045.RC_IDB_Fault	 		= (CAN_ch[0].rx.buf[0] >> shift0) & _1bit;
    ECU3.RX.CH0_RX_RC_IDB_RCU_Fault_mode_0x045.RC_RCU_Fault 		= (CAN_ch[0].rx.buf[0] >> shift1) & _1bit;
    ECU3.RX.CH0_RX_RC_IDB_RCU_Fault_mode_0x045.RC_IDB_WakeupCommand	= (CAN_ch[0].rx.buf[0] >> shift2) & _1bit;
    ECU3.RX.CH0_RX_RC_IDB_RCU_Fault_mode_0x045.RC_RCU_WakeupCommand = (CAN_ch[0].rx.buf[0] >> shift3) & _1bit;
}

void Receive_RC_VCU_BCM_Signal_1_CH0_0x155(void)//240227 추�?
{
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_BRAKE_CMD 	= (CAN_ch[0].rx.buf[0] >> shift0) & _2bit;
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_Hazard_CMD 	= (CAN_ch[0].rx.buf[0] >> shift2) & _2bit;
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_HBEAM_CMD 	= (CAN_ch[0].rx.buf[0] >> shift4) & _2bit;
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_Head_CMD 	= (CAN_ch[0].rx.buf[0] >> shift6) & _2bit;
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_LTRN_CMD 	= (CAN_ch[0].rx.buf[1] >> shift0) & _2bit;
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_Reverse_CMD 	= (CAN_ch[0].rx.buf[1] >> shift2) & _2bit;
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_RTRN_CMD 	= (CAN_ch[0].rx.buf[1] >> shift4) & _2bit;
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_Position_CMD	= (CAN_ch[0].rx.buf[1] >> shift6) & _2bit;
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_DRL_CMD 	 	= (CAN_ch[0].rx.buf[2] >> shift0) & _2bit;
    ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Wiper_CMD 		= (CAN_ch[0].rx.buf[2] >> shift2) & _2bit;
}

void Receive_IMU_TX1_CH0_0x174(void)
{
    ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_YawRtVal 		= ((CAN_ch[0].rx.buf[0] >> shift0)
            										| (CAN_ch[0].rx.buf[1] << shift8)) & _16bit;
    ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_CLU_STAT      = (CAN_ch[0].rx.buf[2] >> shift0) & _4bit;
    ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_YAW_RATE_STAT = (CAN_ch[0].rx.buf[2] << shift4) & _4bit;
    ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_TEMP_RATE     = (CAN_ch[0].rx.buf[3] >> shift0) & _8bit;
    ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_AY_Val 		= ((CAN_ch[0].rx.buf[4] >> shift0)
    												| (CAN_ch[0].rx.buf[5] << shift8)) & _16bit;
    ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_MSG_TX1_CNT   = (CAN_ch[0].rx.buf[6] >> shift0) & _4bit;
    ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_AY_STAT       = (CAN_ch[0].rx.buf[6] << shift4) & _4bit;
    ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_TX1_CRC       = (CAN_ch[0].rx.buf[7] >> shift0) & _8bit;
}

void Receive_IMU_TX1_CH0_0x178(void)
{
    ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_RollRtVal 	  	= ((CAN_ch[0].rx.buf[0] >> shift0)
            											| (CAN_ch[0].rx.buf[1] << shift8)) & _16bit;
    ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_CLU_STAT5       	= (CAN_ch[0].rx.buf[2] >> shift0) & _4bit;
    ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_ROLL_RATE_STAT	= (CAN_ch[0].rx.buf[2] << shift4) & _4bit;
    ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_CLU_DIAG        	= (CAN_ch[0].rx.buf[3] >> shift0) & _8bit;
    ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_AX_Val 		  	= ((CAN_ch[0].rx.buf[4] >> shift0)
														| (CAN_ch[0].rx.buf[5] << shift8)) & _16bit;
    ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_MSG_TX2_CNT     	= (CAN_ch[0].rx.buf[6] >> shift0) & _4bit;
    ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_AX_STAT         	= (CAN_ch[0].rx.buf[6] << shift4) & _4bit;
    ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_TX2_CRC         	= (CAN_ch[0].rx.buf[7] >> shift0) & _8bit;
}

void Receive_IMU_TX1_CH0_0x17C(void)
{
    ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_PitchRtVal 	  	= ((CAN_ch[0].rx.buf[0] >> shift0)
            											| (CAN_ch[0].rx.buf[1] << shift8)) & _16bit;
    ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_HW_Index        	= (CAN_ch[0].rx.buf[2] >> shift0) & _4bit;
    ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_PITCH_RATE_STAT	= (CAN_ch[0].rx.buf[2] << shift4) & _4bit;
    ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_AZ_Val 		  	= ((CAN_ch[0].rx.buf[4] >> shift0)
														| (CAN_ch[0].rx.buf[5] << shift8)) & _16bit;
    ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_MSG_TX3_CNT     	= (CAN_ch[0].rx.buf[6] >> shift0) & _4bit;
    ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_AZ_STAT         	= (CAN_ch[0].rx.buf[6] << shift4) & _4bit;
    ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_TX3_CRC         	= (CAN_ch[0].rx.buf[7] >> shift0) & _8bit;
}

void Receive_EPAM_VCU_CH0_0x221(void)
{
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_driveSensor 	 	  	= (CAN_ch[0].rx.buf[0] >> shift0) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_parkSensor 	 		= (CAN_ch[0].rx.buf[0] >> shift1) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_parkLock 	 		= (CAN_ch[0].rx.buf[0] >> shift2) & _3bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_ParkRequestStatus 	= (CAN_ch[0].rx.buf[0] >> shift5) & _2bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_Voltage 	 		  	= (CAN_ch[0].rx.buf[1] >> shift0) & _8bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_Current  			= (CAN_ch[0].rx.buf[2] >> shift0) & _8bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_Temperature 	 	  	= (CAN_ch[0].rx.buf[3] >> shift0) & _8bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_HallPosition 		= (CAN_ch[0].rx.buf[4] >> shift0) & _8bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotStallMiddle    = (CAN_ch[0].rx.buf[5] >> shift0) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotStallUnPark 	= (CAN_ch[0].rx.buf[5] >> shift1) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotStallPark 	  	= (CAN_ch[0].rx.buf[5] >> shift2) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotOpen 		    = (CAN_ch[0].rx.buf[5] >> shift3) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotFail 		 	= (CAN_ch[0].rx.buf[5] >> shift4) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_State 		 		= (CAN_ch[0].rx.buf[5] >> shift5) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_CommErr 		 	= (CAN_ch[0].rx.buf[5] >> shift6) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_HallSenErr 		= (CAN_ch[0].rx.buf[5] >> shift7) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_OT_ECU 		 	= (CAN_ch[0].rx.buf[6] >> shift0) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_CANErr 		 	= (CAN_ch[0].rx.buf[6] >> shift1) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_HallPaternError 	= (CAN_ch[0].rx.buf[6] >> shift2) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_HallTimeOut 		= (CAN_ch[0].rx.buf[6] >> shift3) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_DCBusUnderVoltage	= (CAN_ch[0].rx.buf[6] >> shift4) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_DCBusOverVoltage 	= (CAN_ch[0].rx.buf[6] >> shift5) & _1bit;
	ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_DCBusOverCurrent 	= (CAN_ch[0].rx.buf[6] >> shift6) & _1bit;
}

void Receive_MCU_VCU_Signals1_CH0_0x300(void)
{
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Ready 		= (CAN_ch[0].rx.buf[0] >> shift0) & _1bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Controlable	= (CAN_ch[0].rx.buf[0] >> shift1) & _1bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Flt 			= (CAN_ch[0].rx.buf[0] >> shift2) & _1bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Interlock 	= (CAN_ch[0].rx.buf[0] >> shift3) & _1bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_CurGearSta   = (CAN_ch[0].rx.buf[0] >> shift4) & _3bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_GearStaInv   = (CAN_ch[0].rx.buf[0] >> shift7) & _1bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Derating 	= (CAN_ch[0].rx.buf[1] >> shift0) & _4bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_SvrFlt 		= (CAN_ch[0].rx.buf[1] >> shift4) & _1bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_MtrTemp 		= (CAN_ch[0].rx.buf[2] >> shift0) & _8bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_InvTemp		= (CAN_ch[0].rx.buf[3] >> shift0) & _8bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_EstSpd		= ((CAN_ch[0].rx.buf[4] >> shift0)
                                                        | (CAN_ch[0].rx.buf[5] << shift8)) & _16bit;
    ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_EstTrq       = ((CAN_ch[0].rx.buf[6] >> shift0)
														| (CAN_ch[0].rx.buf[7] << shift8)) & _16bit;
}

void Receive_MCU_VCU_Signals2_CH0_0x301(void)
{
    ECU3.RX.CH0_MCU_VCU_Signals2_0x301.FaultMessage1 = ((CAN_ch[0].rx.buf[0] >> shift0)
                                         	 	 	 | (CAN_ch[0].rx.buf[1] << shift8)
													 | (CAN_ch[0].rx.buf[2] << shift16)
													 | (CAN_ch[0].rx.buf[3] << shift24)) & _32bit;
    ECU3.RX.CH0_MCU_VCU_Signals2_0x301.FaultMessage2 = ((CAN_ch[0].rx.buf[4] >> shift0)
													 | (CAN_ch[0].rx.buf[5] << shift8)
													 | (CAN_ch[0].rx.buf[6] << shift16)
													 | (CAN_ch[0].rx.buf[7] << shift24)) & _32bit;
}

void Receive_BCM_VCU_Signal1_CH0_0x570(void)
{
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_RTRN  		= (CAN_ch[0].rx.buf[0] >> shift0) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_Reverse  	= (CAN_ch[0].rx.buf[0] >> shift2) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_LTRN  		= (CAN_ch[0].rx.buf[0] >> shift4) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_Head  		= (CAN_ch[0].rx.buf[0] >> shift6) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_HBEAM  		= (CAN_ch[0].rx.buf[1] >> shift0) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_Hazard    	= (CAN_ch[0].rx.buf[1] >> shift2) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_BRAKE  		= (CAN_ch[0].rx.buf[1] >> shift4) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Status_Wiper  	= (CAN_ch[0].rx.buf[1] >> shift6) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_Sys_Status   	= (CAN_ch[0].rx.buf[2] >> shift0) & _4bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE1_STA   	= (CAN_ch[0].rx.buf[2] >> shift4) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE2_STA 		= (CAN_ch[0].rx.buf[2] >> shift6) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE3_STA 		= (CAN_ch[0].rx.buf[3] >> shift0) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE4_STA 		= (CAN_ch[0].rx.buf[3] >> shift2) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE5_STA 		= (CAN_ch[0].rx.buf[3] >> shift4) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_MAINSW_STA 	= (CAN_ch[0].rx.buf[3] >> shift6) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Battery_Voltage	= (CAN_ch[0].rx.buf[4] >> shift0) & _8bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.LDC_STA 		    = (CAN_ch[0].rx.buf[5] >> shift0) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_DRL 		    = (CAN_ch[0].rx.buf[5] >> shift4) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_Position 	= (CAN_ch[0].rx.buf[5] >> shift6) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_VCU_counter1  = (CAN_ch[0].rx.buf[7] >> shift0) & _4bit;
    ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_VCU_CRC1 	    = (CAN_ch[0].rx.buf[7] >> shift4) & _4bit;
}

void Receive_BCM_VCU_Signal2_CH0_0x580(void)
{
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.ChargingStatus 	= (CAN_ch[0].rx.buf[0] >> shift0) & _3bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BCM_ChgeCon_DTD 	= (CAN_ch[0].rx.buf[0] >> shift3) & _1bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_HVOn_STA 	    = (CAN_ch[0].rx.buf[0] >> shift5) & _1bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.IntLckSta_OBC 	= (CAN_ch[0].rx.buf[0] >> shift6) & _1bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.IntLckSta_BMS 	= (CAN_ch[0].rx.buf[0] >> shift7) & _1bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOC 			= (CAN_ch[0].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOH 			= (CAN_ch[0].rx.buf[2] >> shift0) & _8bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_OBC 		= (CAN_ch[0].rx.buf[3] >> shift0) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_VCU 		= (CAN_ch[0].rx.buf[3] >> shift2) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_BMS 		= (CAN_ch[0].rx.buf[3] >> shift4) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_LDC 		= (CAN_ch[0].rx.buf[3] >> shift6) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_TMS 		= (CAN_ch[0].rx.buf[4] >> shift0) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOH_INV 		= (CAN_ch[0].rx.buf[4] >> shift4) & _1bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOC_INV 		= (CAN_ch[0].rx.buf[4] >> shift5) & _1bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.Bms_Soc_Wrng 	    = (CAN_ch[0].rx.buf[4] >> shift6) & _1bit;
    ECU3.RX.CH0_BCM_VCU_Signal2_0x580.Bms_SoH_Wrng 	    = (CAN_ch[0].rx.buf[4] >> shift7) & _1bit;
}

void Receive_BCM_VCU_Signal5_CH0_0x585(void)
{
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_FltSta       	= (CAN_ch[0].rx.buf[0] >> shift0) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BMS_FltSta       	= (CAN_ch[0].rx.buf[0] >> shift2) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.LDC_FltSta       	= (CAN_ch[0].rx.buf[0] >> shift4) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BCM_FltSta       	= (CAN_ch[0].rx.buf[0] >> shift6) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BMS_TEMP_FAULT   	= (CAN_ch[0].rx.buf[1] >> shift0) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.LDC_TEMP_FAULT   	= (CAN_ch[0].rx.buf[1] >> shift2) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_TEMP_FAULT	= (CAN_ch[0].rx.buf[1] >> shift4) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.TMS_FltSta    	= (CAN_ch[0].rx.buf[1] >> shift6) & _2bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_TEMP      	= (CAN_ch[0].rx.buf[2] >> shift0) & _8bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.LDC_TEMP      	= (CAN_ch[0].rx.buf[3] >> shift0) & _8bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_ACTL_CUR		= (CAN_ch[0].rx.buf[4] >> shift0) & _8bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_TRGT_CUR  	= (CAN_ch[0].rx.buf[5] >> shift0) & _8bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.User_SoC      	= (CAN_ch[0].rx.buf[6] >> shift0) & _8bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BCM_VCU_counter5	= (CAN_ch[0].rx.buf[7] >> shift0) & _4bit;
    ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BCM_VCU_CRC5     	= (CAN_ch[0].rx.buf[7] >> shift4) & _4bit;
}

void Receive_BCM_VCU_Signal3_CH0_0x590(void)
{
    ECU3.RX.CH0_BCM_VCU_Signal3_0x590.Bms_PackVolt	= ((CAN_ch[0].rx.buf[0] >> shift0)
                                         	 	 	| (CAN_ch[0].rx.buf[1] << shift8)) & _16bit;
    ECU3.RX.CH0_BCM_VCU_Signal3_0x590.Bms_PackCur 	= ((CAN_ch[0].rx.buf[2] >> shift0)
    												| (CAN_ch[0].rx.buf[3] << shift8)) & _16bit;
    ECU3.RX.CH0_BCM_VCU_Signal3_0x590.Bms_PackPwr 	= ((CAN_ch[0].rx.buf[4] >> shift0)
													| (CAN_ch[0].rx.buf[5] << shift8)) & _16bit;
    ECU3.RX.CH0_BCM_VCU_Signal3_0x590.BCM_VCU_counter3 = (CAN_ch[0].rx.buf[7] >> shift0) & _4bit;
    ECU3.RX.CH0_BCM_VCU_Signal3_0x590.BCM_VCU_CRC3  = (CAN_ch[0].rx.buf[7] >> shift4) & _4bit;
}

void Receive_BCM_VCU_Signal4_CH0_0x595(void)
{
    ECU3.RX.CH0_BCM_VCU_Signal4_0x595.LDC_ACTL_CUR 	= (CAN_ch[0].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH0_BCM_VCU_Signal4_0x595.LDC_INP_VOLT	= ((CAN_ch[0].rx.buf[1] >> shift0)
    												| (CAN_ch[0].rx.buf[2] >> shift0))& _10bit;
    ECU3.RX.CH0_BCM_VCU_Signal4_0x595.LDC_ACTL_VOLT = (CAN_ch[0].rx.buf[3] >> shift0) & _8bit;
}

void Receive_Debugging_CH0_0x777(void)
{
    ECU3.RX.CH0_Receive_Debugging_0x777.Logic_BrakeTorqueCommand = (((CAN_ch[0].rx.buf[0] >> shift0)
                                         	 	 	 	 	 	 | (CAN_ch[0].rx.buf[1] << shift8)) & _16bit) * Factor_0_1;
}


/*---------------------------------------- CH1 RX ----------------------------------------*/
void Receive_ACU_VCU_Signal1_CH1_0x091(void)
{
    ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_Vx_Command			= (CAN_ch[1].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_Drive_ACC_Cmd			= ((CAN_ch[1].rx.buf[2] >> shift0)
    															| (CAN_ch[1].rx.buf[3] << shift8)) & _16bit;
    ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_BrakeTorqueCommand	= ((CAN_ch[1].rx.buf[4] >> shift0)
    															| (CAN_ch[1].rx.buf[5] << shift8)) & _16bit;
    ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_VCU_counter1			= (CAN_ch[1].rx.buf[7] >> shift0) & _4bit;
    ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_VCU_CRC1				= (CAN_ch[1].rx.buf[7] >> shift4) & _4bit;
}

void Receive_ACU_VCU_Signal2_CH1_0x092(void)
{
    ECU3.RX.CH1_ACU_VCU_Signal2_0x092.ACU_RWA_cmd_deg	= ((CAN_ch[1].rx.buf[0] >> shift0)
    													| (CAN_ch[1].rx.buf[1] << shift8)) & _16bit;
    ECU3.RX.CH1_ACU_VCU_Signal2_0x092.ACU_RWS_cmd_deg	= ((CAN_ch[1].rx.buf[2] >> shift0)
    													| (CAN_ch[1].rx.buf[3] << shift8)) & _16bit;
    ECU3.RX.CH1_ACU_VCU_Signal2_0x092.ACU_VCU_counter2	= (CAN_ch[1].rx.buf[7] >> shift0) & _4bit;
    ECU3.RX.CH1_ACU_VCU_Signal2_0x092.ACU_VCU_CRC2		= (CAN_ch[1].rx.buf[7] >> shift4) & _4bit;
}

void Receive_ACU_VCU_Signal3_CH1_0x093(void)
{
    ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_Drive_mode 	 	= (CAN_ch[1].rx.buf[0] >> shift0) & _2bit;
    ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_long_Ctl_mode 	= (CAN_ch[1].rx.buf[0] >> shift2) & _2bit;
    ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_EPAM_req 	 	    = (CAN_ch[1].rx.buf[0] >> shift4) & _2bit;
    ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_VCU_GearPos  	    = (CAN_ch[1].rx.buf[0] >> shift6) & _2bit;
    ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_Emergency_Stop	= (CAN_ch[1].rx.buf[1] >> shift0) & _1bit;
    ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_VCU_counter3 	    = (CAN_ch[1].rx.buf[7] >> shift0) & _4bit;
    ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_VCU_CRC3 		    = (CAN_ch[1].rx.buf[7] >> shift4) & _4bit;
}

void Receive_ACU_BCM_Signal_1_CH1_0x151(void)//240227 추�?
{
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_BRAKE_CMD 		= (CAN_ch[1].rx.buf[0] >> shift0) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Hazard_CMD 		= (CAN_ch[1].rx.buf[0] >> shift2) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_HBEAM_CMD 		= (CAN_ch[1].rx.buf[0] >> shift4) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Head_CMD 	 	= (CAN_ch[1].rx.buf[0] >> shift6) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_LTRN_CMD 		= (CAN_ch[1].rx.buf[1] >> shift0) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Reverse_CMD 	= (CAN_ch[1].rx.buf[1] >> shift2) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_RTRN_CMD 		= (CAN_ch[1].rx.buf[1] >> shift4) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Position_CMD	= (CAN_ch[1].rx.buf[1] >> shift6) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_DRL_CMD 	 	= (CAN_ch[1].rx.buf[2] >> shift0) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Wiper_CMD 			= (CAN_ch[1].rx.buf[2] >> shift2) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.LDC_ACT_CMD 		  	= (CAN_ch[1].rx.buf[3] >> shift0) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.HV_ON_CMD 			= (CAN_ch[1].rx.buf[3] >> shift2) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.CE_ON_CMD 			= (CAN_ch[1].rx.buf[3] >> shift6) & _2bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.LDC_TRGT_CUR 		= (CAN_ch[1].rx.buf[4] >> shift0) & _8bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Vcu_OperMode 	 	= (CAN_ch[1].rx.buf[5] >> shift0) & _3bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Vcu_SysMode 			= (CAN_ch[1].rx.buf[5] >> shift3) & _3bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.ACU_VCU_counter 		= (CAN_ch[1].rx.buf[7] >> shift0) & _4bit;
    ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.ACU_VCU_CRC 			= (CAN_ch[1].rx.buf[7] >> shift4) & _4bit;
}


/*---------------------------------------- CH2 RX ----------------------------------------*/
void Receive_RWA_Status1_CH2_0x072(void)
{
    ECU3.RX.CH2_RWA_Status1_0x072.Arc 						= (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH2_RWA_Status1_0x072.Crc 						= (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH2_RWA_Status1_0x072.EcuPowerMode 				= (CAN_ch[2].rx.buf[3] >> shift6) & _2bit;
    ECU3.RX.CH2_RWA_Status1_0x072.EcuRole 					= (CAN_ch[2].rx.buf[3] >> shift4) & _2bit;
    ECU3.RX.CH2_RWA_Status1_0x072.EcuStatus 				= (CAN_ch[2].rx.buf[2] >> shift0) & _4bit;
    ECU3.RX.CH2_RWA_Status1_0x072.MaxMotorOutput 			= (CAN_ch[2].rx.buf[6] >> shift3) & _5bit;
    ECU3.RX.CH2_RWA_Status1_0x072.MaxMotorOutputValid 		= (CAN_ch[2].rx.buf[3] >> shift2) & _1bit;
    ECU3.RX.CH2_RWA_Status1_0x072.RackAngleSpeedFbk 		= ((CAN_ch[2].rx.buf[5] >> shift0)
    														| (CAN_ch[2].rx.buf[4] << shift8)) & _16bit;
    ECU3.RX.CH2_RWA_Status1_0x072.RackAngleSpeedFbkValid	= (CAN_ch[2].rx.buf[3] >> shift3) & _1bit;
    ECU3.RX.CH2_RWA_Status1_0x072.SysInfo 				  	= (CAN_ch[2].rx.buf[2] >> shift4) & _4bit;
    ECU3.RX.CH2_RWA_Status1_0x072.WarningLamp 			  	= (CAN_ch[2].rx.buf[3] >> shift0) & _2bit;
}

void Receive_RWA_Status2_CH2_0x073(void)
{
    ECU3.RX.CH2_RWA_Status2_0x073.Arc 			 	= (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH2_RWA_Status2_0x073.Crc 			 	= (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH2_RWA_Status2_0x073.RackAngleFbk 		= ((CAN_ch[2].rx.buf[3] >> shift0)
    												| (CAN_ch[2].rx.buf[2] << shift8)) & _16bit;
    ECU3.RX.CH2_RWA_Status2_0x073.RackAngleFbkValid	= (CAN_ch[2].rx.buf[6] >> shift0) & _1bit;
    ECU3.RX.CH2_RWA_Status2_0x073.RackForceFbk 		= ((CAN_ch[2].rx.buf[5] >> shift0)
    												| (CAN_ch[2].rx.buf[4] << shift8)) & _16bit;
    ECU3.RX.CH2_RWA_Status2_0x073.RackForceFbkValid = (CAN_ch[2].rx.buf[6] >> shift1) & _1bit;
}

void Receive_IDB_RegenTcsRequest_CH2_0x082(void)
{
    ECU3.RX.CH2_IDB_RegenTcsRequest_0x082.Arc 					= (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_RegenTcsRequest_0x082.Crc 					= (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_RegenTcsRequest_0x082.RbcTargetRegenTorque	= ((CAN_ch[2].rx.buf[3] >> shift0)
    															| (CAN_ch[2].rx.buf[2] << shift8)) & _14bit;
    ECU3.RX.CH2_IDB_RegenTcsRequest_0x082.TcsTorqueCmd 			= ((CAN_ch[2].rx.buf[7] >> shift0)
    															| (CAN_ch[2].rx.buf[6] << shift8)) & _14bit;
}

void Receive_IDB_WheelStatus_CH2_0x08C(void)
{
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.Arc 							= (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.Crc 							= (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.FrontLeftWheelDirection 		= (CAN_ch[2].rx.buf[6] >> shift0) & _2bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.FrontLeftWheelPulse 			= (CAN_ch[2].rx.buf[2] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.FrontLeftWheelPulseValidity 	= (CAN_ch[2].rx.buf[6] >> shift2) & _1bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.FrontLeftWssFault 			= (CAN_ch[2].rx.buf[7] >> shift2) & _1bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.FrontRightWheelDirection 		= (CAN_ch[2].rx.buf[6] >> shift6) & _2bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.FrontRightWheelPulse 			= (CAN_ch[2].rx.buf[3] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.FrontRightWheelPulseValidity 	= (CAN_ch[2].rx.buf[6] >> shift3) & _1bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.FrontRightWssFault 			= (CAN_ch[2].rx.buf[7] >> shift3) & _1bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.RearLeftWheelDirection 		= (CAN_ch[2].rx.buf[7] >> shift0) & _2bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.RearLeftWheelPulse 			= (CAN_ch[2].rx.buf[4] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.RearLeftWheelPulseValidity 	= (CAN_ch[2].rx.buf[6] >> shift4) & _1bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.RearLeftWssFault 				= (CAN_ch[2].rx.buf[7] >> shift4) & _1bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.RearRightWheelDirection 		= (CAN_ch[2].rx.buf[7] >> shift6) & _2bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.RearRightWheelPulse 			= (CAN_ch[2].rx.buf[5] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.RearRightWheelPulseValidity 	= (CAN_ch[2].rx.buf[6] >> shift5) & _1bit;
    ECU3.RX.CH2_IDB_WheelStatus_0x08C.RearRightWssFault 			= (CAN_ch[2].rx.buf[7] >> shift5) & _1bit;
}

void Receive_IDB_Status_CH2_0x092(void)
{
    ECU3.RX.CH2_IDB_Status_0x092.AbsFault 						= (CAN_ch[2].rx.buf[2] >> shift7) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.AbsState 						= (CAN_ch[2].rx.buf[2] >> shift6) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.Arc 							= (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_Status_0x092.BbsFault 						= (CAN_ch[2].rx.buf[2] >> shift5) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.BbsState 						= (CAN_ch[2].rx.buf[2] >> shift4) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.CanCommunicationFault 			= (CAN_ch[2].rx.buf[4] >> shift1) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.Crc 							= (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_Status_0x092.EbdFault 						= (CAN_ch[2].rx.buf[2] >> shift3) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.EbdState 						= (CAN_ch[2].rx.buf[2] >> shift2) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.EpbFault 					 	= (CAN_ch[2].rx.buf[3] >> shift4) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.EpbState 					 	= (CAN_ch[2].rx.buf[3] >> shift5) & _3bit;
    ECU3.RX.CH2_IDB_Status_0x092.EpbTransition 				 	= (CAN_ch[2].rx.buf[5] >> shift4) & _2bit;
    ECU3.RX.CH2_IDB_Status_0x092.EscFault 					 	= (CAN_ch[2].rx.buf[2] >> shift1) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.EscState 					 	= (CAN_ch[2].rx.buf[2] >> shift0) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.EscYawRateThreshold 			= ((CAN_ch[2].rx.buf[6] >> shift0)
    															| (CAN_ch[2].rx.buf[5] << shift8)) & _10bit;
    ECU3.RX.CH2_IDB_Status_0x092.InternalCanCommunicationFault	= (CAN_ch[2].rx.buf[4] >> shift0) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.RbcFault 					 	= (CAN_ch[2].rx.buf[3] >> shift3) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.RbcState 					 	= (CAN_ch[2].rx.buf[3] >> shift2) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.RopFault 					 	= (CAN_ch[2].rx.buf[3] >> shift1) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.RopState 					 	= (CAN_ch[2].rx.buf[3] >> shift0) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.SplitMuDetection 			 	= (CAN_ch[2].rx.buf[5] >> shift6) & _2bit;
    ECU3.RX.CH2_IDB_Status_0x092.SsmFault 					 	= (CAN_ch[2].rx.buf[4] >> shift4) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.SsmState 					 	= (CAN_ch[2].rx.buf[4] >> shift6) & _2bit;
    ECU3.RX.CH2_IDB_Status_0x092.TcsFault 					 	= (CAN_ch[2].rx.buf[4] >> shift3) & _1bit;
    ECU3.RX.CH2_IDB_Status_0x092.TcsState 					 	= (CAN_ch[2].rx.buf[4] >> shift2) & _1bit;
}

void Receive_IDB_TireSlipStatus_CH2_0x096(void)
{
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.Arc 						= (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.Crc 						= (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.FrontLeftTireSlipRatio 	= ((CAN_ch[2].rx.buf[3] >> shift6)
    																| (CAN_ch[2].rx.buf[2] << shift2)) & _10bit;
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.FrontLeftWheelSlipStatus 	= (CAN_ch[2].rx.buf[3] >> shift2) & _2bit;
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.FrontRightTireSlipRatio  	= ((CAN_ch[2].rx.buf[4] >> shift0)
    																| (CAN_ch[2].rx.buf[3] << shift8)) & _10bit;
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.FrontRightWheelSlipStatus	= (CAN_ch[2].rx.buf[3] >> shift4) & _2bit;
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.RearLeftTireSlipRatio 	 	= ((CAN_ch[2].rx.buf[6] >> shift6)
    																| (CAN_ch[2].rx.buf[5] << shift2)) & _10bit;
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.RearLeftWheelSlipStatus 	= (CAN_ch[2].rx.buf[6] >> shift2) & _2bit;
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.RearRightTireSlipRatio  	= ((CAN_ch[2].rx.buf[7] >> shift0)
    																| (CAN_ch[2].rx.buf[6] << shift8)) & _10bit;
    ECU3.RX.CH2_IDB_TireSlipStatus_0x096.RearRightWheelSlipStatus 	= (CAN_ch[2].rx.buf[6] >> shift4) & _2bit;
}

void Receive_IDB_BrakeStatus1_CH2_0x09A(void)
{
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.Arc 		 					= (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.Crc 		 					= (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.EcuRole 	 					= (CAN_ch[2].rx.buf[3] >> shift2) & _2bit;
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.EcuStatus 					= (CAN_ch[2].rx.buf[5] >> shift4) & _4bit;
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.EstimatedVehicleSpeed 		= ((CAN_ch[2].rx.buf[6] >> shift0)
                                             	 	 	 	 	 	| (CAN_ch[2].rx.buf[5] << shift8)) & _10bit;
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.IsControllingEcu 			= (CAN_ch[2].rx.buf[3] >> shift4) & _1bit;
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.MasterCylinderPressure 		= ((CAN_ch[2].rx.buf[4] >> shift0)
                                             	 	 	 	 	 	| (CAN_ch[2].rx.buf[3] << shift8)) & _10bit;
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.RoadFrictionCoefficient 		= (CAN_ch[2].rx.buf[2] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.RoadFrictionCoefficientValid	= (CAN_ch[2].rx.buf[3] >> shift6) & _2bit;
    ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.VehicleSpeedValidity 		= (CAN_ch[2].rx.buf[3] >> shift5) & _1bit;
}

void Receive_IDB_PressureStatus_CH2_0x0A0(void)
{
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.Arc 								= (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.Crc 								= (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.FrontLeftEstimatedPressure			= ((CAN_ch[2].rx.buf[3] >> shift6)
                                             	 	 	 	 	 			| (CAN_ch[2].rx.buf[2] << shift2)) & _10bit;
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.FrontLeftEstimatedPressureValid 	= (CAN_ch[2].rx.buf[3] >> shift2) & _1bit;
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.FrontRightEstimatedPressure 		= ((CAN_ch[2].rx.buf[4] >> shift0)
    																		| (CAN_ch[2].rx.buf[3] << shift8)) & _10bit;
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.FrontRightEstimatedPressureValid 	= (CAN_ch[2].rx.buf[3] >> shift3) & _1bit;
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.RearLeftEstimatedPressure 			= ((CAN_ch[2].rx.buf[6] >> shift6)
    																		| (CAN_ch[2].rx.buf[5] << shift2)) & _10bit;
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.RearLeftEstimatedPressureValid 	= (CAN_ch[2].rx.buf[3] >> shift4) & _1bit;
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.RearRightEstimatedPressure 		= ((CAN_ch[2].rx.buf[7] >> shift0)
																			| (CAN_ch[2].rx.buf[6] << shift8)) & _10bit;
    ECU3.RX.CH2_IDB_PressureStatus_0x0A0.RearRightEstimatedPressureValid 	= (CAN_ch[2].rx.buf[3] >> shift5) & _1bit;
}

void Receive_RWA_Status3_CH2_0x0AA(void)
{
	ECU3.RX.CH2_RWA_Status3_0x0AA.Arc 				= (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
	ECU3.RX.CH2_RWA_Status3_0x0AA.Crc 				= (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
	ECU3.RX.CH2_RWA_Status3_0x0AA.PolFault 		 	= (CAN_ch[2].rx.buf[2] >> shift1) & _1bit;
	ECU3.RX.CH2_RWA_Status3_0x0AA.PolLimiterFlag 	= (CAN_ch[2].rx.buf[4] >> shift3) & _1bit;
	ECU3.RX.CH2_RWA_Status3_0x0AA.PolStatus 		= (CAN_ch[2].rx.buf[2] >> shift0) & _1bit;
	ECU3.RX.CH2_RWA_Status3_0x0AA.PolValue 		 	= (CAN_ch[2].rx.buf[2] >> shift2) & _6bit;
	ECU3.RX.CH2_RWA_Status3_0x0AA.SysBatteryVoltage	= ((CAN_ch[2].rx.buf[4] >> shift4)
													| (CAN_ch[2].rx.buf[3] << shift4)) & _12bit;
	ECU3.RX.CH2_RWA_Status3_0x0AA.SysIqCurrent 		= ((CAN_ch[2].rx.buf[6] >> shift5)
													| (CAN_ch[2].rx.buf[5] << shift3)) & _11bit;
}

void Receive_IDB_BrakeStatus2_CH2_0x0C8(void)
{
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.Arc  					 = (CAN_ch[2].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.BrakeFluidState  		 = (CAN_ch[2].rx.buf[2] >> shift6) & _2bit;
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.Crc  					 = (CAN_ch[2].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.MotorTemperatureWarning   = (CAN_ch[2].rx.buf[2] >> shift5) & _1bit;
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.RearLeftBrakePadState  	 = (CAN_ch[2].rx.buf[2] >> shift2) & _1bit;
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.RearRightBrakePadState    = (CAN_ch[2].rx.buf[2] >> shift3) & _1bit;
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.Reserved3  				 = (CAN_ch[2].rx.buf[5] >> shift4) & _4bit;
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.Reserved4  				 = (CAN_ch[2].rx.buf[5] >> shift0) & _4bit;
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.Reserved5  				 = (CAN_ch[2].rx.buf[4] >> shift4) & _4bit;
    ECU3.RX.CH2_IDB_BrakeStatus2_0x0C8.Reserved6 				 = (CAN_ch[2].rx.buf[4] >> shift0) & _4bit;
}

void Receive_IDB_UdsResponse_CH2_0x798(void)
{
    // ECU3.RX.CH2_IU1_0x799.CH3_I_U_Signal_1_1 = ((CAN_ch[2].rx.buf[7] >> shift0)
    //                                          | (CAN_ch[2].rx.buf[6] << shift8)
    //                                          | (CAN_ch[2].rx.buf[5] << shift16)
    //                                          | (CAN_ch[2].rx.buf[4] << shift24)
    //                                          | (CAN_ch[2].rx.buf[3] << shift32)
    //                                          | (CAN_ch[2].rx.buf[2] << shift40)
    //                                          | (CAN_ch[2].rx.buf[1] << shift48)
    //                                          | (CAN_ch[2].rx.buf[0] << shift56));

    ECU3.RX.CH2_IDB_UdsResponse_0x798.UdsResponse_MSB 	= ((CAN_ch[2].rx.buf[3] << shift0)
														| (CAN_ch[2].rx.buf[2] << shift8)
														| (CAN_ch[2].rx.buf[1] << shift16)
														| (CAN_ch[2].rx.buf[0] << shift24));

    ECU3.RX.CH2_IDB_UdsResponse_0x798.UdsResponse_LSB 	= ((CAN_ch[2].rx.buf[7] >> shift0)
														| (CAN_ch[2].rx.buf[6] << shift8)
														| (CAN_ch[2].rx.buf[5] << shift16)
														| (CAN_ch[2].rx.buf[4] << shift24));
}


/*---------------------------------------- CH3 RX ----------------------------------------*/
void Receive_RWA_Status1_CH3_0x072(void)
{
    ECU3.RX.CH3_RWA_Status1_0x072.Arc  				 		= (CAN_ch[3].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH3_RWA_Status1_0x072.Crc  				 		= (CAN_ch[3].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH3_RWA_Status1_0x072.EcuPowerMode  		 	= (CAN_ch[3].rx.buf[3] >> shift6) & _2bit;
    ECU3.RX.CH3_RWA_Status1_0x072.EcuRole  			 		= (CAN_ch[3].rx.buf[3] >> shift4) & _2bit;
    ECU3.RX.CH3_RWA_Status1_0x072.EcuStatus  			 	= (CAN_ch[3].rx.buf[2] >> shift0) & _4bit;
    ECU3.RX.CH3_RWA_Status1_0x072.MaxMotorOutput  		 	= (CAN_ch[3].rx.buf[6] >> shift3) & _5bit;
    ECU3.RX.CH3_RWA_Status1_0x072.MaxMotorOutputValid 		= (CAN_ch[3].rx.buf[3] >> shift2) & _1bit;
    ECU3.RX.CH3_RWA_Status1_0x072.RackAngleSpeedFbk   		= ((CAN_ch[3].rx.buf[5] >> shift0)
    														| (CAN_ch[3].rx.buf[4] << shift8)) & _16bit;
    ECU3.RX.CH3_RWA_Status1_0x072.RackAngleSpeedFbkValid	= (CAN_ch[3].rx.buf[3] >> shift3) & _1bit;
    ECU3.RX.CH3_RWA_Status1_0x072.SysInfo					= (CAN_ch[3].rx.buf[2] >> shift4) & _4bit;
    ECU3.RX.CH3_RWA_Status1_0x072.WarningLamp 				= (CAN_ch[3].rx.buf[3] >> shift0) & _2bit;
}

void Receive_RWA_Status2_CH3_0x073(void)
{
    ECU3.RX.CH3_RWA_Status2_0x073.Arc				= (CAN_ch[3].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH3_RWA_Status2_0x073.Crc				= (CAN_ch[3].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH3_RWA_Status2_0x073.RackAngleFbk 		= ((CAN_ch[3].rx.buf[3] >> shift0)
    												| (CAN_ch[3].rx.buf[2] << shift8)) & _16bit;
    ECU3.RX.CH3_RWA_Status2_0x073.RackAngleFbkValid	= (CAN_ch[3].rx.buf[6] >> shift0) & _1bit;
    ECU3.RX.CH3_RWA_Status2_0x073.RackForceFbk		= ((CAN_ch[3].rx.buf[5] >> shift0)
    												| (CAN_ch[3].rx.buf[4] << shift8)) & _16bit;
    ECU3.RX.CH3_RWA_Status2_0x073.RackForceFbkValid = (CAN_ch[3].rx.buf[6] >> shift1) & _1bit;

}

void Receive_RCU_Status_CH3_0x093(void)
{
    ECU3.RX.CH3_RCU_Status_0x093.AbsFault						= (CAN_ch[3].rx.buf[2] >> shift7) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.AbsState						= (CAN_ch[3].rx.buf[2] >> shift6) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.Arc							= (CAN_ch[3].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_Status_0x093.BbsFault						= (CAN_ch[3].rx.buf[2] >> shift5) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.BbsState						= (CAN_ch[3].rx.buf[2] >> shift4) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.CanCommunicationFault			= (CAN_ch[3].rx.buf[4] >> shift1) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.Crc							= (CAN_ch[3].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_Status_0x093.EpbFault						= (CAN_ch[3].rx.buf[3] >> shift4) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.EpbState						= (CAN_ch[3].rx.buf[3] >> shift5) & _3bit;
    ECU3.RX.CH3_RCU_Status_0x093.EpbTransition					= (CAN_ch[3].rx.buf[5] >> shift4) & _2bit;
    ECU3.RX.CH3_RCU_Status_0x093.EscFault						= (CAN_ch[3].rx.buf[2] >> shift1) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.EscState						= (CAN_ch[3].rx.buf[2] >> shift0) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.EscYawRateThreshold			= ((CAN_ch[3].rx.buf[6] >> shift0)
    															| (CAN_ch[3].rx.buf[5] << shift8)) & _10bit;
    ECU3.RX.CH3_RCU_Status_0x093.InternalCanCommunicationFault	= (CAN_ch[3].rx.buf[4] >> shift0) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.SplitMuDetSsmFaultection		= (CAN_ch[3].rx.buf[5] >> shift6) & _2bit;
    ECU3.RX.CH3_RCU_Status_0x093.SsmFault						= (CAN_ch[3].rx.buf[4] >> shift4) & _1bit;
    ECU3.RX.CH3_RCU_Status_0x093.SsmState						= (CAN_ch[3].rx.buf[4] >> shift6) & _2bit;
}

void Receive_RCU_TireSlipStatus_CH3_0x097(void)
{
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.Arc						= (CAN_ch[3].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.Crc						= (CAN_ch[3].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.FrontLeftTireSlipRatio		= ((CAN_ch[3].rx.buf[3] >> shift6)
    																| (CAN_ch[3].rx.buf[2] << shift2)) & _10bit;
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.FrontLeftWheelSlipStatus	= (CAN_ch[3].rx.buf[3] >> shift2) & _2bit;
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.FrontRightTireSlipRatio	= ((CAN_ch[3].rx.buf[4] >> shift0)
    																| (CAN_ch[3].rx.buf[3] << shift8)) & _10bit;
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.FrontRightWheelSlipStatus	= (CAN_ch[3].rx.buf[3] >> shift4) & _2bit;
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.RearLeftTireSlipRatio		= ((CAN_ch[3].rx.buf[6] >> shift6)
    																| (CAN_ch[3].rx.buf[5] << shift2)) & _10bit;
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.RearLeftWheelSlipStatus	= (CAN_ch[3].rx.buf[6] >> shift2) & _2bit;
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.RearRightTireSlipRatio		= ((CAN_ch[3].rx.buf[7] >> shift0)
    																| (CAN_ch[3].rx.buf[6] << shift8)) & _10bit;
    ECU3.RX.CH3_RCU_TireSlipStatus_0x097.RearRightWheelSlipStatus	= (CAN_ch[3].rx.buf[6] >> shift4) & _2bit;
}

void Receive_RCU_BrakeStatus1_CH3_0x09B(void)
{
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.Arc 					 		= (CAN_ch[3].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.Crc 					 		= (CAN_ch[3].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.EcuRole 				 		= (CAN_ch[3].rx.buf[3] >> shift2) & _2bit;
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.EcuStatus 			 		= (CAN_ch[3].rx.buf[5] >> shift4) & _4bit;
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.EstimatedVehicleSpeed 		= ((CAN_ch[3].rx.buf[6] >> shift0)
    																| (CAN_ch[3].rx.buf[5] << shift8)) & _10bit;
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.IsControllingEcu 		 	= (CAN_ch[3].rx.buf[3] >> shift4) & _1bit;
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.MasterCylinderPressure 		= ((CAN_ch[3].rx.buf[4] >> shift0)
    																| (CAN_ch[3].rx.buf[3] << shift8)) & _10bit;
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.RoadFrictionCoefficient 		= (CAN_ch[3].rx.buf[2] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.RoadFrictionCoefficientValid	= (CAN_ch[3].rx.buf[3] >> shift6) & _2bit;
    ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.VehicleSpeedValidity 		= (CAN_ch[3].rx.buf[3] >> shift5) & _1bit;
}

void Receive_RCU_PressureStatus_CH3_0x0A1(void)
{
    ECU3.RX.CH3_RCU_PressureStatus_0x0A1.Arc								= (CAN_ch[3].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_PressureStatus_0x0A1.Crc								= (CAN_ch[3].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_PressureStatus_0x0A1.FrontLeftEstimatedPressure			= ((CAN_ch[3].rx.buf[5] >> shift0)
    																		| (CAN_ch[3].rx.buf[4] << shift8)) & _10bit;
    ECU3.RX.CH3_RCU_PressureStatus_0x0A1.FrontLeftEstimatedPressureValid	= (CAN_ch[3].rx.buf[4] >> shift7) & _1bit;
    ECU3.RX.CH3_RCU_PressureStatus_0x0A1.FrontRightEstimatedPressure		= ((CAN_ch[3].rx.buf[3] >> shift0)
    																		| (CAN_ch[3].rx.buf[2] << shift8)) & _10bit;
    ECU3.RX.CH3_RCU_PressureStatus_0x0A1.FrontRightEstimatedPressureValid 	= (CAN_ch[3].rx.buf[2] >> shift7) & _1bit;
}

void Receive_RWA_Status3_CH3_0x0AA(void)
{
    ECU3.RX.CH3_RWA_Status3_0x0AA.Arc				= (CAN_ch[3].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH3_RWA_Status3_0x0AA.Crc				= (CAN_ch[3].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH3_RWA_Status3_0x0AA.PolFault			= (CAN_ch[3].rx.buf[2] >> shift1) & _1bit;
    ECU3.RX.CH3_RWA_Status3_0x0AA.PolLimiterFlag	= (CAN_ch[3].rx.buf[4] >> shift3) & _1bit;
    ECU3.RX.CH3_RWA_Status3_0x0AA.PolStatus			= (CAN_ch[3].rx.buf[2] >> shift0) & _1bit;
    ECU3.RX.CH3_RWA_Status3_0x0AA.PolValue			= (CAN_ch[3].rx.buf[2] >> shift2) & _6bit;
    ECU3.RX.CH3_RWA_Status3_0x0AA.SysBatteryVoltage	= ((CAN_ch[3].rx.buf[4] >> shift4)
    												| (CAN_ch[3].rx.buf[3] << shift4)) & _12bit;
    ECU3.RX.CH3_RWA_Status3_0x0AA.SysIqCurrent		= ((CAN_ch[3].rx.buf[6] >> shift5)
    												| (CAN_ch[3].rx.buf[5] << shift3)) & _11bit;
}

void Receive_RCU_BrakeStatus2_CH3_0x0C9(void)
{
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.Arc						= (CAN_ch[3].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.BrakeFluidState			= (CAN_ch[3].rx.buf[2] >> shift6) & _2bit;
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.Crc						= (CAN_ch[3].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.FrontLeftBrakePadState	= (CAN_ch[3].rx.buf[2] >> shift2) & _1bit;
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.FrontRightBrakePadState	= (CAN_ch[3].rx.buf[2] >> shift3) & _1bit;
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.MotorTemperatureWarning	= (CAN_ch[3].rx.buf[2] >> shift5) & _1bit;
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.Reserved3				= (CAN_ch[3].rx.buf[5] >> shift4) & _4bit;
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.Reserved4				= (CAN_ch[3].rx.buf[5] >> shift0) & _4bit;
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.Reserved5				= (CAN_ch[3].rx.buf[4] >> shift4) & _4bit;
    ECU3.RX.CH3_RCU_BrakeStatus2_0x0C9.Reserved6				= (CAN_ch[3].rx.buf[4] >> shift0) & _4bit;
}

void Receive_RCU_WheelStatus_CH3_0x08D(void)
{
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.Arc							= (CAN_ch[3].rx.buf[1] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.Crc							= (CAN_ch[3].rx.buf[0] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.FrontLeftWheelDirection		= (CAN_ch[3].rx.buf[6] >> shift0) & _2bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.FrontLeftWheelPulse			= (CAN_ch[3].rx.buf[2] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.FrontLeftWheelPulseValidity	= (CAN_ch[3].rx.buf[6] >> shift2) & _1bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.FrontLeftWssFault				= (CAN_ch[3].rx.buf[7] >> shift2) & _1bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.FrontRightWheelDirection		= (CAN_ch[3].rx.buf[6] >> shift6) & _2bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.FrontRightWheelPulse			= (CAN_ch[3].rx.buf[3] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.FrontRightWheelPulseValidity	= (CAN_ch[3].rx.buf[6] >> shift3) & _1bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.FrontRightWssFault			= (CAN_ch[3].rx.buf[7] >> shift3) & _1bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.RearLeftWheelDirection		= (CAN_ch[3].rx.buf[7] >> shift0) & _2bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.RearLeftWheelPulse			= (CAN_ch[3].rx.buf[4] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.RearLeftWheelPulseValidity	= (CAN_ch[3].rx.buf[6] >> shift4) & _1bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.RearLeftWssFault				= (CAN_ch[3].rx.buf[7] >> shift4) & _1bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.RearRightWheelDirection		= (CAN_ch[3].rx.buf[7] >> shift6) & _2bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.RearRightWheelPulse			= (CAN_ch[3].rx.buf[5] >> shift0) & _8bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.RearRightWheelPulseValidity	= (CAN_ch[3].rx.buf[6] >> shift5) & _1bit;
    ECU3.RX.CH3_RCU_WheelStatus_0x08D.RearRightWssFault				= (CAN_ch[3].rx.buf[7] >> shift5) & _1bit;
}

void Receive_RCU_UdsResponse_CH3_0x799(void)
{
    ECU3.RX.CH3_RCU_UdsResponse_0x799.UdsResponse_MSB	= ((CAN_ch[3].rx.buf[3] << shift0)
														| (CAN_ch[3].rx.buf[2] << shift8)
														| (CAN_ch[3].rx.buf[1] << shift16)
														| (CAN_ch[3].rx.buf[0] << shift24));

    ECU3.RX.CH3_RCU_UdsResponse_0x799.UdsResponse_LSB 	= ((CAN_ch[3].rx.buf[7] >> shift0)
														| (CAN_ch[3].rx.buf[6] << shift8)
														| (CAN_ch[3].rx.buf[5] << shift16)
														| (CAN_ch[3].rx.buf[4] << shift24));
}


/*---------------------------------------- CH4 RX ----------------------------------------*/
void Receive_RWS_VCU_stat_Signal_CH4_0x072(void)
{
    ECU3.RX.CH4_RWS_VCU_stat_Signal_0x072.RWS_EcuStatus1			= (CAN_ch[4].rx.buf[2] >> shift0) & _4bit;
    ECU3.RX.CH4_RWS_VCU_stat_Signal_0x072.RWS_RackAngleSpeedFbk1	= ((CAN_ch[4].rx.buf[5] >> shift0)
    																| (CAN_ch[4].rx.buf[4] << shift8)) & _16bit;
}

void Receive_RWS_VCU_Rack_AngleFbk_CH4_0x073(void)
{
    ECU3.RX.CH4_RWS_VCU_Rack_AngleFbk_0x073.RWS_RackAngleFbk1 	= ((CAN_ch[4].rx.buf[3] >> shift0)
    															| (CAN_ch[4].rx.buf[2] << shift8)) & _16bit;
}


/*---------------------------------------- CH5 RX ----------------------------------------*/
void Receive_RWS_VCU_stat_Signal_CH5_0x072(void)
{
    ECU3.RX.CH5_RWS_VCU_stat_Signal_0x072.RWS_EcuStatus2			= (CAN_ch[5].rx.buf[2] >> shift0) & _4bit;
    ECU3.RX.CH5_RWS_VCU_stat_Signal_0x072.RWS_RackAngleSpeedFbk2	= ((CAN_ch[5].rx.buf[5] >> shift0)
    																| (CAN_ch[5].rx.buf[4] << shift8)) & _16bit;
}

void Receive_RWS_VCU_Rack_AngleFbk_CH5_0x073(void)
{
    ECU3.RX.CH5_RWS_VCU_Rack_AngleFbk_0x073.RWS_RackAngleFbk2	= ((CAN_ch[5].rx.buf[3] >> shift0)
    															| (CAN_ch[5].rx.buf[2] << shift8)) & _16bit;
}


/*======================================== Input Data ========================================*/
/*---------------------------------------- CH0 Input ----------------------------------------*/
void Input_Data_Set_RC_VCU_Signal1_CH0_0x040(void)
{
	GV_RC_BrakeTorqueCommand 	= ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_BrakeTorqueCommand * Factor_0_1;
	GV_RC_Vx_Command 			= ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_Vx_Command;
	GV_RC_RWA_RackAngleCommand	= (ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_RWA_RackAngleCommand * Factor_0_02 + Offset_m_655)-0.34;
	GV_RC_VCU_counter1 			= ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_VCU_counter1;
	GV_RC_Drive_ACC_Cmd 		= ECU3.RX.CH0_RC_VCU_Signal1_0x040.RC_Drive_ACC_Cmd * Factor_0_1e05;


}

void Input_Data_Set_RC_VCU_Signal2_CH0_0x041(void)
{
	GV_RC_Drive_Mode        = ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_Drive_Mode;
	GV_RC_GearSelStat       = ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_GearSelStat;
	GV_RC_ParkBrake_Cmd     = ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_ParkBrake_Cmd;
	GV_RC_VCU_long_Ctl_mode = ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_VCU_long_Ctl_mode;
	GV_RC_Emergency_Stop    = ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_Emergency_Stop;
	GV_RC_VX_Limit          = ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_VX_Limit;
	GV_RC_VCU_ARC           = ECU3.RX.CH0_RC_VCU_Signal2_0x041.RC_VCU_ARC;
}

void Input_RC_VCU_Fault_Flag_CH0_0x042(void)
{
	GV_RC_VCU_ACU_Fault_Flag			= ECU3.RX.CH0_RX_RC_VCU_Fault_Flag_0x042.ACU_Fault_Flag;
	GV_RC_VCU_MCU_Actuator_Fault_Flag	= ECU3.RX.CH0_RX_RC_VCU_Fault_Flag_0x042.MCU_Actuator_Fault_Flag;
	GV_RC_VCU_RWA_Actuator_Fault_Flag	= ECU3.RX.CH0_RX_RC_VCU_Fault_Flag_0x042.RWA_Actuator_Fault_Flag;
}

void Input_Data_Set_RC_VCU_BCM_Signal_1_CH0_0x155(void)//240227 추�?
{
	GV_RC_Lamp_BRAKE_CMD 	= ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_BRAKE_CMD;
	GV_RC_Lamp_Hazard_CMD 	= ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_Hazard_CMD;
	GV_RC_Lamp_HBEAM_CMD 	= ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_HBEAM_CMD;
	GV_RC_Lamp_Head_CMD 	= ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_Head_CMD;
	GV_RC_Lamp_LTRN_CMD 	= ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_LTRN_CMD;
	GV_RC_Lamp_Reverse_CMD  = ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_Reverse_CMD;
	GV_RC_Lamp_RTRN_CMD 	= ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_RTRN_CMD;
	GV_RC_Lamp_Position_CMD = ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_Position_CMD;
	GV_RC_Lamp_DRL_CMD 	    = ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Lamp_DRL_CMD;
	GV_RC_Wiper_CMD 		= ECU3.RX.CH0_RC_VCU_BCM_Signal_1_CH0_0x155.Wiper_CMD;
}

void Input_Data_Set_IMU_TX1_CH0_0x174(void)
{
	GV_IMU_YawRtVal 	  	= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_YawRtVal * Factor_0_005 + Offset_m_163_84;
	GV_IMU_CLU_STAT 	  	= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_CLU_STAT;
	GV_IMU_YAW_RATE_STAT	= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_YAW_RATE_STAT;
	GV_IMU_TEMP_RATE 	  	= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_TEMP_RATE + Offset_m_50;
	GV_IMU_AY_Val 		  	= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_AY_Val * Factor_0_00125 + Offset_m_40_957;
	GV_IMU_MSG_TX1_CNT 	  	= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_MSG_TX1_CNT;
	GV_IMU_AY_STAT 		  	= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_AY_STAT;
	GV_IMU_TX1_CRC 	      	= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_TX1_CRC;
}

void Input_Data_Set_IMU_TX1_CH0_0x178(void)
{
	GV_IMU_RollRtVal 		= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_RollRtVal * Factor_0_005 + Offset_m_163_84;
	GV_IMU_CLU_STAT5 		= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_CLU_STAT5;
	GV_IMU_ROLL_RATE_STAT 	= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_ROLL_RATE_STAT;
	GV_IMU_CLU_DIAG 		= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_CLU_DIAG;
	GV_IMU_AX_Val 			= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_AX_Val * Factor_0_00125 + Offset_m_40_957;
	GV_IMU_MSG_TX2_CNT 		= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_MSG_TX2_CNT;
	GV_IMU_AX_STAT 			= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_AX_STAT;
	GV_IMU_TX2_CRC 			= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_TX2_CRC;

}

void Input_Data_Set_IMU_TX1_CH0_0x17C(void)
{
	GV_IMU_PitchRtVal 		= ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_PitchRtVal * Factor_0_005 + Offset_m_163_84;
	GV_IMU_HW_Index 		= ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_HW_Index;
	GV_IMU_PITCH_RATE_STAT	= ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_PITCH_RATE_STAT;
	GV_IMU_AZ_Val 			= ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_AZ_Val * Factor_0_00125 + Offset_m_40_957;
	GV_IMU_MSG_TX3_CNT 		= ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_MSG_TX3_CNT;
	GV_IMU_AZ_STAT 			= ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_AZ_STAT;
	GV_IMU_TX3_CRC 			= ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_TX3_CRC;
}

void Input_Data_Set_EPAM_VCU_CH0_0x221(void)
{
	GV_EPAM_driveSensor 	     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_driveSensor;
	GV_EPAM_parkSensor 	 	     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_parkSensor;
	GV_EPAM_parkLock 	 	     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_parkLock;
	GV_EPAM_ParkRequestStatus    = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_ParkRequestStatus;
	GV_EPAM_Voltage 	 	     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_Voltage * Factor_0_01;
	GV_EPAM_Current  		     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_Current * Factor_0_01;
	GV_EPAM_Temperature 	     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_Temperature + Offset_m_40;
	GV_EPAM_HallPosition 	     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_HallPosition;
	GV_ErrEPAM_MotStallMiddle    = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotStallMiddle;
	GV_ErrEPAM_MotStallUnPark    = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotStallUnPark;
	GV_ErrEPAM_MotStallPark      = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotStallPark;
	GV_ErrEPAM_MotOpen 		     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotOpen;
	GV_ErrEPAM_MotFail 		     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_MotFail;
	GV_EPAM_State 		 	     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_State;
	GV_ErrEPAM_CommErr 		     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_CommErr;
	GV_ErrEPAM_HallSenErr 	     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_HallSenErr;
	GV_ErrEPAM_OT_ECU 		     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_OT_ECU;
	GV_ErrEPAM_CANErr 		     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_CANErr;
	GV_ErrEPAM_HallPaternError   = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_HallPaternError;
	GV_ErrEPAM_HallTimeOut 	     = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_HallTimeOut;
	GV_ErrEPAM_DCBusUnderVoltage = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_DCBusUnderVoltage;
	GV_ErrEPAM_DCBusOverVoltage  = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_DCBusOverVoltage;
	GV_ErrEPAM_DCBusOverCurrent  = ECU3.RX.CH0_RX_EPAM_VCU_0x221.ErrEPAM_DCBusOverCurrent;
}

void Input_Data_Set_MCU_VCU_Signals1_CH0_0x300(void)
{
	GV_MCU_Ready		= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Ready;
	GV_MCU_Controlable	= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Controlable;
	GV_MCU_FltSta		= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Flt;
	GV_MCU_Interlock	= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Interlock;
	GV_MCU_CurGearSta	= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_CurGearSta;
	GV_MCU_GearStaInv	= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_GearStaInv;
	GV_MCU_Derating		= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_Derating;
	GV_MCU_SvrFlt		= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_SvrFlt;
	GV_MCU_MtrTemp		= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_MtrTemp + Offset_m_50;
	GV_MCU_InvTemp		= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_InvTemp + Offset_m_50;
	GV_MCU_RPM			= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_EstSpd + Offset_m_32768;
	GV_MCU_EstTrq		= ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_EstTrq * Factor_0_01 + Offset_m_200;
}

void Input_Data_Set_MCU_VCU_Signals2_CH0_0x301(void)
{

}

void Input_Data_Set_BCM_VCU_Signal1_CH0_0x570(void)
{
	GV_Lamp_Hazard_STA     	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_Hazard ;
	GV_Lamp_Break_STA      	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_BRAKE;
	GV_Lamp_HBEAM_STA      	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_HBEAM;
	GV_Lamp_Head_STA       	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_Head;
	GV_Lamp_LTRN_STA       	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_LTRN;
	GV_Lamp_Reverse_STA    	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_Reverse;
	GV_Lamp_RTRN_STA       	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_RTRN;
	GV_Lamp_Position_STA	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_Position;
	GV_Lamp_DRL_STA        	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Lamp_DRL;
	GV_BCM_Init_Status     	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_Sys_Status;
	GV_LDC_STA             	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.LDC_STA;
	GV_BCM_CE1_STA         	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE1_STA;
	GV_BCM_CE2_STA         	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE2_STA;
	GV_BCM_CE3_STA         	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE3_STA;
	GV_BCM_CE4_STA         	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE4_STA;
	GV_BCM_CE5_STA         	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_CE5_STA;
	GV_VCU_Ignition        	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.BCM_MAINSW_STA;
	GV_Battery_Voltage     	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Battery_Voltage * Factor_0_1;
	GV_Status_Wiper_STA    	= ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Status_Wiper;
}

void Input_Data_Set_BCM_VCU_Signal2_CH0_0x580(void)
{
	GV_ChargingStatus   = ECU3.RX.CH0_BCM_VCU_Signal2_0x580.ChargingStatus;
	GV_BCM_ChgeCon_DTD	= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BCM_ChgeCon_DTD;
	GV_BMS_HVOn_STA     = ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_HVOn_STA;
	GV_OBC_Interlock    = ECU3.RX.CH0_BCM_VCU_Signal2_0x580.IntLckSta_OBC;
	GV_BMS_Interlock    = ECU3.RX.CH0_BCM_VCU_Signal2_0x580.IntLckSta_BMS;
	GV_BMS_SOC 			= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOC;
	GV_BMS_SOH 			= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOH;
	GV_CommSta_OBC 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_OBC;
	GV_CommSta_VCU 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_VCU;
	GV_CommSta_BMS 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_BMS;
	GV_CommSta_LDC 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_LDC;
	GV_CommSta_TMS 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_TMS;
	GV_BMS_SOH_INV 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOH_INV;
	GV_BMS_SOC_INV 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOC_INV;
	GV_Bms_Soc_Wrng 	= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.Bms_Soc_Wrng;
	GV_Bms_SoH_Wrng 	= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.Bms_SoH_Wrng;
}

void Input_Data_Set_BCM_VCU_Signal5_CH0_0x585(void)
{
	//                         = ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_FltSta;
	GV_BMS_FltSta		= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BMS_FltSta;
	GV_LDC_FltSta		= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.LDC_FltSta;
	//                         = ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BCM_FltSta;
	GV_BMS_TEMP_FAULT	= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BMS_TEMP_FAULT;
	GV_LDC_TEMP_FAULT	= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.LDC_TEMP_FAULT;
	//                         = ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_TEMP_FAULT;
	GV_TMS_FltSta		= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.TMS_FltSta;
	GV_OBC_TEMP			= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_TEMP;
	GV_LDC_TEMP			= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.LDC_TEMP;
	GV_OBC_ACTL_CUR		= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_ACTL_CUR;
	GV_OBC_TRGT_CUR		= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_TRGT_CUR;
	GV_User_SoC			= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.User_SoC;
}

void Input_Data_Set_BCM_VCU_Signal3_CH0_0x590(void)
{
	GV_Bms_PackCur	= ECU3.RX.CH0_BCM_VCU_Signal3_0x590.Bms_PackCur * Factor_0_1;
	GV_Bms_PackVolt = ECU3.RX.CH0_BCM_VCU_Signal3_0x590.Bms_PackVolt * Factor_0_1;
	GV_Bms_PackPwr	= ECU3.RX.CH0_BCM_VCU_Signal3_0x590.Bms_PackPwr;
}

void Input_Data_Set_BCM_VCU_Signal4_CH0_0x595(void)
{
	GV_LDC_ACTL_VOLT= ECU3.RX.CH0_BCM_VCU_Signal4_0x595.LDC_ACTL_VOLT;
	GV_LDC_ACTL_CUR	= ECU3.RX.CH0_BCM_VCU_Signal4_0x595.LDC_ACTL_CUR;
}


/*---------------------------------------- CH1 Input ----------------------------------------*/
void Input_Data_Set_ACU_VCU_Signal1_CH1_0x091(void)
{
	GV_ACU_Vx_Command 	 		= ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_Vx_Command;
	GV_ACU_Drive_ACC_Cmd		= ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_Drive_ACC_Cmd * Factor_0_1e05 + Offset_m_327_68;
	GV_ACU_BrakeTorqueCommand	= ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_BrakeTorqueCommand * Factor_0_1;
	GV_ACU_VCU_counter1	 	    = ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_VCU_counter1;
	GV_ACU_VCU_CRC1		 	    = ECU3.RX.CH1_ACU_VCU_Signal1_0x091.ACU_VCU_CRC1;
}

void Input_Data_Set_ACU_VCU_Signal2_CH1_0x092(void)
{
	GV_ACU_RWA_cmd_deg  = ECU3.RX.CH1_ACU_VCU_Signal2_0x092.ACU_RWA_cmd_deg * Factor_0_02 + Offset_m_655;
	GV_ACU_RWS_cmd_deg  = ECU3.RX.CH1_ACU_VCU_Signal2_0x092.ACU_RWS_cmd_deg * Factor_0_02 + Offset_m_655;
	GV_ACU_VCU_counter2	= ECU3.RX.CH1_ACU_VCU_Signal2_0x092.ACU_VCU_counter2;
	GV_ACU_VCU_CRC2 	= ECU3.RX.CH1_ACU_VCU_Signal2_0x092.ACU_VCU_CRC2;
}

void Input_Data_Set_ACU_VCU_Signal3_CH1_0x093(void)
{

	GV_ACU_Drive_mode   	= ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_Drive_mode;
	GV_ACU_long_Ctl_mode 	= ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_long_Ctl_mode;
	GV_ACU_EPAM_req 		= ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_EPAM_req;
	GV_ACU_VCU_GearPos 		= ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_VCU_GearPos;
	GV_ACU_Emergency_Stop 	= ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_Emergency_Stop;
	GV_ACU_VCU_counter3 	= ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_VCU_counter3;
	GV_ACU_VCU_CRC3 		= ECU3.RX.CH1_ACU_VCU_Signal3_0x093.ACU_VCU_CRC3;
}

void Input_Data_Set_ACU_BCM_Signal_1_CH1_0x151(void)
{
	GV_ACU_Lamp_BRAKE_CMD	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_BRAKE_CMD;
	GV_ACU_Lamp_Hazard_CMD	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Hazard_CMD;
	GV_ACU_Lamp_HBEAM_CMD	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_HBEAM_CMD;
	GV_ACU_Lamp_Head_CMD	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Head_CMD;
	GV_ACU_Lamp_LTRN_CMD 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_LTRN_CMD;
	GV_ACU_Lamp_Reverse_CMD	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Reverse_CMD;
	GV_ACU_Lamp_RTRN_CMD	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_RTRN_CMD;
	GV_ACU_Lamp_Position_CMD= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Position_CMD;
	GV_ACU_Lamp_DRL_CMD		= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_DRL_CMD;
	GV_ACU_Wiper_CMD		= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Wiper_CMD;

	GV_ACU_VCU_counter = ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.ACU_VCU_counter;
}


/*---------------------------------------- CH2 Input ----------------------------------------*/
void Input_Data_Set_RWA_Status1_CH2_0x072(void)
{
	GV_RWA1_Arc						= ECU3.RX.CH2_RWA_Status1_0x072.Arc;
	GV_RWA1_VCU_MaxMotorOutput		= ECU3.RX.CH2_RWA_Status1_0x072.MaxMotorOutput * Factor_5;
	GV_RWA1_VCU_RackAngleSpeedFbk	= ECU3.RX.CH2_RWA_Status1_0x072.RackAngleSpeedFbk * Factor_0_05 + Offset_m_1638;
}

void Input_Data_Set_RWA_Status2_CH2_0x073(void)
{
	GV_RWA1_RackAngleFbk = ECU3.RX.CH2_RWA_Status2_0x073.RackAngleFbk * Factor_0_02 + Offset_m_655;
	GV_RWA1_RackForceFbk = ECU3.RX.CH2_RWA_Status2_0x073.RackForceFbk + Offset_m_32767;
}

void Input_Data_Set_IDB_RegenTcsRequest_CH2_0x082(void)
{
	GV_IDB_VCU_RbcTargetRegenTorque	= ECU3.RX.CH2_IDB_RegenTcsRequest_0x082.RbcTargetRegenTorque * Factor_0_25;
	GV_IDB_VCU_TcsTorqueCmd 		= ECU3.RX.CH2_IDB_RegenTcsRequest_0x082.TcsTorqueCmd * Factor_0_25;
}

void Input_Data_Set_IDB_WheelStatus_CH2_0x08C(void)
{

}

void Input_Data_Set_IDB_Status_CH2_0x092(void)
{
	GV_IDB_Arc						= ECU3.RX.CH2_IDB_Status_0x092.Arc;
    GV_IDB_VCU_EscYawRateThreshold	= ECU3.RX.CH2_IDB_Status_0x092.EscYawRateThreshold * Factor_0_1 + Offset_m_51_15;
}

void Input_Data_Set_IDB_TireSlipStatus_CH2_0x096(void)
{
    GV_IDB_VCU_FrontLeftTireSlipRatio	= ECU3.RX.CH2_IDB_TireSlipStatus_0x096.FrontLeftTireSlipRatio * Factor_0_1;
	GV_IDB_VCU_FrontRightTireSlipRatio	= ECU3.RX.CH2_IDB_TireSlipStatus_0x096.FrontRightTireSlipRatio * Factor_0_1;
	GV_IDB_VCU_RearLeftTireSlipRatio	= ECU3.RX.CH2_IDB_TireSlipStatus_0x096.RearLeftTireSlipRatio * Factor_0_1;
	GV_IDB_VCU_RearRightTireSlipRatio	= ECU3.RX.CH2_IDB_TireSlipStatus_0x096.RearRightTireSlipRatio * Factor_0_1;
}

void Input_Data_Set_IDB_BrakeStatus1_CH2_0x09A(void)
{
	GV_IDB_VCU_EstimatedVehicleSpeed	= ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.EstimatedVehicleSpeed * Factor_0_05 + Offset_m_15_15;
	GV_IDB_VCU_MasterCylinderPressure 	= ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.MasterCylinderPressure * Factor_0_15;
	GV_IDB_VCU_RoadFrictionCoefficient 	= ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.RoadFrictionCoefficient * Factor_0_01;

	GV_VCU_Brk_Pressure_Fbk		= ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.MasterCylinderPressure;
	GV_VCU_ACU_Brk_Pressure_Fbk	= ECU3.RX.CH2_IDB_BrakeStatus1_0x09A.MasterCylinderPressure;
}

void Input_Data_Set_IDB_PressureStatus_CH2_0x0A0(void)
{
	GV_IDB_VCU_FrontLeftEstimatedPressure 	= ECU3.RX.CH2_IDB_PressureStatus_0x0A0.FrontLeftEstimatedPressure * Factor_0_15;
	GV_IDB_VCU_FrontRightEstimatedPressure	= ECU3.RX.CH2_IDB_PressureStatus_0x0A0.FrontRightEstimatedPressure * Factor_0_15;
	GV_IDB_VCU_RearLeftEstimatedPressure 	= ECU3.RX.CH2_IDB_PressureStatus_0x0A0.RearLeftEstimatedPressure * Factor_0_15;
	GV_IDB_VCU_RearRightEstimatedPressure 	= ECU3.RX.CH2_IDB_PressureStatus_0x0A0.RearRightEstimatedPressure * Factor_0_15;
}
void Input_Data_Set_RWA_Status3_CH2_0x0AA(void)
{
	GV_RWA1_VCU_PolValue 			= ECU3.RX.CH2_RWA_Status3_0x0AA.PolValue * Factor_0_1 + Offset_m_3_2;
	GV_RWA1_VCU_SysBatteryVoltage 	= ECU3.RX.CH2_RWA_Status3_0x0AA.SysBatteryVoltage * Factor_0_01;
	GV_RWA1_VCU_SysIqCurrent 		= ECU3.RX.CH2_RWA_Status3_0x0AA.SysIqCurrent * Factor_0_1;
}

void Input_Data_Set_IDB_BrakeStatus2_CH2_0x0C8(void)
{

}

void Input_Data_Set_IDB_UdsResponse_CH2_0x798(void)
{

}


/*---------------------------------------- CH3 Input ----------------------------------------*/
void Input_Data_Set_RWA_Status1_CH3_0x072(void)
{
	GV_RWA2_Arc								= ECU3.RX.CH3_RWA_Status1_0x072.Arc;
	GV_RWA2_VCU_CH3_0x072_MaxMotorOutput	= ECU3.RX.CH3_RWA_Status1_0x072.MaxMotorOutput * Factor_5;
    GV_RWA2_VCU_CH3_0x072_RackAngleSpeedFbk	= ECU3.RX.CH3_RWA_Status1_0x072.RackAngleSpeedFbk * Factor_0_05 + Offset_m_1638;
}

void Input_Data_Set_RWA_Status2_CH3_0x073(void)
{
    GV_RWA2_RackAngleFbk = ECU3.RX.CH3_RWA_Status2_0x073.RackAngleFbk * Factor_0_02 + Offset_m_655;
    GV_RWA2_RackForceFbk = ECU3.RX.CH3_RWA_Status2_0x073.RackForceFbk + Offset_m_32767;
}

void Input_Data_Set_RCU_WheelStatus_CH3_0x08D(void)
{

}

void Input_Data_Set_RCU_Status_CH3_0x093(void)
{
	GV_RCU_Arc				= ECU3.RX.CH3_RCU_Status_0x093.Arc;
    GV_EscYawRateThreshold	= ECU3.RX.CH3_RCU_Status_0x093.EscYawRateThreshold * Factor_0_1 + Offset_m_51_15;
}

void Input_Data_Set_RCU_TireSlipStatus_CH3_0x097(void)
{
	GV_RCU_VCU_FrontLeftTireSlipRatio 	= ECU3.RX.CH3_RCU_TireSlipStatus_0x097.FrontLeftTireSlipRatio	* Factor_0_1;
    GV_RCU_VCU_FrontRightTireSlipRatio 	= ECU3.RX.CH3_RCU_TireSlipStatus_0x097.FrontRightTireSlipRatio * Factor_0_1;
    GV_RCU_VCU_RearLeftTireSlipRatio	= ECU3.RX.CH3_RCU_TireSlipStatus_0x097.RearLeftTireSlipRatio * Factor_0_1;
    GV_RCU_VCU_RearRightTireSlipRatio 	= ECU3.RX.CH3_RCU_TireSlipStatus_0x097.RearRightTireSlipRatio * Factor_0_1;
}

void Input_Data_Set_RCU_BrakeStatus1_CH3_0x09B(void)
{
    GV_RCU_VCU_EstimatedVehicleSpeed 	= ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.EstimatedVehicleSpeed * Factor_0_05 + Offset_m_15_15;
    GV_VCU_RCU_Brk_Pressure_Fbk 		= ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.MasterCylinderPressure * Factor_0_15;
    GV_RCU_VCU_RoadFrictionCoefficient 	= ECU3.RX.CH3_RCU_BrakeStatus1_0x09B.RoadFrictionCoefficient * Factor_0_01;
}

void Input_Data_Set_RCU_PressureStatus_CH3_0x0A1(void)
{
    GV_RWA2_FrontLeftEstimatedPressure	= ECU3.RX.CH3_RCU_PressureStatus_0x0A1.FrontLeftEstimatedPressure * Factor_0_15;
    GV_RWA2_FrontRightEstimatedPressure	= ECU3.RX.CH3_RCU_PressureStatus_0x0A1.FrontRightEstimatedPressure * Factor_0_15;
}

void Input_Data_Set_RWA_Status3_CH3_0x0AA(void)
{
	GV_RWA2_PolValue			= ECU3.RX.CH3_RWA_Status3_0x0AA.PolValue * Factor_0_1 + Offset_m_3_2;
	GV_RWA2_SysBatteryVoltage	= ECU3.RX.CH3_RWA_Status3_0x0AA.SysBatteryVoltage * Factor_0_01;
	GV_RWA2_SysIqCurrent		= ECU3.RX.CH3_RWA_Status3_0x0AA.SysIqCurrent * Factor_0_1;
}

void Input_Data_Set_RCU_BrakeStatus2_CH3_0x0C9(void)
{

}

void Input_Data_Set_RCU_UdsResponse_CH3_0x799(void)
{

}


/*---------------------------------------- CH4 Input ----------------------------------------*/
void Input_Data_Set_RWS_VCU_stat_Signal_CH4_0x072(void)
{
	GV_CH0_RWS_RackAngleSpeedFbk1 = ECU3.RX.CH4_RWS_VCU_stat_Signal_0x072.RWS_RackAngleSpeedFbk1 * Factor_0_05 + Offset_m_1638;
}

void Input_Data_Set_RWS_VCU_Rack_AngleFbk_CH4_0x073(void)
{
	GV_CH0_RWS_RackAngleFbk1 = ECU3.RX.CH4_RWS_VCU_Rack_AngleFbk_0x073.RWS_RackAngleFbk1  * Factor_0_02 + Offset_m_655;
}


/*---------------------------------------- CH5 Input ----------------------------------------*/
void Input_Data_Set_RWS_VCU_stat_Signal_CH5_0x072(void)
{
	GV_CH0_RWS_RackAngleFbk2 = ECU3.RX.CH5_RWS_VCU_stat_Signal_0x072.RWS_RackAngleSpeedFbk2 * Factor_0_05 + Offset_m_1638;
}

void Input_Data_Set_RWS_VCU_Rack_AngleFbk_CH5_0x073(void)
{
	GV_CH0_RWS_RackAngleFbk2 = ECU3.RX.CH5_RWS_VCU_Rack_AngleFbk_0x073.RWS_RackAngleFbk2 * Factor_0_02 + Offset_m_655;
}

/*======================================== Output Data ========================================*/
/*---------------------------------------- CH0 Output ----------------------------------------*/
void Output_Data_Set_VCU_RC_Signals1_CH0_0x010(void)
{
    ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_MCU_EstTrq 		 = (unsigned int)round((GV_VCU_MCU_EstTrq - Offset_m_200) / Factor_0_1) & _16bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_RWA_Rack_Fbk 	 	 = (unsigned int)round((GV_VCU_RWA_Rack_Fbk  - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_Brk_Pressure_Fbk   = (unsigned int)round(GV_VCU_Brk_Pressure_Fbk) & _16bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_Vx_Fbk 			 = (unsigned int)round(GV_VCU_Vx_Fbk) & _8bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_Vx_Limit 			 = (unsigned int)round(GV_VCU_Vx_Limit) & _8bit;
}

void Output_Data_Set_VCU_RC_Signals2_CH0_0x011(void)
{
    ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_RC_BMS_SOC 		 = (unsigned int)round(GV_User_SoC) & _8bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_RC_long_Ctl_mode   = (unsigned int)round(GV_VCU_RC_long_Ctl_mode) & _2bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_RC_Emergency_Stop  = (unsigned int)round(GV_VCU_RC_Emergency_Stop) & _1bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_GearSelStat 		 = (unsigned int)round(GV_VCU_GearSelStat) & _2bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_Drive_Mode 		 = (unsigned int)round(GV_VCU_Drive_Mode) & _2bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_ParkBrake_Fbk 	 = (unsigned int)round(GV_VCU_ParkBrake_Fbk) & _2bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_Acc_Limit 	 	 = (unsigned int)round(GV_VCU_Acc_Limit) & _16bit;
    ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_Acc_Fbk 	 		 = (unsigned int)round(GV_VCU_Acc_Fbk) & _16bit;
	ECU3.TX.CH0_VCU_RC_Signals1_0x011.CAR_ChargingStatus 	 = (unsigned int)round(GV_ChargingStatus) & _3bit;
	ECU3.TX.CH0_VCU_RC_Signals1_0x011.CAR_BMS_HVOn_STA   	 = (unsigned int)round(GV_BMS_HVOn_STA) & _1bit;
}

void Output_Data_Set_CAR_STAT_CH0_0x012(void)
{
	ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_Bms_PackVolt 	= (unsigned int)round(GV_Bms_PackVolt / Factor_0_1) & _16bit;
	ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_Bms_PackCur      = (unsigned int)round(GV_Bms_PackCur / Factor_0_1) & _16bit;
	ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_Battery_Voltage	= (unsigned int)round(GV_Battery_Voltage / Factor_0_1) & _16bit;
	ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_LDC_ACTL_VOLT 	= (unsigned int)round(GV_LDC_ACTL_VOLT) & _8bit;
	ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_LDC_ACTL_CUR 	= (unsigned int)round(GV_LDC_ACTL_CUR) & _8bit;
//	ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_ChargingStatus	= (int)(GV_ChargingStatus	) & _3bit;
//	ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_BMS_HVOn_STA		= (int)(GV_BMS_HVOn_STA	) & _1bit;
}

void Output_Data_Set_VCU_RC_Fault_Flag_CH0_0x013(void)
{
	ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.ACU_Fault_Flag			= (unsigned int)GV_VCU_RC_ACU_Fault_Flag & _1bit;
	ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.MCU_Actuator_Fault_Flag	= (unsigned int)GV_VCU_RC_MCU_Actuator_Fault_Flag & _1bit;
	ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.IDB_ECU_Fault_Flag		= (unsigned int)GV_VCU_RC_IDB_ECU_Fault_Flag & _1bit;
	ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.RCU_ECU_Fault_Flag		= (unsigned int)GV_VCU_RC_RCU_ECU_Fault_Flag & _1bit;
	ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.RWA1_ECU_Fault_Flag		= (unsigned int)GV_VCU_RC_RWA1_ECU_Fault_Flag & _1bit;
	ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.RWA2_ECU_Fault_Flag		= (unsigned int)GV_VCU_RC_RWA2_ECU_Fault_Flag & _1bit;
	ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.RWA_Actuator_Fault_Flag	= (unsigned int)GV_VCU_RC_RWA_Actuator_Fault_Flag & _1bit;
	ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.ACU_ECU_Fault_Flag		= (unsigned int)GV_ACU_ECU_Fault_Flag_Master & _1bit;
}

void Output_Data_Set_TARGET_VALUE_CH0_0x140(void)
{
	float Master_Brake = 0; //Manual + Logic Brake
	Master_Brake = GV_RC_BrakeTorqueCommand + GV_Target_IDB_Out;
	ECU3.TX.CH0_TARGET_VALUE_0x140.MCU_Target_Command	 		= (unsigned int)round((GV_Target_MCU_Out - Offset_m_200) / Factor_0_01) & _16bit;
	ECU3.TX.CH0_TARGET_VALUE_0x140.RWA_Target_Command	 		= (unsigned int)round((GV_Target_RWA_Out - Offset_m_655) / Factor_0_02) & _16bit;
	ECU3.TX.CH0_TARGET_VALUE_0x140.IDB_Target_Command	 		= (unsigned int)round(Master_Brake / Factor_0_1) & _16bit;
}

void Output_Data_Set_Debug_VCU_Signal_1_CH0_0x017(void)
{
	ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_IDB_BrakeTorqueCommand	= (unsigned int)round(GV_Master_Brake_Torque_Command / Factor_0_1) & _16bit;
	ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_RWA1_RackAngleCommand 	= (unsigned int)round(GV_RWA_040_RackAngleCmd) & _16bit;
	ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_RWS1_RackAngleCommand	= (unsigned int)round((GV_RWS1_040_RackAngleCmd - Offset_m_655) / Factor_0_02) & _16bit;
	ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_MCU_TorqCommand		= (unsigned int)round((GV_Motor_Torque_Cmd - Offset_m_200) / Factor_0_01) & _16bit;
}

void Output_Data_Set_Debug_VCU_Signal_2_CH0_0x018(void)
{
	ECU3.TX.CH0_Debug_VCU_Signal_2_CH0_0x018.VCU_RCU_BrakeTorqueCommand	= (unsigned int)round(GV_RCU_BrakeTorqueCommand / Factor_0_1) & _16bit;
	ECU3.TX.CH0_Debug_VCU_Signal_2_CH0_0x018.VCU_RWA2_RackAngleCommand	= (unsigned int)round(GV_RWA2_040_RackAngleCmdValid) & _16bit;
	ECU3.TX.CH0_Debug_VCU_Signal_2_CH0_0x018.VCU_RWS2_RackAngleCommand	= (unsigned int)round((GV_RWS2_040_RackAngleCmd - Offset_m_655) / Factor_0_02) & _16bit;
}

void Output_Data_Set_RWA_VCU_RC_Signal1_CH0_0x050(void)
{
    ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_RackAngleFbk1 		= (unsigned int)round((GV_RWA1_RackAngleFbk - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_RackAngleSpeedFbk1	= (unsigned int)round((GV_RWA1_VCU_RackAngleSpeedFbk - Offset_m_1638) / Factor_0_05) & _16bit;
    ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.CAR_ARC 				= (unsigned int)round(GV_CAR_ARC) & _8bit;
    ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_VCU_RC_counter1 	= (unsigned int)round(GV_CH0_RWA_VCU_RC_counter1) & _4bit;
    ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_VCU_RC_CRC1 		= (unsigned int)round(GV_CH0_RWA_VCU_RC_CRC1) & _4bit;
    
}

void Output_Data_Set_RWA_VCU_RC_Signal2_CH0_0x051(void)
{
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_RackAngleFbk2 		= (unsigned int)round((GV_RWA2_RackAngleFbk - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_RackAngleSpeedFbk2	= (unsigned int)round((GV_RWA2_VCU_CH3_0x072_RackAngleSpeedFbk - Offset_m_1638) / Factor_0_05) & _16bit;;
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_VCU_RC_counter2 	= (unsigned int)round(GV_CH0_RWA_VCU_RC_counter2) & _4bit;
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_VCU_RC_CRC2 		= (unsigned int)round(GV_CH0_RWA_VCU_RC_CRC2) & _4bit;
}

void Output_Data_Set_RWS_VCU_RC_Signal1_CH0_0x060(void)
{
    ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_RackAngleFbk1		= (unsigned int)round((GV_CH0_RWS_RackAngleFbk1 - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_RackAngleSpeedFbk1 = (unsigned int)round((GV_CH0_RWS_RackAngleSpeedFbk1 - Offset_m_1638) / Factor_0_05) & _16bit;
    ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_VCU_RC_counter1 	= (unsigned int)round(GV_CH0_RWS_VCU_RC_counter1) & _4bit;
    ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_VCU_RC_CRC1 		= (unsigned int)round(GV_CH0_RWS_VCU_RC_CRC1) & _4bit;
}

void Output_Data_Set_RWS_VCU_RC_Signal2_CH0_0x061(void)
{
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_RackAngleFbk2 		= (unsigned int)round((GV_CH0_RWS_RackAngleFbk2 - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_RackAngleSpeedFbk2	= (unsigned int)round((GV_CH0_RWS_RackAngleSpeedFbk2 - Offset_m_1638) / Factor_0_05) & _16bit;
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_VCU_RC_counter2 	= (unsigned int)round(GV_CH0_RWS_VCU_RC_counter2) & _4bit;
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_VCU_RC_CRC2 		= (unsigned int)round(GV_CH0_RWS_VCU_RC_CRC2) & _4bit;
}

void Output_Data_Set_SW_VER_CH0_0x100(void)
{
	ECU3.TX.CH0_SW_VER_0x100.YEAR 		= (unsigned int)round(GV_YEAR) & _8bit;
	ECU3.TX.CH0_SW_VER_0x100.Month 		= (unsigned int)round(GV_Month) & _8bit;
	ECU3.TX.CH0_SW_VER_0x100.Day 		= (unsigned int)round(GV_Day) & _8bit;
	ECU3.TX.CH0_SW_VER_0x100.Ver 		= (unsigned int)round(GV_Ver) & _8bit;
	ECU3.TX.CH0_SW_VER_0x100.CAR_NUM	= (unsigned int)round(GV_CAR_NUM) & _32bit;
}

void Output_Data_Set_VCU_BCM_Signal_1_CH0_0x151(void)//240227 추�?
{
	// �ƿ�ǲ ������ �۷ι� ���� �ϳ��� �����ϴ� ��� Ž�� �� �̸�����, acu ��� �� �۵� ������ ���� �� ���� �����ؾ���
	//Author : JaeminSong, Date : 0830, Modify Description : ���������� ����Ǿ� ����ϴ� Operation mode �� GV_Operation_Mode�̹Ƿ� GV_VCU_Drive_Mode�� ������

	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.LDC_ACT_CMD 		 = (unsigned int)round(GV_LDC_ACT_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.HV_ON_CMD 		 = (unsigned int)round(GV_HV_ON_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.CE_ON_CMD 		 = (unsigned int)round(GV_CE_ON_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.LDC_TRGT_CUR 	 = (unsigned int)round(GV_LDC_TAGT_CMD) & _8bit;

	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_BRAKE_CMD 	 = (unsigned int)round(GV_Lamp_BRAKE_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Hazard_CMD 	 = (unsigned int)round(GV_Lamp_Hazard_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_HBEAM_CMD 	 = (unsigned int)round(GV_Lamp_HBEAM_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Head_CMD 	 = (unsigned int)round(GV_Lamp_Head_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_LTRN_CMD 	 = (unsigned int)round(GV_Lamp_LTRN_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Reverse_CMD  = (unsigned int)round(GV_Lamp_Reverse_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_RTRN_CMD 	 = (unsigned int)round(GV_Lamp_RTRN_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Position_CMD = (unsigned int)round(GV_Lamp_Position_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_DRL_CMD 	 = (unsigned int)round(GV_Lamp_DRL_CMD) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Wiper_CMD 		 = (unsigned int)round(GV_Wiper_CMD) & _2bit;
}

void Output_Data_Set_VCU_BCM_Signal_2_CH0_0x180(void)//240227 추�?
{

	ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI1_CMD = (unsigned int)round(GV_HMI1_LAMP) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI2_CMD = (unsigned int)round(GV_HMI2_LAMP) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI3_CMD = (unsigned int)round(GV_HMI3_LAMP) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI4_CMD = (unsigned int)round(GV_HMI4_LAMP) & _2bit;
	ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI5_CMD = (unsigned int)round(GV_HMI5_LAMP) & _2bit;
}

void Output_Data_Set_VCU_EPAM_CH0_0x220(void)
{
	ECU3.TX.CH0_VCU_EPAM_0x220.Park_Request_to_EPC = (unsigned int)round(GV_VCU_EPAM_Park_Request_to_EPC) & _8bit;
	ECU3.TX.CH0_VCU_EPAM_0x220.EPAM_ErrClear_State = (unsigned int)round(GV_VCU_EPAM_ErrClear_State) & _8bit;
}

int TEST_TORQ  = 0;
int limit_Speed_Flag = 0;
void Output_Data_Set_VCU_MCU_Signals1_CH0_0x250(void)
{
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_TorqueContol	= (unsigned int)round(GV_VCU_TorqueContol) & _1bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_Ready		= (unsigned int)round(GV_VCU_Ready) & _1bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_ControlMode	= (unsigned int)round(GV_VCU_ControlMode) & _1bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_PwrEnable	= (unsigned int)round(GV_VCU_PwrEnable) & _1bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_GearCmd		= (unsigned int)round(GV_VCU_GearCmd) & _4bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_MtrDir		= (unsigned int)round(GV_VCU_MtrDir) & _2bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_BmsFlt		= (unsigned int)round(GV_VCU_BmsFlt) & _3bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_BmsHvSt		= (unsigned int)round(GV_VCU_BmsHvSt) & _2bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_PosTrqLimit	= (unsigned int)round((GV_VCU_PosTrqLimit - Offset_m_200) / Factor_0_01 ) & _16bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_NegTrqLimit	= (unsigned int)round((GV_VCU_NegTrqLimit - Offset_m_200) / Factor_0_01 ) & _16bit;
    ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_TrqCmd		= (unsigned int)round((GV_Motor_Torque_Cmd - Offset_m_200) / Factor_0_01) & _16bit;
}


/*---------------------------------------- CH1 Output ----------------------------------------*/
void Output_Data_Set_VCU_ACU_Signal1_CH1_0x013(void)
{
    ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_MCU_EstTrq  		= (unsigned int)round((GV_MCU_EstTrq - Offset_m_200) / Factor_0_01) & _16bit;
    ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_RWA_Rack_Fbk		= (unsigned int)round((GV_RWA1_RackAngleFbk - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_Brk_Pressure_Fbk  = (unsigned int)round(GV_VCU_ACU_Brk_Pressure_Fbk) & _16bit;
    ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_long_Ctl_mode 	= (unsigned int)round(GV_VCU_ACU_long_Ctl_mode) & _1bit;
    ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_GearPos 			= (unsigned int)round(GV_VCU_GearSelStat) & _2bit;
    ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_ParkBrake_Fbk 	= (unsigned int)round(GV_VCU_ParkBrake_Fbk) & _2bit;
    ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_Emergency_Stop 	= (unsigned int)round(GV_VCU_ACU_Emergency_Stop) & _1bit;
    ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_ARC1 				= (unsigned int)round(GV_VCU_ACU_ARC1) & _4bit;
    ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_CRC1 				= (unsigned int)round(GV_VCU_ACU_CRC1) & _4bit;
}

void Output_Data_Set_VCU_ACU_Signal2_CH1_0x014(void)
{
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.RWA_Flt			= (unsigned int)round(GV_RWA_Flt) & _4bit;
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.RWS_Flt			= (unsigned int)round(GV_RWS_Flt) & _4bit;
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.IDB_Flt			= (unsigned int)round(GV_IDB_Flt) & _4bit;
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.MCU_Flt			= (unsigned int)round(GV_MCU_Flt) & _1bit;
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.Drive_Mode		= (unsigned int)round(GV_VCU_Drive_Mode) & _2bit;
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_IGN_SIG		= (unsigned int)round(GV_VCU_IGN_SIG) & _2bit;
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_ACU_RC_BMS_SOC= (unsigned int)round(GV_BMS_SOC) & _8bit;
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_ACU_MCU_EstSpd= (unsigned int)round(GV_MCU_RPM - Offset_m_32768) & _16bit;
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_ACU_counter2	= (unsigned int)round(GV_VCU_ACU_counter2) & _4bit;
    ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_ACU_CRC2		= (unsigned int)round(GV_VCU_ACU_CRC2) & _4bit;
}

void Output_Data_Set_VCU_ACU_Signal3_CH1_0x015(void)
{
    ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Vx_Fbk		= (unsigned int)round(GV_VCU_Vx_Fbk) & _8bit;
    ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Vx_Limit		= (unsigned int)round(GV_VCU_Vx_Limit) & _8bit;
    ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Acc_Fbk		= (unsigned int)round(GV_VCU_Acc_Fbk) & _16bit;
    ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Acc_Limit		= (unsigned int)round(GV_VCU_Acc_Limit) & _16bit;
    ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_ACU_counter3	= (unsigned int)round(GV_ACU_VCU_ACU_counter3) & _4bit;
    ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_ACU_CRC3		= (unsigned int)round(GV_ACU_VCU_ACU_CRC3) & _4bit;
}

void Output_Data_Set_CH1_ACU_CAR_STAT_CH1_0x016(void)
{
	ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_MCU_MtrTemp 	     = ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_MtrTemp;
	ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_MCU_InvTemp 	     = ECU3.RX.CH0_MCU_VCU_Signals1_0x300.MCU_InvTemp;
	ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_EPAM_Temperature  = ECU3.RX.CH0_RX_EPAM_VCU_0x221.EPAM_Temperature;
	ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_Battery_Voltage   = ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Battery_Voltage;
	ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_Bms_SoH_Wrng 	 = (unsigned int)round(GV_Bms_SoH_Wrng) & _1bit;
	ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_ChargingStatus 	 = (unsigned int)round(GV_ChargingStatus) & _3bit;
	ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_BMS_HVOn_STA 	 = (unsigned int)round(GV_BMS_HVOn_STA) & _1bit;
	ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_ARC 			     = (unsigned int)round(GV_ACU_CAR_ARC) & _4bit;
	ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_CRC 			     = (unsigned int)round(GV_ACU_CAR_CRC) & _4bit;
}

void Output_Data_Set_TX_VCU_ACU_Fault_Flag_0x017(void)
{
	ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.ACU_Fault_Flag			= (unsigned int)GV_VCU_RC_ACU_Fault_Flag;
	ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.MCU_Actuator_Fault_Flag= (unsigned int)GV_VCU_RC_MCU_Actuator_Fault_Flag;
	ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.IDB_ECU_Fault_Flag		= (unsigned int)GV_VCU_RC_IDB_ECU_Fault_Flag;
	ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.RCU_ECU_Fault_Flag		= (unsigned int)GV_VCU_RC_RCU_ECU_Fault_Flag;
	ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.RWA1_ECU_Fault_Flag	= (unsigned int)GV_VCU_RC_RWA1_ECU_Fault_Flag;
	ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.RWA2_ECU_Fault_Flag	= (unsigned int)GV_VCU_RC_RWA2_ECU_Fault_Flag;
	ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.RWA_Actuator_Fault_Flag= (unsigned int)GV_VCU_RC_RWA_Actuator_Fault_Flag;
	ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.ACU_ECU_Fault_Flag		= (unsigned int)GV_ACU_ECU_Fault_Flag_Master;
}

void Output_Data_Set_RWA_VCU_ACU_Signal1_CH1_0x050(void)
{
    ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_RackAngleFbk 		= (unsigned int)round((GV_RWA_RackAngleFbk1 - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_RackAngleSpeedFbk	= (unsigned int)round((GV_RWA_RackAngleSpeedFbk1 - Offset_m_1638) / Factor_0_05) & _16bit;
    ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_VCU_ACU_counter1 	= (unsigned int)round(GV_RWA_VCU_ACU_counter1) & _4bit;
    ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_VCU_ACU_CRC1 		= (unsigned int)round(GV_RWA_VCU_ACU_CRC1) & _4bit;

}

void Output_Data_Set_RWA_VCU_ACU_Signal2_CH1_0x051(void)
{
    ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_RackAngleFbk 		= (unsigned int)round((GV_RWA_RackAngleFbk2 - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_RackAngleSpeedFbk = (unsigned int)round((GV_RWA_RackAngleSpeedFbk2 - Offset_m_1638) / Factor_0_05) & _16bit;
    ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_VCU_ACU_counter2 	= (unsigned int)round(GV_RWA_VCU_ACU_counter2) & _4bit;
    ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_VCU_ACU_CRC2 		= (unsigned int)round(GV_RWA_VCU_ACU_CRC2) & _4bit;
}

void Output_Data_Set_RWS_VCU_ACU_Signal1_CH1_0x060(void)
{
    ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_RackAngleFbk 		= (unsigned int)round((GV_RWS_RackAngleFbk1 - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_RackAngleSpeedFbk = (unsigned int)round((GV_RWS_RackAngleSpeedFbk1 - Offset_m_1638) / Factor_0_05) & _16bit;
    ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_VCU_ACU_counter1 	= (unsigned int)round(GV_RWS_VCU_ACU_counter1) & _4bit;
    ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_VCU_ACU_CRC1 		= (unsigned int)round(GV_RWS_VCU_ACU_CRC1) & _4bit;
}

void Output_Data_Set_RWS_VCU_ACU_Signal2_CH1_0x061(void)
{
    ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_RackAngleFbk 		= (unsigned int)round((GV_RWS_RackAngleFbk2 - Offset_m_655) / Factor_0_02) & _16bit;
    ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_RackAngleSpeedFbk = (unsigned int)round((GV_RWS_RackAngleSpeedFbk2 - Offset_m_1638) / Factor_0_05) & _16bit;
    ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_VCU_ACU_counter2 	= (unsigned int)round(GV_RWS_VCU_ACU_counter2) & _4bit;
    ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_VCU_ACU_CRC2 		= (unsigned int)round(GV_RWS_VCU_ACU_CRC2) & _4bit;
}

void Output_Data_Set_BSC_IMU_CH2_0x070(void)
{
	ECU3.TX.CH2_BSC_IMU_0x070.Arc 							= (unsigned int)round(GV_IMU_070_Arc) & _8bit;
	ECU3.TX.CH2_BSC_IMU_0x070.Crc 							= (unsigned int)round(GV_IMU_070_Crc) & _8bit;
	ECU3.TX.CH2_BSC_IMU_0x070.LateralAcceleration 			= (unsigned int)round((GV_IMU_070_LateralAcceleration - Offset_m_32) / Factor_0_0625) & _10bit;
	ECU3.TX.CH2_BSC_IMU_0x070.LateralAccelerationValid 	 	= (unsigned int)round(GV_IMU_070_LateralAccelerationValid) & _1bit;
	ECU3.TX.CH2_BSC_IMU_0x070.LongitudinalAcceleration 	 	= (unsigned int)round((GV_IMU_070_LongitudinalAcceleration - Offset_m_32) / Factor_0_0625) & _10bit;
	ECU3.TX.CH2_BSC_IMU_0x070.LongitudinalAccelerationValid	= (unsigned int)round(GV_IMU_070_LongitudinalAccelerationValid) & _1bit;
	ECU3.TX.CH2_BSC_IMU_0x070.VehicleSpeed 				 	= (unsigned int)round((GV_IMU_070_VehicleSpeed - Offset_m_14_95) / Factor_0_01) & _12bit;
	ECU3.TX.CH2_BSC_IMU_0x070.VehicleSpeedValid 			= (unsigned int)round(GV_IMU_070_VehicleSpeedValid) & _1bit;
	ECU3.TX.CH2_BSC_IMU_0x070.VehicleYawRate 				= (unsigned int)round((GV_IMU_070_VehicleYawRate - Offset_m_102_4) / Factor_0_05) & _12bit;
	ECU3.TX.CH2_BSC_IMU_0x070.VehicleYawRateValid 			= (unsigned int)round(GV_IMU_070_VehicleYawRateValid) & _1bit;
}

void Output_Data_Set_CH1_IMU_TX1_CH1_0x174(void)
{
	ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_YawRtVal 			= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_YawRtVal;
	ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_CLU_STAT 			= (unsigned int)round(GV_IMU_CLU_STAT) & _4bit;
	ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_YAW_RATE_STAT 	= (unsigned int)round(GV_IMU_YAW_RATE_STAT) & _4bit;
	ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_TEMP_RATE 		= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_TEMP_RATE;
	ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_AY_Val 			= ECU3.RX.CH0_IMU_TX1_CH0_0x174.IMU_AY_Val;
	ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_MSG_TX1_CNT 		= (unsigned int)round(GV_IMU_MSG_TX1_CNT) & _4bit;
	ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_AY_STAT 			= (unsigned int)round(GV_IMU_AY_STAT) & _4bit;
	ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_TX1_CRC 			= (unsigned int)round(GV_IMU_TX1_CRC) & _8bit;
}

void Output_Data_Set_CH1_IMU_TX2_CH1_0x178(void)
{
	ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_RollRtVal 		= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_RollRtVal;
	ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_CLU_STAT5 		= (unsigned int)round(GV_IMU_CLU_STAT5) & _4bit;
	ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_ROLL_RATE_STAT	= (unsigned int)round(GV_IMU_ROLL_RATE_STAT) & _4bit;
	ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_CLU_DIAG 			= (unsigned int)round(GV_IMU_CLU_DIAG) & _8bit;
	ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_AX_Val 			= ECU3.RX.CH0_IMU_TX2_CH0_0x178.IMU_AX_Val;
	ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_MSG_TX2_CNT 		= (unsigned int)round(GV_IMU_MSG_TX2_CNT) & _4bit;
	ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_AX_STAT 			= (unsigned int)round(GV_IMU_AX_STAT) & _4bit;
	ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_TX2_CRC 			= (unsigned int)round(GV_IMU_TX2_CRC) & _8bit;
}

void Output_Data_Set_CH1_IMU_TX3_CH1_0x17C(void)
{
	ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_PitchRtVal 		= ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_PitchRtVal;
	ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_HW_Index 			= (unsigned int)round(GV_IMU_HW_Index) & _4bit;
	ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_PITCH_RATE_STAT	= (unsigned int)round(GV_IMU_PITCH_RATE_STAT) & _4bit;
	ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_AZ_Val 			= ECU3.RX.CH0_IMU_TX3_CH0_0x17C.IMU_AZ_Val;
	ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_MSG_TX3_CNT 		= (unsigned int)round(GV_IMU_MSG_TX3_CNT) & _4bit;
	ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_AZ_STAT 			= (unsigned int)round(GV_IMU_AZ_STAT) & _4bit;
	ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_TX3_CRC 			= (unsigned int)round(GV_IMU_TX3_CRC) & _8bit;
}

void Output_Data_Set_BCM_VCU_ACU_Signal1_CH1_0x570(void)
{
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_RTRN 		 = (unsigned int)round(GV_Lamp_RTRN_STA)  & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_Reverse 	 = (unsigned int)round(GV_Lamp_Reverse_STA)  & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_LTRN 		 = (unsigned int)round(GV_Lamp_LTRN_STA)  & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_Head 		 = (unsigned int)round(GV_Lamp_Head_STA)  & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_HBEAM 		 = (unsigned int)round(GV_Lamp_HBEAM_STA)  & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_Hazard 		 = (unsigned int)round(GV_Lamp_Hazard_STA)  & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_BRAKE 		 = (unsigned int)round(GV_Lamp_Break_STA)  & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Status_Wiper 	 = (unsigned int)round(GV_Status_Wiper_STA)  & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE1_STA 		 = (unsigned int)round(GV_Lamp_DRL_STA)  & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE2_STA 		 = (unsigned int)round(GV_Lamp_DRL_STA) & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE3_STA 		 = (unsigned int)round(GV_Lamp_DRL_STA) & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE4_STA 		 = (unsigned int)round(GV_Lamp_DRL_STA) & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE5_STA 		 = (unsigned int)round(GV_Lamp_DRL_STA) & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_MAINSW_STA    = (unsigned int)round(GV_VCU_Ignition) & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Battery_Voltage   = ECU3.RX.CH0_BCM_VCU_Signal1_0x570.Battery_Voltage;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_DRL 		 = (unsigned int)round(GV_Lamp_DRL_STA) & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_Position 	 = (unsigned int)round(GV_Lamp_Position_STA) & _2bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_VCU_counter1  = (unsigned int)round(GV_ACU_BCM_VCU_counter1) & _4bit;
     ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_VCU_CRC1 	 = (unsigned int)round(GV_ACU_BCM_VCU_CRC1) & _4bit;
}

void Output_Data_Set_BCM_VCU_ACU_Signal2_CH1_0x580(void)
{
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.ChargingStatus 	= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.ChargingStatus;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BCM_ChgeCon_DTD 	= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BCM_ChgeCon_DTD;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_HVOn_STA 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_HVOn_STA;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.IntLckSta_OBC 	= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.IntLckSta_OBC;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.IntLckSta_BMS 	= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.IntLckSta_BMS;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_SOC 			= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOC;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_SOH 			= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOH;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_OBC 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_OBC;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_VCU 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_VCU;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_BMS 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_BMS;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_LDC 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_LDC;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_TMS 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.CommSta_TMS;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_SOH_INV 		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOH_INV;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_SOC_INV		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.BMS_SOC_INV;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.Bms_Soc_Wrng		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.Bms_Soc_Wrng;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.Bms_SoH_Wrng		= ECU3.RX.CH0_BCM_VCU_Signal2_0x580.Bms_SoH_Wrng;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BCM_VCU_counter2	= (unsigned int)round(GV_BCM_VCU_counter2) & _4bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BCM_VCU_CRC2 	 	= (unsigned int)round(GV_BCM_VCU_CRC2) & _4bit;
}

void Output_Data_Set_BCM_VCU_ACU_Signal5_CH1_0x585(void)
{
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.OBC_FltSta 		 = (unsigned int)round(GV_ACU_OBC_FltSta) & _2bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BMS_FltSta 		 = (unsigned int)round(GV_ACU_BMS_FltSta) & _2bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.LDC_FltSta 		 = (unsigned int)round(GV_ACU_LDC_FltSta) & _2bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BCM_FltSta 		 = (unsigned int)round(GV_ACU_BCM_FltSta) & _2bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BMS_TEMP_FAULT 	 = (unsigned int)round(GV_ACU_BMS_TEMP_FAULT) & _2bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.LDC_TEMP_FAULT 	 = (unsigned int)round(GV_ACU_LDC_TEMP_FAULT) & _2bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.OBC_TEMP_FAULT 	 = (unsigned int)round(GV_ACU_OBC_TEMP_FAULT) & _2bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BCM_VCU_counter5   = (unsigned int)round(GV_ACU_BCM_VCU_counter5) & _4bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BCM_VCU_CRC5 	     = (unsigned int)round(GV_ACU_BCM_VCU_CRC5) & _4bit;
}

void Output_Data_Set_BCM_VCU_ACU_Signal3_CH1_0x590(void)
{
    ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.Bms_PackVolt		= (unsigned int)round(GV_Bms_PackVolt / Factor_0_1) & _16bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.Bms_PackCur		= (unsigned int)round(GV_Bms_PackCur / Factor_0_1) & _16bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.Bms_PackPwr 		= (unsigned int)round(GV_Bms_PackPwr / Factor_0_1) & _16bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.BCM_VCU_counter3	= (unsigned int)round(GV_BCM_VCU_counter3) & _4bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.BCM_VCU_CRC3		= (unsigned int)round(GV_BCM_VCU_CRC3) & _4bit;
}

void Output_Data_Set_BCM_VCU_ACU_Signal4_CH1_0x595(void)
{
	//---�����н� �Լ��� ��ü��----//
    ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.LDC_ACTL_CUR 	    = ECU3.RX.CH0_BCM_VCU_Signal4_0x595.LDC_ACTL_CUR;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.LDC_INP_VOLT      = ECU3.RX.CH0_BCM_VCU_Signal4_0x595.LDC_INP_VOLT;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.LDC_ACTL_VOLT		= ECU3.RX.CH0_BCM_VCU_Signal4_0x595.LDC_ACTL_VOLT;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.BCM_VCU_counter4  = (unsigned int)round(GV_BCM_VCU_counter4) & _4bit;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.BCM_VCU_CRC4      = (unsigned int)round(GV_BCM_VCU_CRC4) & _4bit;
}

void Output_Data_Set_VCU_245h_CH1_0x245(void)
{
	ECU3.TX.CH1_VCU_245h_0x245.VCU_Ready		= (unsigned int)GV_VCU_Ready & _2bit;
	ECU3.TX.CH1_VCU_245h_0x245.DrivingPosition	= (unsigned int)GV_VCU_GearSelStat & _3bit;
}

void Output_Data_Set_ICM_303h_CH1_0x303(void)
{
	ECU3.TX.CH1_ICM_303h_0x303.Speed_Combi = (unsigned int)GV_VCU_Vx_Fbk & _10bit;
}

void Output_Data_Set_CGW_372h_CH1_0x372(void)
{
	ECU3.TX.CH1_CGW_372h_0x372.WelcomeSoundCmd = (unsigned int)GV_WelcomeSoundCmd & _2bit;
	ECU3.TX.CH1_CGW_372h_0x372.GoodbyeSoundCmd = (unsigned int)GV_GoodbyeSoundCmd & _2bit;
}

void Output_Data_Set_VCU_3ACh_CH1_0x3AC(void)
{
	ECU3.TX.CH1_VCU_3ACh_0x3AC.Charging_Sts_IND = (unsigned int)GV_Charging_Sts_IND & _3bit;
}

void Output_Data_Set_CGW_588h_CH1_0x588(void)
{
	ECU3.TX.CH1_CGW_588h_VC_0x588.VC_DOM = (unsigned int)GV_VC_DOM & _4bit;
}


/*---------------------------------------- CH2 Output ----------------------------------------*/


void Output_Data_Set_BSC_IDB_BrakeCommand_CH2_0x064(void)
{
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.Arc 						 = (unsigned int)round(GV_IDB_064_Arc) & _8bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.BrakeHoldRequest 		 = (unsigned int)round(GV_BrakeHoldRequest) & _1bit;
//    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.BrakeTorqueCommand 		 = (unsigned int)round(GV_BrakeTorqueCommand / Factor_0_1) & _16bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.BrakeTorqueCommand 		 = (unsigned int)round(GV_IDB_BrakeTorqueCommand / Factor_0_1) & _16bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.Crc 						 = (unsigned int)round(GV_IDB_064_Crc) & _8bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.DriveTorqueCommand 		 = (unsigned int)round(GV_DriveTorqueCommand / Factor_0_25) & _14bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.DriveTorqueCommandValid 	 = (unsigned int)round(GV_DriveTorqueCommandValid) & _1bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.EscActivation 			 = (unsigned int)round(GV_EscActivation) & _1bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.GearPosition 			 = (unsigned int)round(GV_VCU_GearSelStat) & _2bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.ParkBrakeRequest 		 = (unsigned int)round(GV_ParkBrakeRequest) & _2bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.PowertrainMode 			 = (unsigned int)round(GV_PowertrainMode) & _1bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.RbcActivation 			 = (unsigned int)round(GV_RbcActivation) & _1bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.Reserved1 				 = (unsigned int)round(GV_Reserved1) & _1bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.Reserved2 				 = (unsigned int)round(GV_Reserved2) & _2bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.RopActivation 			 = (unsigned int)round(GV_RopActivation) & _1bit;
    ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.TcsActivation 			 = (unsigned int)round(GV_TcsActivation) & _1bit;
}


void Output_Data_Set_BSC_IDB_StartupCommand_CH2_0x032(void)
{
    ECU3.TX.CH2_BSC_IDB_StartupCommand_0x032.Arc 			 = (unsigned int)(GV_IDB_032_Arc) & _8bit;
    ECU3.TX.CH2_BSC_IDB_StartupCommand_0x032.Crc 			 = (unsigned int)(GV_IDB_032_Crc) & _8bit;
    ECU3.TX.CH2_BSC_IDB_StartupCommand_0x032.WakeUpCommand 	 = (unsigned int)(GV_IDB_032_WakeUpCommand) & _1bit;
}

void Output_Data_Set_BSC_RWA_RackCommand_CH2_0x040(void)
{
	ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.Arc 				= (unsigned int)(GV_RWA_040_Arc) & _8bit;
	ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.Crc 				= (unsigned int)(GV_RWA_040_Crc) & _8bit;
	ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.RackAngleCmd 		= (unsigned int)round((GV_RWA_040_RackAngleCmd - Offset_m_655) / Factor_0_02) & _16bit;
	ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.RackAngleCmdValid	= (unsigned int)(GV_RWA_040_RackAngleCmdValid) & _1bit;
}

void Output_Data_Set_BSC_RegenCommand_CH2_0x06A(void)
{
    ECU3.TX.CH2_BSC_RegenCommand_0x06A.ActualMotorTorque 			= (unsigned int)(GV_BSC_06A_ActualMotorTorque / Factor_0_25) & _14bit;
    ECU3.TX.CH2_BSC_RegenCommand_0x06A.ActualMotorTorqueValid 		= (unsigned int)(GV_BSC_06A_ActualMotorTorqueValid) & _1bit;
    ECU3.TX.CH2_BSC_RegenCommand_0x06A.Arc 							= (unsigned int)(GV_BSC_06A_Arc) & _8bit;
    ECU3.TX.CH2_BSC_RegenCommand_0x06A.Crc 							= (unsigned int)(GV_BSC_06A_Crc) & _8bit;
    ECU3.TX.CH2_BSC_RegenCommand_0x06A.MaxAvailableRegenTorque 		= (unsigned int)(GV_BSC_06A_MaxAvailableRegenTorque / Factor_0_25) & _14bit;
    ECU3.TX.CH2_BSC_RegenCommand_0x06A.MaxAvailableRegenTorqueValid	= (unsigned int)(GV_BSC_06A_MaxAvailableRegenTorqueValid) & _1bit;
    ECU3.TX.CH2_BSC_RegenCommand_0x06A.TractionMotorFault 			= (unsigned int)(GV_BSC_06A_TractionMotorFault) & _1bit;

}

void Output_Data_Set_BSC_RWA_StartupCommand_CH2_0x310(void)
{
    ECU3.TX.CH2_BSC_RWA_StartupCommand_0x310.Arc 			= (unsigned int)(GV_RWA_310_Arc) & _8bit;
    ECU3.TX.CH2_BSC_RWA_StartupCommand_0x310.Crc 			= (unsigned int)(GV_RWA_310_Crc) & _8bit;
    ECU3.TX.CH2_BSC_RWA_StartupCommand_0x310.ModeCommand 	= (unsigned int)(GV_RWA_310_ModeCommand) & _1bit;
    ECU3.TX.CH2_BSC_RWA_StartupCommand_0x310.WakeUpCommand	= (unsigned int)(GV_RWA_310_WakeupCommand) & _1bit;
}

void Output_Data_Set_BSC_RWA_Sister_CH2_0x350(void)
{
    ECU3.TX.CH2_BSC_RWA_Sister_0x350.Arc 			= (unsigned int)(GV_RWA_350_Arc) & _8bit;
    ECU3.TX.CH2_BSC_RWA_Sister_0x350.Crc 			= (unsigned int)(GV_RWA_350_Crc) & _8bit;
    ECU3.TX.CH2_BSC_RWA_Sister_0x350.EcuPowerMode	= (unsigned int)(GV_RWA_350_EcuPowerMode) & _2bit;
    ECU3.TX.CH2_BSC_RWA_Sister_0x350.EcuRole 		= (unsigned int)(GV_RWA_350_EcuRole) & _2bit;
    ECU3.TX.CH2_BSC_RWA_Sister_0x350.EcuStatus 	 	= (unsigned int)(GV_RWA_350_EcuStatus) & _4bit;

}

void Output_Data_Set_BSC_VehicleEnvironment_CH2_0x384(void)
{
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.Arc 							= (unsigned int)(GV_Env_384_Arc) & _8bit;
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.Crc 							= (unsigned int)(GV_Env_384_Crc) & _8bit;
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.EnvironmentTemperature 		= (unsigned int)((GV_Env_384_EnvironmentTemperature - Offset_m_50) / Factor_0_5) & _8bit;
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.EnvironmentTemperatureValid	= (unsigned int)(GV_Env_384_EnvironmentTemperatureValid) & _1bit;
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampDay 					= (unsigned int)(GV_Env_384_TimestampDay) & _5bit;
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampHour 					= (unsigned int)(GV_Env_384_TimestampHour) & _5bit;
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampMinute 				= (unsigned int)(GV_Env_384_TimestampMinute) & _6bit;
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampMonth 				= (unsigned int)(GV_Env_384_TimestampMonth) & _4bit;
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampSecond 				= (unsigned int)(GV_Env_384_TimestampSecond) & _6bit;
    ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampYear 					= (unsigned int)(GV_Env_384_TimestampYear - Offset_2000) & _6bit;

}

void Output_Data_Set_BSC_IDB_UdsRequest_CH2_0x796(void)
{
   // ECU3.TX.CH2_BIU1_0x797.CH3_B_I_U_Signal_1_1 = (int)round(Test_Signal_1_[1]) & _64bit;

    ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_LSB = (unsigned int)round(Test_Signal_1_[1]) & _32bit;
    ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_MSB = (unsigned int)round(Test_Signal_1_[1] / (2^32)) & _32bit;
}

void Output_Data_Set_IDB_WheelSpeedStatus_CH2_0x088(void)
{
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.Arc 						 = (unsigned int)(Test_Signal_1_[1]) & _8bit;
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.Crc 						 = (unsigned int)(Test_Signal_1_[2]) & _8bit;
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontLeftWheelSpeed 		 = (unsigned int)((Test_Signal_1_[3] - Offset_m_15_15) / Factor_0_05) & _10bit;
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontLeftWheelSpeedValid  = (unsigned int)(Test_Signal_1_[4]) & _1bit;
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontRightWheelSpeed 	 = (unsigned int)((Test_Signal_1_[5] - Offset_m_15_15) / Factor_0_05) & _10bit;
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontRightWheelSpeedValid = (unsigned int)(Test_Signal_1_[6]) & _1bit;
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearLeftWheelSpeed 		 = (unsigned int)((Test_Signal_1_[7] - Offset_m_15_15) / Factor_0_05) & _10bit;
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearLeftWheelSpeedValid 	 = (unsigned int)(Test_Signal_1_[8]) & _1bit;
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearRightWheelSpeed 		 = (unsigned int)((Test_Signal_1_[9] - Offset_m_15_15) / Factor_0_05) & _10bit;
    ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearRightWheelSpeedValid  = (unsigned int)(Test_Signal_1_[10]) & _1bit;

}

/*---------------------------------------- CH3 Output ----------------------------------------*/
void Output_Data_Set_BSC_RCU_StartupCommand_CH3_0x033(void)
{
	ECU3.TX.CH3_BSC_RCU_StartupCommand_0x033.Arc 			= (unsigned int)(GV_RCU_033_Arc) & _8bit;
	ECU3.TX.CH3_BSC_RCU_StartupCommand_0x033.Crc 			= (unsigned int)(GV_RCU_033_Crc) & _8bit;
	ECU3.TX.CH3_BSC_RCU_StartupCommand_0x033.WakeUpCommand	= (unsigned int)(GV_RCU_033_WakeUpCommand) & _1bit;
}

void Output_Data_Set_BSC_RWA_RackCommand_CH3_0x040(void)
{
	ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.Arc 				= (unsigned int)(GV_RWA2_040_Arc) & _8bit;
	ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.Crc 				= (unsigned int)(GV_RWA2_040_Crc) & _8bit;
	ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.RackAngleCmdValid	= (unsigned int)(GV_RWA2_040_RackAngleCmdValid) & _1bit;
	ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.RackAngleCmd 		= (unsigned int)round((GV_RWA2_040_RackAngleCmd - Offset_m_655) / Factor_0_02) & _16bit;
}

void Output_Data_Set_BSC_RCU_BrakeCommand_CH3_0x065(void)
{
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.Arc 					 = (unsigned int)(GV_RCU_065_Arc) & _8bit;
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.BrakeHoldRequest 	 = (unsigned int)(GV_RCU_BrakeHoldRequest) & _1bit;
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.BrakeTorqueCommand 	 = (unsigned int)round(GV_RCU_BrakeTorqueCommand / Factor_0_1) & _16bit;
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.Crc 					 = (unsigned int)(GV_RCU_065_Crc) & _8bit;
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.EscActivation 		 = (unsigned int)(GV_RCU_EscActivation) & _1bit;
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.GearPosition 		 = (unsigned int)(GV_RCU_GearPosition) & _2bit;
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.ParkBrakeRequest 	 = (unsigned int)(GV_RCU_ParkBrakeRequest) & _2bit;
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.PowertrainMode 		 = (unsigned int)(GV_RCU_PowertrainMode) & _1bit;
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.Reserved1 			 = (unsigned int)(GV_RCU_Reserved1) & _1bit;
    ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.Reserved2 			 = (unsigned int)(GV_RCU_Reserved2) & _2bit;
}


void Output_Data_Set_BSC_IMU_CH3_0x071(void)
{
	 ECU3.TX.CH3_BSC_IMU_0x071.Arc 							= (unsigned int)(GV_IMU_071_Arc) & _8bit;
	ECU3.TX.CH3_BSC_IMU_0x071.Crc 							= (unsigned int)(GV_IMU_071_Crc) & _8bit;
	ECU3.TX.CH3_BSC_IMU_0x071.LateralAcceleration 			= (unsigned int)((GV_IMU_071_LateralAcceleration - Offset_m_32) / Factor_0_0625) & _10bit;
	ECU3.TX.CH3_BSC_IMU_0x071.LateralAccelerationValid 		= (unsigned int)(GV_IMU_071_LateralAccelerationValid) & _1bit;
	ECU3.TX.CH3_BSC_IMU_0x071.LongitudinalAcceleration 		= (unsigned int)((GV_IMU_071_LongitudinalAcceleration - Offset_m_32) / Factor_0_0625) & _10bit;
	ECU3.TX.CH3_BSC_IMU_0x071.LongitudinalAccelerationValid	= (unsigned int)(GV_IMU_071_LongitudinalAccelerationValid) & _1bit;
	ECU3.TX.CH3_BSC_IMU_0x071.VehicleSpeed 					= (unsigned int)((GV_IMU_071_VehicleSpeed - Offset_m_14_95) / Factor_0_01) & _12bit;
	ECU3.TX.CH3_BSC_IMU_0x071.VehicleSpeedValid 			= (unsigned int)(GV_IMU_071_VehicleSpeedValid) & _1bit;
	ECU3.TX.CH3_BSC_IMU_0x071.VehicleYawRate 				= (unsigned int)((GV_IMU_071_VehicleYawRate - Offset_m_102_4) / Factor_0_05) & _12bit;
	ECU3.TX.CH3_BSC_IMU_0x071.VehicleYawRateValid 			= (unsigned int)(GV_IMU_071_VehicleYawRateValid) & _1bit;
}

void Output_Data_Set_RCU_WheelSpeedStatus_CH3_0x089(void)
{
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.Arc  					 = (unsigned int)(Test_Signal_1_[1]) & _8bit;
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.Crc  					 = (unsigned int)(Test_Signal_1_[2]) & _8bit;
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontLeftWheelSpeed  	 = (unsigned int)((Test_Signal_1_[3] - Offset_m_15_15) / Factor_0_05) & _10bit;
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontLeftWheelSpeedValid  = (unsigned int)(Test_Signal_1_[4]) & _1bit;
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontRightWheelSpeed  	 = (unsigned int)((Test_Signal_1_[5] - Offset_m_15_15) / Factor_0_05) & _10bit;
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontRightWheelSpeedValid = (unsigned int)(Test_Signal_1_[6]) & _1bit;
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearLeftWheelSpeed  		 = (unsigned int)((Test_Signal_1_[7] - Offset_m_15_15) / Factor_0_05) & _10bit;
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearLeftWheelSpeedValid   = (unsigned int)(Test_Signal_1_[8]) & _1bit;
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearRightWheelSpeed  	 = (unsigned int)((Test_Signal_1_[9] - Offset_m_15_15) / Factor_0_05) & _10bit;
    ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearRightWheelSpeedValid  = (unsigned int)(Test_Signal_1_[10]) & _1bit;
}

void Output_Data_Set_BSC_RWA_StartupCommand_CH3_0x310(void)
{
    ECU3.TX.CH3_BSC_RWA_StartupCommand_0x310.Arc 			 = (unsigned int)(GV_RWA2_310_Arc) & _8bit;
    ECU3.TX.CH3_BSC_RWA_StartupCommand_0x310.Crc 			 = (unsigned int)(GV_RWA2_310_Crc) & _8bit;
    ECU3.TX.CH3_BSC_RWA_StartupCommand_0x310.ModeCommand 	 = (unsigned int)(GV_RWA2_310_ModeCommand) & _1bit;
    ECU3.TX.CH3_BSC_RWA_StartupCommand_0x310.WakeUpCommand   = (unsigned int)(GV_RWA2_310_WakeupCommand) & _1bit;
}

void Output_Data_Set_BSC_RWA_Sister_CH3_0x350(void)
{
    ECU3.TX.CH3_BSC_RWA_Sister_0x350.Arc 			= (unsigned int)(GV_RWA2_350_Arc) & _8bit;
    ECU3.TX.CH3_BSC_RWA_Sister_0x350.Crc 			= (unsigned int)(GV_RWA2_350_Crc) & _8bit;
    ECU3.TX.CH3_BSC_RWA_Sister_0x350.EcuPowerMode	= (unsigned int)(GV_RWA2_350_EcuPowerMode) & _2bit;
    ECU3.TX.CH3_BSC_RWA_Sister_0x350.EcuRole 		= (unsigned int)(GV_RWA2_350_EcuRole) & _2bit;
    ECU3.TX.CH3_BSC_RWA_Sister_0x350.EcuStatus 	 	= (unsigned int)(GV_RWA2_350_EcuStatus) & _4bit;
}

void Output_Data_Set_BSC_VehicleEnvironment_CH3_0x385(void)
{
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.Arc 						= (unsigned int)(GV_Env_385_Arc) & _8bit;
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.Crc 						= (unsigned int)(GV_Env_385_Crc) & _8bit;
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.EnvironmentTemperature 	= (unsigned int)((GV_Env_385_EnvironmentTemperature - Offset_m_50) / Factor_0_5) & _8bit;
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.EnvironmentTemperatureValid= (unsigned int)(GV_Env_385_EnvironmentTemperatureValid) & _1bit;
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampDay 				= (unsigned int)(GV_Env_385_TimestampDay) & _5bit;
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampHour 				= (unsigned int)(GV_Env_385_TimestampHour) & _5bit;
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampMinute 			= (unsigned int)(GV_Env_385_TimestampMinute) & _6bit;
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampMonth 			= (unsigned int)(GV_Env_385_TimestampMonth) & _4bit;
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampSecond 			= (unsigned int)(GV_Env_385_TimestampSecond) & _6bit;
    ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampYear 				= (unsigned int)(GV_Env_385_TimestampYear - Offset_2000) & _6bit;
}

void Output_Data_Set_BSC_RCU_UdsRequest_CH3_0x797(void)
{
    // ECU3.TX.CH3_BRU1_0x798.CH4_B_R_U_Signal_1_1 = (int)round(Test_Signal_1_[1]) & _64bit;

    ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_LSB = (unsigned int)round(Test_Signal_1_[1]) & _32bit;
    ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_MSB = (unsigned int)round(Test_Signal_1_[1] / (2^32)) & _32bit;
}


/*---------------------------------------- CH4 Output ----------------------------------------*/
void Output_Data_Set_VCU_RWS_Rack_Cmd_CH4_0x040(void)
{
	ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.Arc 				 	= (unsigned int)(GV_RWS1_040_Arc) & _8bit;
	ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.Crc 				 	= (unsigned int)(GV_RWS1_040_Crc) & _8bit;
	ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.RackAngleCmd1		= (unsigned int)round((GV_RWS1_040_RackAngleCmd- Offset_m_655) / Factor_0_02) & _16bit;
	ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.RackAngleCmdValid1	= (unsigned int)(GV_RWS1_040_RackAngleCmdValid ) & _1bit;
}

void Output_Data_Set_VCU_RWS_StartupCommand_CH4_0x310(void)
{
    ECU3.TX.CH4_VCU_RWS_StartupCommand_0x310.Arc 			 	= (unsigned int)(GV_RWS1_310_Arc) & _8bit;
    ECU3.TX.CH4_VCU_RWS_StartupCommand_0x310.Crc 			 	= (unsigned int)(GV_RWS1_310_Crc) & _8bit;
    ECU3.TX.CH4_VCU_RWS_StartupCommand_0x310.RWS_ModeCommand1	= (unsigned int)(GV_RWS1_310_ModeCommand) & _1bit;
    ECU3.TX.CH4_VCU_RWS_StartupCommand_0x310.RWS_WakeUpCommand1	= (unsigned int)(GV_RWS1_310_WakeupCommand) & _1bit;
}

void Output_Data_Set_VCU_RWS_Sister_CH4_0x350(void){

    ECU3.TX.CH4_VCU_RWS_Sister_0x350.Arc 			= (unsigned int)(GV_RWS1_350_Arc) & _8bit;
    ECU3.TX.CH4_VCU_RWS_Sister_0x350.Crc 			= (unsigned int)(GV_RWS1_350_Crc) & _8bit;
    ECU3.TX.CH4_VCU_RWS_Sister_0x350.EcuPowerMode1	= (unsigned int)(GV_RWS1_350_EcuPowerMode) & _2bit;
    ECU3.TX.CH4_VCU_RWS_Sister_0x350.EcuRole1 		= (unsigned int)(GV_RWS1_350_EcuRole) & _2bit;
    ECU3.TX.CH4_VCU_RWS_Sister_0x350.EcuStatus1 	= (unsigned int)(GV_RWS1_350_EcuStatus) & _4bit;
}


/*---------------------------------------- CH5 Output ----------------------------------------*/
void Output_Data_Set_VCU_RWS_Rack_Cmd_CH5_0x040(void)
{
	ECU3.TX.CH5_VCU_RWS_Rack_Cmd_0x040.Arc 				 	= (unsigned int)(GV_RWS2_040_Arc) & _8bit;
	ECU3.TX.CH5_VCU_RWS_Rack_Cmd_0x040.Crc 				 	= (unsigned int)(GV_RWS2_040_Crc) & _8bit;
	ECU3.TX.CH5_VCU_RWS_Rack_Cmd_0x040.RackAngleCmd2		= (unsigned int)round((GV_RWS2_040_RackAngleCmd - Offset_m_655) / Factor_0_02) & _16bit;
	ECU3.TX.CH5_VCU_RWS_Rack_Cmd_0x040.RackAngleCmdValid2 	= (unsigned int)(GV_RWS2_040_RackAngleCmdValid) & _1bit;
}

void Output_Data_Set_VCU_RWS_StartupCommand_CH5_0x310(void)
{

    ECU3.TX.CH5_VCU_RWS_StartupCommand_0x310.Arc 			 	= (unsigned int)(GV_RWS2_310_Arc) & _8bit;
    ECU3.TX.CH5_VCU_RWS_StartupCommand_0x310.Crc 			 	= (unsigned int)(GV_RWS2_310_Crc) & _8bit;
    ECU3.TX.CH5_VCU_RWS_StartupCommand_0x310.RWS_ModeCommand2	= (unsigned int)(GV_RWS2_310_ModeCommand) & _1bit;
    ECU3.TX.CH5_VCU_RWS_StartupCommand_0x310.RWS_WakeUpCommand2	= (unsigned int)(GV_RWS2_310_WakeupCommand) & _1bit;
}

void Output_Data_Set_VCU_RWS_Sister_CH5_0x350(void){

    ECU3.TX.CH5_VCU_RWS_Sister_0x350.Arc 			= (unsigned int)(GV_RWS2_350_Arc) & _8bit;
    ECU3.TX.CH5_VCU_RWS_Sister_0x350.Crc 			= (unsigned int)(GV_RWS2_350_Crc) & _8bit;
    ECU3.TX.CH5_VCU_RWS_Sister_0x350.EcuPowerMode2	= (unsigned int)(GV_RWS2_350_EcuPowerMode) & _2bit;
    ECU3.TX.CH5_VCU_RWS_Sister_0x350.EcuRole2 		= (unsigned int)(GV_RWS2_350_EcuRole) & _2bit;
    ECU3.TX.CH5_VCU_RWS_Sister_0x350.EcuStatus2 	= (unsigned int)(GV_RWS2_350_EcuStatus) & _4bit;
}


/*======================================== Transmit Data ========================================*/
/*---------------------------------------- CH0 TX ----------------------------------------*/
void Transmit_VCU_RC_Signals1_CH0_0x010(void)
{
    CAN_ch[0].tx.buf[0] = (ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_MCU_EstTrq >> shift0) & _8bit;
    CAN_ch[0].tx.buf[1] = (ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_MCU_EstTrq >> shift8) & _8bit;
    CAN_ch[0].tx.buf[2] = (ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_RWA_Rack_Fbk >> shift0) & _8bit;
    CAN_ch[0].tx.buf[3] = (ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_RWA_Rack_Fbk >> shift8) & _8bit;
    CAN_ch[0].tx.buf[4] = (ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_Brk_Pressure_Fbk >> shift0) & _8bit;
    CAN_ch[0].tx.buf[5] = (ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_Brk_Pressure_Fbk >> shift8) & _8bit;
    CAN_ch[0].tx.buf[6] = (ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_Vx_Fbk >> shift0) & _8bit;
    CAN_ch[0].tx.buf[7] = (ECU3.TX.CH0_VCU_RC_Signals1_0x010.VCU_Vx_Limit >> shift0) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_VCU_RC_Signals1_10ms]);

}

void Transmit_VCU_RC_Signals2_CH0_0x011(void)
{
    CAN_ch[0].tx.buf[0] = (ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_RC_BMS_SOC >> shift0) & _8bit;
    CAN_ch[0].tx.buf[1] = ((ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_RC_long_Ctl_mode >> shift0)
                        | (ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_RC_Emergency_Stop << shift2)
                        | (ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_GearSelStat << shift3)) & _8bit;
    CAN_ch[0].tx.buf[2] = ((ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_Drive_Mode >> shift0)
                        | (ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_ParkBrake_Fbk << shift2)
						| (ECU3.TX.CH0_VCU_RC_Signals1_0x011.CAR_ChargingStatus >> shift4)
						| (ECU3.TX.CH0_VCU_RC_Signals1_0x011.CAR_BMS_HVOn_STA << shift7)) & _8bit;

    CAN_ch[0].tx.buf[4] = (ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_Acc_Fbk >> shift0) & _8bit;
    CAN_ch[0].tx.buf[5] = (ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_Acc_Fbk >> shift8) & _8bit;
    CAN_ch[0].tx.buf[6] = (ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_Acc_Limit >> shift0) & _8bit;
    CAN_ch[0].tx.buf[7] = (ECU3.TX.CH0_VCU_RC_Signals1_0x011.VCU_Acc_Limit >> shift8) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_VCU_RC_Signals2_10ms]);

}

void Transmit_CAR_STAT_CH0_0x012(void)
{
	 CAN_ch[0].tx.buf[0]    =  (ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_Bms_PackVolt >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[1]    =  (ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_Bms_PackVolt >> shift8) & _8bit;
	 CAN_ch[0].tx.buf[2]    =  (ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_Bms_PackCur >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[3]    =  (ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_Bms_PackCur >> shift8) & _8bit;
	 CAN_ch[0].tx.buf[4]    =  (ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_Battery_Voltage >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[5]    =  (ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_LDC_ACTL_CUR >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[6]    =  (ECU3.TX.CH0_CAR_STAT_CH0_0x012.CAR_LDC_ACTL_VOLT >> shift0) & _8bit;



    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_CAR_STAT_10ms]);
}

void Transmit_VCU_RC_Fault_Flag_CH0_0x013(void)
{
    CAN_ch[0].tx.buf[0]	= ((ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.ACU_Fault_Flag)
    					| (ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.MCU_Actuator_Fault_Flag << shift1)
						| (ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.IDB_ECU_Fault_Flag << shift2)
						| (ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.RCU_ECU_Fault_Flag << shift3)
						| (ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.RWA1_ECU_Fault_Flag << shift4)
						| (ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.RWA2_ECU_Fault_Flag << shift5)
						| (ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.RWA_Actuator_Fault_Flag << shift6)
						| (ECU3.TX.CH0_VCU_RC_Fault_Flag_0x013.ACU_ECU_Fault_Flag << shift7)) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_VCU_RC_Fault_Flag_10ms]);

}

void Transmit_TARGET_VALUE_CH0_0x140(void)
{
	CAN_ch[0].tx.buf[0] = (ECU3.TX.CH0_TARGET_VALUE_0x140.MCU_Target_Command >> shift0) & _8bit;
	CAN_ch[0].tx.buf[1] = (ECU3.TX.CH0_TARGET_VALUE_0x140.MCU_Target_Command >> shift8) & _8bit;
	CAN_ch[0].tx.buf[2] = (ECU3.TX.CH0_TARGET_VALUE_0x140.RWA_Target_Command >> shift0) & _8bit;
	CAN_ch[0].tx.buf[3] = (ECU3.TX.CH0_TARGET_VALUE_0x140.RWA_Target_Command >> shift8) & _8bit;
    CAN_ch[0].tx.buf[4] = (ECU3.TX.CH0_TARGET_VALUE_0x140.IDB_Target_Command >> shift0) & _8bit;
    CAN_ch[0].tx.buf[5] = (ECU3.TX.CH0_TARGET_VALUE_0x140.IDB_Target_Command >> shift8) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_TARGET_VALUE_10ms]);
}


/*
void Transmit_Debug_VCU_Signal_1_CH0_0x017(void)
{
	 CAN_ch[0].tx.buf[0] = (ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_IDB_BrakeTorqueCommand >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[1] = (ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_IDB_BrakeTorqueCommand >> shift8) & _8bit;
	 CAN_ch[0].tx.buf[2] = (ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_RWA1_RackAngleCommand >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[3] = (ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_RWA1_RackAngleCommand >> shift8) & _8bit;
	 CAN_ch[0].tx.buf[4] = (ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_RWS1_RackAngleCommand >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[5] = (ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_RWS1_RackAngleCommand >> shift8) & _8bit;
	 CAN_ch[0].tx.buf[6] = (ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_MCU_TorqCommand >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[7] = (ECU3.TX.CH0_Debug_VCU_Signal_1_CH0_0x017.VCU_MCU_TorqCommand >> shift8) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_TEST_VCU_Signal_1_TX_5ms]);
}

void Transmit_Debug_VCU_Signal_2_CH0_0x018(void)
{
	 CAN_ch[0].tx.buf[0] = (ECU3.TX.CH0_Debug_VCU_Signal_2_CH0_0x018.VCU_RCU_BrakeTorqueCommand >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[1] = (ECU3.TX.CH0_Debug_VCU_Signal_2_CH0_0x018.VCU_RCU_BrakeTorqueCommand >> shift8) & _8bit;
	 CAN_ch[0].tx.buf[2] = (ECU3.TX.CH0_Debug_VCU_Signal_2_CH0_0x018.VCU_RWA2_RackAngleCommand >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[3] = (ECU3.TX.CH0_Debug_VCU_Signal_2_CH0_0x018.VCU_RWA2_RackAngleCommand >> shift8) & _8bit;
	 CAN_ch[0].tx.buf[4] = (ECU3.TX.CH0_Debug_VCU_Signal_2_CH0_0x018.VCU_RWS2_RackAngleCommand >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[5] = (ECU3.TX.CH0_Debug_VCU_Signal_2_CH0_0x018.VCU_RWS2_RackAngleCommand >> shift8) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_TEST_VCU_Signal_2_TX_5ms]);
}
*/
void Transmit_RWA_VCU_RC_Signal1_CH0_0x050(void)
{

    CAN_ch[0].tx.buf[0] = (ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_RackAngleFbk1 >> shift0) & _8bit;
    CAN_ch[0].tx.buf[1] = (ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_RackAngleFbk1 >> shift8) & _8bit;
    CAN_ch[0].tx.buf[2] = (ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_RackAngleSpeedFbk1 >> shift0) & _8bit;
    CAN_ch[0].tx.buf[3] = (ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_RackAngleSpeedFbk1 >> shift8) & _8bit;
    CAN_ch[0].tx.buf[4] = (ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.CAR_ARC >> shift0) & _8bit;
//    CAN_ch[0].tx.buf[7] = ((ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_VCU_RC_counter1 >> shift0)
//                         | (ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_VCU_RC_CRC1 << shift4)) & _8bit;

    CRC8_Func(0x050,8,CAN_ch[0].tx.buf);
    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_RWA_VCU_RC_Signal1_10ms]);
}

void Transmit_RWA_VCU_RC_Signal2_CH0_0x051(void)
{
    CAN_ch[0].tx.buf[0] = (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_RackAngleFbk2 >> shift0) & _8bit;
    CAN_ch[0].tx.buf[1] = (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_RackAngleFbk2 >> shift8) & _8bit;
    CAN_ch[0].tx.buf[2] = (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_RackAngleSpeedFbk2 >> shift0) & _8bit;
    CAN_ch[0].tx.buf[3] = (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_RackAngleSpeedFbk2 >> shift8) & _8bit;
    CAN_ch[0].tx.buf[7] = ((ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_VCU_RC_counter2 >> shift0)
                         | (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_VCU_RC_CRC2 << shift4)) & _8bit;


    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_RWA_VCU_RC_Signal2_10ms]);
}

void Transmit_RWS_VCU_RC_Signal1_CH0_0x060(void)
{
    CAN_ch[0].tx.buf[0] = (ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_RackAngleFbk1 >> shift0) & _8bit;
    CAN_ch[0].tx.buf[1] = (ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_RackAngleFbk1 >> shift8) & _8bit;
    CAN_ch[0].tx.buf[2] = (ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_RackAngleSpeedFbk1 >> shift0) & _8bit;
    CAN_ch[0].tx.buf[3] = (ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_RackAngleSpeedFbk1 >> shift8) & _8bit;
    CAN_ch[0].tx.buf[7] = ((ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_VCU_RC_counter1 >> shift0)
                         | (ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_VCU_RC_CRC1 << shift4)) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_RWS_VCU_RC_Signal1_10ms]);
}

void Transmit_RWS_VCU_RC_Signal2_CH0_0x061(void)
{
    CAN_ch[0].tx.buf[0] = (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_RackAngleFbk2 >> shift0) & _8bit;
    CAN_ch[0].tx.buf[1] = (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_RackAngleFbk2 >> shift8) & _8bit;
    CAN_ch[0].tx.buf[2] = (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_RackAngleSpeedFbk2 >> shift0) & _8bit;
    CAN_ch[0].tx.buf[3] = (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_RackAngleSpeedFbk2 >> shift8) & _8bit;
    CAN_ch[0].tx.buf[7] = ((ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_VCU_RC_counter2 >> shift0)
                         | (ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_VCU_RC_CRC2 << shift4)) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_RWS_VCU_RC_Signal2_10ms]);
}

void Transmit_SW_VER_CH0_0x100(void)
{    CAN_ch[0].tx.buf[0]    =  (ECU3.TX.CH0_SW_VER_0x100.YEAR >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[1]    =  (ECU3.TX.CH0_SW_VER_0x100.Month >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[2]    =  (ECU3.TX.CH0_SW_VER_0x100.Day >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[3]    =  (ECU3.TX.CH0_SW_VER_0x100.Ver >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[4]    =  (ECU3.TX.CH0_SW_VER_0x100.CAR_NUM >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[5]    =  (ECU3.TX.CH0_SW_VER_0x100.CAR_NUM >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[6]    =  (ECU3.TX.CH0_SW_VER_0x100.CAR_NUM >> shift0) & _8bit;
	 CAN_ch[0].tx.buf[7]    =  (ECU3.TX.CH0_SW_VER_0x100.CAR_NUM >> shift0) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_SW_VER_10ms]);
}

void Transmit_VCU_BCM_Signal_1_CH0_0x151(void)
{
    CAN_ch[0].tx.buf[0] = ((ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_BRAKE_CMD 	>> shift0)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Hazard_CMD 	<< shift2)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_HBEAM_CMD 	<< shift4)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Head_CMD 	<< shift6)) & _8bit;
    CAN_ch[0].tx.buf[1] = ((ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_LTRN_CMD 	>> shift0)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Reverse_CMD << shift2)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_RTRN_CMD 	<< shift4)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Position_CMD<< shift6)) & _8bit;
    CAN_ch[0].tx.buf[2] = ((ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_DRL_CMD 	>> shift0)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Wiper_CMD 		 << shift2)) & _8bit;
    CAN_ch[0].tx.buf[3] = ((ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.LDC_ACT_CMD 		 >> shift0)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.HV_ON_CMD 		 << shift2)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.CE_ON_CMD 		 << shift6)) & _8bit;
    CAN_ch[0].tx.buf[4] =  (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.LDC_TRGT_CUR 	 >> shift0) & _8bit;
    CAN_ch[0].tx.buf[5] = ((ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Vcu_OperMode 	 >> shift0)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Vcu_SysMode 		 << shift3)) & _8bit;
    CAN_ch[0].tx.buf[7] = ((ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.VCU_BCM_counter 	 >> shift0)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.VCU_BCM_CRC 		 << shift4)) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_VCU_BCM_Signal_1_10ms]);
}

void Transmit_VCU_BCM_Signal_2_CH0_0x180(void)
{
    CAN_ch[0].tx.buf[0] = ((ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI1_CMD 	>> shift0)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI2_CMD 	<< shift2)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI3_CMD 	<< shift4)
                         | (ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI4_CMD 	<< shift6)) & _8bit;
    CAN_ch[0].tx.buf[1] =  (ECU3.TX.CH0_VCU_BCM_Signal_2_0x180.Lamp_HMI5_CMD 	>> shift0) & _2bit;


    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_VCU_BCM_Signal_2_10ms]);
}

void Transmit_VCU_EPAM_CH0_0x220(void)
{    CAN_ch[0].tx.buf[0]    =  ((ECU3.TX.CH0_VCU_EPAM_0x220.Park_Request_to_EPC>> shift0)
		|(ECU3.TX.CH0_VCU_EPAM_0x220.EPAM_ErrClear_State<< shift2))& _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_VCU_EPAM_10ms]);
}

void Transmit_VCU_MCU_Signals1_CH0_0x250(void)
{
    CAN_ch[0].tx.buf[0] = ((ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_TorqueContol >> shift0)
                         | (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_Ready 		 << shift1)
                         | (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_ControlMode 	 << shift2)
                         | (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_PwrEnable 	 << shift3)
                         | (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_GearCmd 		 << shift4)) & _8bit;
    CAN_ch[0].tx.buf[1] = ((ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_MtrDir 		 >> shift0)
                         | (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_BmsFlt 		 << shift2)
                         | (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_BmsHvSt << shift5)) & _8bit;
    CAN_ch[0].tx.buf[2] = (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_PosTrqLimit >> shift0) & _8bit;
    CAN_ch[0].tx.buf[3] = (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_PosTrqLimit >> shift8) & _8bit;
    CAN_ch[0].tx.buf[4] = (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_NegTrqLimit >> shift0) & _8bit;
    CAN_ch[0].tx.buf[5] = (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_NegTrqLimit >> shift8) & _8bit;
    CAN_ch[0].tx.buf[6] = (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_TrqCmd >> shift0) & _8bit;
    CAN_ch[0].tx.buf[7] = (ECU3.TX.CH0_VCU_MCU_Signals1_0x250.VCU_TrqCmd >> shift8) & _8bit;

    can_send_config(CAN_INST_0,g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_VCU_MCU_Signals1_10ms]);
}


/*---------------------------------------- CH1 TX ----------------------------------------*/
void Transmit_VCU_ACU_Signal1_CH1_0x013(void)
{
    CAN_ch[1].tx.buf[0] =  (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_MCU_EstTrq		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] =  (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_MCU_EstTrq		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[2] =  (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_RWA_Rack_Fbk 		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[3] =  (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_RWA_Rack_Fbk 		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[4] =  (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_Brk_Pressure_Fbk	>> shift0) & _8bit;
    CAN_ch[1].tx.buf[5] =  (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_Brk_Pressure_Fbk	>> shift8) & _8bit;
    CAN_ch[1].tx.buf[6] = ((ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_long_Ctl_mode 	>> shift0)
                         | (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_GearPos 			<< shift2)
						 | (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_ParkBrake_Fbk 	<< shift4)
						 | (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_Emergency_Stop 	<< shift6))& _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_ARC1 				>> shift0)
                         | (ECU3.TX.CH1_VCU_ACU_Signal1_0x013.VCU_ACU_CRC1 				<< shift4))& _8bit;

//    CRC8_Func_FOR_ACU_4BIT(0x013,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_VCU_ACU_Signal1_10ms]);
}

void Transmit_VCU_ACU_Signal2_CH1_0x014(void)
{
    CAN_ch[1].tx.buf[0] = ((ECU3.TX.CH1_VCU_ACU_Signal2_0x014.RWA_Flt				>> shift0)
                       	| (ECU3.TX.CH1_VCU_ACU_Signal2_0x014.RWS_Flt				<< shift4)) & _8bit;
    CAN_ch[1].tx.buf[1] = ((ECU3.TX.CH1_VCU_ACU_Signal2_0x014.IDB_Flt				>> shift0)
                        | (ECU3.TX.CH1_VCU_ACU_Signal2_0x014.MCU_Flt				<< shift4)
                        | (ECU3.TX.CH1_VCU_ACU_Signal2_0x014.Drive_Mode				<< shift5)) & _8bit;
    CAN_ch[1].tx.buf[2] = ((ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_IGN_SIG			>> shift0)) & _8bit;
    CAN_ch[1].tx.buf[3] = ((ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_ACU_RC_BMS_SOC	>> shift0)) & _8bit;
    CAN_ch[1].tx.buf[4] = ((ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_ACU_MCU_EstSpd	>> shift0)) & _8bit;
    CAN_ch[1].tx.buf[5] = ((ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_ACU_MCU_EstSpd	>> shift8)) & _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_ACU_counter2		>> shift0)
                        | (ECU3.TX.CH1_VCU_ACU_Signal2_0x014.VCU_ACU_CRC2			<< shift4)) & _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x014,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_VCU_ACU_Signal2_10ms]);
}

void Transmit_VCU_ACU_Signal3_CH1_0x015(void)
{
    CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Vx_Fbk			>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Vx_Limit		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[2] = (ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Acc_Fbk		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Acc_Fbk		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[4] = (ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Acc_Limit		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[5] = (ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_Acc_Limit		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_ACU_counter3	>> shift0)
                        | (ECU3.TX.CH1_VCU_ACU_Signal3_0x015.VCU_ACU_CRC3		<< shift4))& _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x015,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_VCU_ACU_Signal3_10ms]);
}

void Transmit_CH1_ACU_CAR_STAT_CH1_0x016(void)
{
	CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_MCU_MtrTemp 		>> shift0) & _8bit;
	CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_MCU_InvTemp		>> shift0) & _8bit;
	CAN_ch[1].tx.buf[2] = (ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_EPAM_Temperature	>> shift0) & _8bit;
	CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_Battery_Voltage	>> shift0) & _8bit;
	CAN_ch[1].tx.buf[4] = ((ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_Bms_SoH_Wrng	>> shift0)
	 	 	 	 	 	 | (ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_ChargingStatus	<< shift1)
	 	 	 	 	 	 | (ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_BMS_HVOn_STA		<< shift4))& _8bit;
	CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_ARC 			>> shift0)
	                     | (ECU3.TX.CH1_ACU_CAR_STAT_CH1_0x016.ACU_CAR_CRC     			<< shift4))& _8bit;

	CRC8_Func_FOR_ACU_4BIT(0x016,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_ACU_CAR_STAT_10ms]);
}

void Transmit_VCU_ACU_Fault_Flag_CH1_0x017(void)
{
	CAN_ch[1].tx.buf[0]	= ((ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.ACU_Fault_Flag)
						| (ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.MCU_Actuator_Fault_Flag << shift1)
						| (ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.IDB_ECU_Fault_Flag		<< shift2)
						| (ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.RCU_ECU_Fault_Flag		<< shift3)
						| (ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.RWA1_ECU_Fault_Flag		<< shift4)
						| (ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.RWA2_ECU_Fault_Flag		<< shift5)
						| (ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.RWA_Actuator_Fault_Flag	<< shift6)
						| (ECU3.TX.CH1_VCU_ACU_Fault_Flag_0x017.ACU_ECU_Fault_Flag 		<< shift7));

	can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_VCU_ACU_Fault_Flag_10ms]);
}

void Transmit_RWA_VCU_ACU_Signal1_CH1_0x050(void)
{
    CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_RackAngleFbk		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_RackAngleFbk 		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[2] = (ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_RackAngleSpeedFbk	>> shift0) & _8bit;
    CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_RackAngleSpeedFbk	>> shift8) & _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_VCU_ACU_counter1	>> shift0)
                        | (ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_VCU_ACU_CRC1		<< shift4))& _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x050,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_RWA_VCU_ACU_Signal1_10ms]);
}

void Transmit_RWA_VCU_ACU_Signal2_CH1_0x051(void)
{
    CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_RackAngleFbk		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_RackAngleFbk		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[2] = (ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_RackAngleSpeedFbk	>> shift0) & _8bit;
    CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_RackAngleSpeedFbk	>> shift8) & _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_VCU_ACU_counter2	>> shift0)
                        | (ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_VCU_ACU_CRC2		<< shift4))& _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x051,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_RWA_VCU_ACU_Signal2_10ms]);
}

void Transmit_RWS_VCU_ACU_Signal1_CH1_0x060(void)
{
    CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_RackAngleFbk 		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_RackAngleFbk		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[2] = (ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_RackAngleSpeedFbk	>> shift0) & _8bit;
    CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_RackAngleSpeedFbk	>> shift8) & _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_VCU_ACU_counter1	>> shift0)
                        | (ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_VCU_ACU_CRC1		<< shift4))& _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x060,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_RWS_VCU_ACU_Signal1_10ms]);
}

void Transmit_RWS_VCU_ACU_Signal2_CH1_0x061(void)
{
    CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_RackAngleFbk		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_RackAngleFbk		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[2] = (ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_RackAngleSpeedFbk	>> shift0) & _8bit;
    CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_RackAngleSpeedFbk	>> shift8) & _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_VCU_ACU_counter2	>> shift0)
                        | (ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_VCU_ACU_CRC2		<< shift4))& _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x061,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_RWS_VCU_ACU_Signal2_10ms]);
}

void Transmit_CH1_IMU_TX1_CH1_0x174(void)
{
    CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_YawRtVal		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_YawRtVal		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[2] = ((ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_CLU_STAT      >> shift0)
    		            | (ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_YAW_RATE_STAT	<< shift4))& _8bit;
    CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_TEMP_RATE		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[4] = (ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_AY_Val			>> shift0) & _8bit;
    CAN_ch[1].tx.buf[5] = (ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_AY_Val			>> shift8) & _8bit;
    CAN_ch[1].tx.buf[6] = ((ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_MSG_TX1_CNT	>> shift0)
                        | (ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_AY_STAT		<< shift4))& _8bit;
    CAN_ch[1].tx.buf[7] = (ECU3.TX.CH1_IMU_TX1_CH1_0x174.IMU_TX1_CRC		>> shift0) & _8bit;

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_IMU_TX1_10ms]);
}

void Transmit_CH1_IMU_TX2_CH1_0x178(void)
{
    CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_RollRtVal		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_RollRtVal		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[2] = ((ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_CLU_STAT5		>> shift0)
    		            | (ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_ROLL_RATE_STAT	<< shift4))& _8bit;
    CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_CLU_DIAG		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[4] = (ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_AX_Val			>> shift0) & _8bit;
    CAN_ch[1].tx.buf[5] = (ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_AX_Val			>> shift8) & _8bit;
    CAN_ch[1].tx.buf[6] = ((ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_MSG_TX2_CNT	>> shift0)
                        | (ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_AX_STAT		<< shift4))& _8bit;
    CAN_ch[1].tx.buf[7] = (ECU3.TX.CH1_IMU_TX2_CH1_0x178.IMU_TX2_CRC		>> shift0) & _8bit;

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_IMU_TX2_10ms]);
}

void Transmit_CH1_IMU_TX3_CH1_0x17C(void)
{
	CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_PitchRtVal			>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_PitchRtVal     	>> shift8) & _8bit;
    CAN_ch[1].tx.buf[2] = ((ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_HW_Index			>> shift0)
    		            | (ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_PITCH_RATE_STAT	<< shift4))& _8bit;
    CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_AZ_Val				>> shift0) & _8bit;
    CAN_ch[1].tx.buf[4] = (ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_AZ_Val				>> shift8) & _8bit;
    CAN_ch[1].tx.buf[6] = ((ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_MSG_TX3_CNT		>> shift0)
                        | (ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_AZ_STAT			<< shift4))& _8bit;
    CAN_ch[1].tx.buf[7] = (ECU3.TX.CH1_IMU_TX3_CH1_0x17C.IMU_TX3_CRC			>> shift0) & _8bit;

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_IMU_TX3_10ms]);
}

void Transmit_BCM_VCU_ACU_Signal1_CH1_0x570(void)
{
    CAN_ch[1].tx.buf[0] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_RTRN			<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_Reverse		<< shift2)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_LTRN			<< shift4)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_Head			<< shift6))& _8bit;
    CAN_ch[1].tx.buf[1] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_HBEAM 		<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_Hazard 		<< shift2)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_BRAKE 		<< shift4)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Status_Wiper 		<< shift6))& _8bit;
    CAN_ch[1].tx.buf[2] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE1_STA 		<< shift4)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE2_STA 		<< shift6))& _8bit;
    CAN_ch[1].tx.buf[3] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE3_STA 		<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE4_STA 		<< shift2)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_CE5_STA 		<< shift4)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_MAINSW_STA		<< shift6))& _8bit;
    CAN_ch[1].tx.buf[4] = (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Battery_Voltage	<< shift0) & _8bit;
    CAN_ch[1].tx.buf[5] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_DRL			<< shift4)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.Lamp_Position		<< shift6))& _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_VCU_counter1	<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal1_0x570.BCM_VCU_CRC1		<< shift4))& _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x570,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_BCM_VCU_ACU_Signal1_10ms]);
}

void Transmit_BCM_VCU_ACU_Signal2_CH1_0x580(void)
{
    CAN_ch[1].tx.buf[0] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.ChargingStatus	<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BCM_ChgeCon_DTD 	<< shift3)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_HVOn_STA		<< shift5)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.IntLckSta_OBC 		<< shift6)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.IntLckSta_BMS 		<< shift7))& _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_SOC 			<< shift0) & _8bit;
    CAN_ch[1].tx.buf[2] = (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_SOH 			>> shift0) & _8bit;
    CAN_ch[1].tx.buf[3] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_OBC 		<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_VCU 		<< shift2)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_BMS 		<< shift4)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_LDC 		<< shift6))& _8bit;
    CAN_ch[1].tx.buf[4] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.CommSta_TMS 		<< shift2)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_SOH_INV 		<< shift4)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BMS_SOC_INV 		<< shift5)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.Bms_Soc_Wrng		<< shift6)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.Bms_SoH_Wrng		<< shift7))& _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BCM_VCU_counter2  << shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal2_0x580.BCM_VCU_CRC2		<< shift4)) & _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x580,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_BCM_VCU_ACU_Signal2_10ms]);
}

void Transmit_BCM_VCU_ACU_Signal5_CH1_0x585(void)
{
    CAN_ch[1].tx.buf[0] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.OBC_FltSta		<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BMS_FltSta			<< shift2)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.LDC_FltSta 		<< shift4)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BCM_FltSta 		<< shift6)) & _8bit;
    CAN_ch[1].tx.buf[1] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BMS_TEMP_FAULT	<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.LDC_TEMP_FAULT 	<< shift2)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.OBC_TEMP_FAULT 	<< shift4)) & _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BCM_VCU_counter5  << shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BCM_VCU_CRC5		<< shift4)) & _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x585,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_BCM_VCU_ACU_Signal5_10ms]);
}

void Transmit_BCM_VCU_ACU_Signal3_CH1_0x590(void)
{
    CAN_ch[1].tx.buf[0] = (ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.Bms_PackVolt		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.Bms_PackVolt		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[2] = (ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.Bms_PackCur		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.Bms_PackCur		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[4] = (ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.Bms_PackPwr		>> shift0) & _8bit;
    CAN_ch[1].tx.buf[5] = (ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.Bms_PackPwr		>> shift8) & _8bit;
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.BCM_VCU_counter3	<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal3_0x590.BCM_VCU_CRC3		<< shift4))& _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x590,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_BCM_VCU_ACU_Signal3_10ms]);
}

void Transmit_BCM_VCU_ACU_Signal4_CH1_0x595(void)
{
    CAN_ch[1].tx.buf[0] =  (ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.LDC_ACTL_CUR		>> shift0) & _8bit;
//    CAN_ch[1].tx.buf[1] =  (ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.LDC_INP_VOLT		>> shift0) & _8bit;		//not used(251003)
//    CAN_ch[1].tx.buf[2] =  (ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.LDC_ACTL_VOLT 	>> shift0) & _2bit;		//not used(251003)
    CAN_ch[1].tx.buf[7] = ((ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.BCM_VCU_counter4	<< shift0)
                        | (ECU3.TX.CH1_BCM_VCU_ACU_Signal4_0x595.BCM_VCU_CRC4		<< shift4))& _8bit;

    CRC8_Func_FOR_ACU_4BIT(0x595,8,CAN_ch[1].tx.buf);

    can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_BCM_VCU_ACU_Signal4_10ms]);
}

void Transmit_VCU_245h_CH1_0x245(void)
{
	CAN_ch[1].tx.buf[3] = (ECU3.TX.CH1_VCU_245h_0x245.VCU_Ready
						| (ECU3.TX.CH1_VCU_245h_0x245.DrivingPosition << shift2)) & _8bit;

	can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_VCU_VESS_VCU_245h_10ms]);
}

void Transmit_ICM_303h_CH1_0x303(void)
{
	CAN_ch[1].tx.buf[2] = (ECU3.TX.CH1_ICM_303h_0x303.Speed_Combi >> shift8) & _8bit;
	CAN_ch[1].tx.buf[3] = ECU3.TX.CH1_ICM_303h_0x303.Speed_Combi			 & _8bit;

	can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_VCU_VESS_ICM_303h_10ms]);
}

void Transmit_CGW_372h_CH1_0x372(void)
{
	CAN_ch[1].tx.buf[0] = ((ECU3.TX.CH1_CGW_372h_0x372.WelcomeSoundCmd	<< shift4)
						| (ECU3.TX.CH1_CGW_372h_0x372.GoodbyeSoundCmd	<< shift6)) & _8bit;

	can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_VCU_VESS_CGW_372h_10ms]);
}

void Transmit_VCU_3ACh_CH1_0x3AC(void)
{
	CAN_ch[1].tx.buf[1] = (ECU3.TX.CH1_VCU_3ACh_0x3AC.Charging_Sts_IND << shift2) & _8bit;

	can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_VCU_VESS_VCU_3ACh_10ms]);
}

void Transmit_CGW_588h_CH1_0x588(void)
{
	CAN_ch[1].tx.buf[1] = ECU3.TX.CH1_CGW_588h_VC_0x588.VC_DOM & _8bit;

	can_send_config(CAN_INST_1,g_messageObjectConf_ECU3_1ch_TX[ECU3_CH1_TX_VCU_VESS_CGW_588h_VC_10ms]);
}


/*---------------------------------------- CH2 TX ----------------------------------------*/
void Transmit_BSC_IDB_StartupCommand_CH2_0x032(void)
{
    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_BSC_IDB_StartupCommand_0x032.Crc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_BSC_IDB_StartupCommand_0x032.Arc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[2] =  (ECU3.TX.CH2_BSC_IDB_StartupCommand_0x032.WakeUpCommand << shift7) & _8bit;

    CRC8_Func(0x032,3,CAN_ch[2].tx.buf);

    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_BSC_IDB_StartupCommand_5ms]);
}

void Transmit_BSC_RWA_RackCommand_CH2_0x040(void)
{
    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.Crc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.Arc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[2] =  (ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.RackAngleCmd >> shift8) & _8bit;
    CAN_ch[2].tx.buf[3] =  (ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.RackAngleCmd >> shift0) & _8bit;
    CAN_ch[2].tx.buf[4] =  (ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.RackAngleCmdValid << shift6) & _8bit;

    CRC8_Func_FOR_RWA1(0x040,5,CAN_ch[2].tx.buf);

    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_BSC_RWA_RackCommand_5ms]);
}

void Transmit_BSC_IDB_BrakeCommand_CH2_0x064(void)
{
    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.Crc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.Arc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[2] =  (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.BrakeTorqueCommand >> shift8) & _8bit;
    CAN_ch[2].tx.buf[3] =  (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.BrakeTorqueCommand >> shift0) & _8bit;
    CAN_ch[2].tx.buf[4] = ((ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.GearPosition >> shift0)
                         | (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.Reserved1 << shift3)
                         | (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.PowertrainMode << shift4)
                         | (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.BrakeHoldRequest << shift5)
                         | (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.ParkBrakeRequest << shift6)) & _8bit;
    CAN_ch[2].tx.buf[5] = ((ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.Reserved2 >> shift0)
                         | (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.TcsActivation << shift3)
                         | (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.RopActivation << shift4)
                         | (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.RbcActivation << shift5)
                         | (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.EscActivation << shift6)) & _8bit;
    CAN_ch[2].tx.buf[6] =  (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.DriveTorqueCommand >> shift8) & _8bit;
    CAN_ch[2].tx.buf[7] = ((ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.DriveTorqueCommandValid << shift1)
                         | (ECU3.TX.CH2_BSC_IDB_BrakeCommand_0x064.DriveTorqueCommand << shift2)) & _8bit;

    CRC8_Func(0x064,8,CAN_ch[2].tx.buf);


    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_BSC_IDB_BrakeCommand_5ms]);
}

void Transmit_BSC_RegenCommand_CH2_0x06A(void)
{
    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_BSC_RegenCommand_0x06A.Crc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_BSC_RegenCommand_0x06A.Arc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[2] = ((ECU3.TX.CH2_BSC_RegenCommand_0x06A.ActualMotorTorque >> shift8)
                         | (ECU3.TX.CH2_BSC_RegenCommand_0x06A.TractionMotorFault << shift7)) & _8bit;
    CAN_ch[2].tx.buf[3] =  (ECU3.TX.CH2_BSC_RegenCommand_0x06A.ActualMotorTorque >> shift0) & _8bit;
    CAN_ch[2].tx.buf[4] = ((ECU3.TX.CH2_BSC_RegenCommand_0x06A.MaxAvailableRegenTorque >> shift8)
                         | (ECU3.TX.CH2_BSC_RegenCommand_0x06A.ActualMotorTorqueValid << shift6)
                         | (ECU3.TX.CH2_BSC_RegenCommand_0x06A.MaxAvailableRegenTorqueValid << shift7)) & _8bit;
    CAN_ch[2].tx.buf[5] =  (ECU3.TX.CH2_BSC_RegenCommand_0x06A.MaxAvailableRegenTorque >> shift0) & _8bit;

    CRC8_Func(0x06A,6,CAN_ch[2].tx.buf);
    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_BSC_RegenCommand_5ms]);
}

void Transmit_BSC_IMU_CH2_0x070(void)
{
    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_BSC_IMU_0x070.Crc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_BSC_IMU_0x070.Arc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[2] = ((ECU3.TX.CH2_BSC_IMU_0x070.VehicleYawRate >> shift8)
                         | (ECU3.TX.CH2_BSC_IMU_0x070.VehicleSpeedValid << shift4)
                         | (ECU3.TX.CH2_BSC_IMU_0x070.VehicleYawRateValid << shift5)
                         | (ECU3.TX.CH2_BSC_IMU_0x070.LateralAccelerationValid << shift6)
                         | (ECU3.TX.CH2_BSC_IMU_0x070.LongitudinalAccelerationValid << shift7)) & _8bit;
    CAN_ch[2].tx.buf[3] =  (ECU3.TX.CH2_BSC_IMU_0x070.VehicleYawRate >> shift0) & _8bit;
    CAN_ch[2].tx.buf[4] =  (ECU3.TX.CH2_BSC_IMU_0x070.LateralAcceleration >> shift2) & _8bit;
    CAN_ch[2].tx.buf[5] = ((ECU3.TX.CH2_BSC_IMU_0x070.LateralAcceleration << shift6)
                         | (ECU3.TX.CH2_BSC_IMU_0x070.LongitudinalAcceleration >> shift4)) & _8bit;
    CAN_ch[2].tx.buf[6] = ((ECU3.TX.CH2_BSC_IMU_0x070.LongitudinalAcceleration << shift4)
                         | (ECU3.TX.CH2_BSC_IMU_0x070.VehicleSpeed >> shift8)) & _8bit;
    CAN_ch[2].tx.buf[7] =  (ECU3.TX.CH2_BSC_IMU_0x070.VehicleSpeed >> shift0) & _8bit;
    CRC8_Func(0x070,8,CAN_ch[2].tx.buf);
    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_BSC_IMU_10ms]);
}

void Transmit_IDB_WheelSpeedStatus_CH2_0x088(void)
{
    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.Crc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.Arc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[2] =  (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontLeftWheelSpeed >> shift2) & _8bit;
    CAN_ch[2].tx.buf[3] = ((ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontRightWheelSpeed >> shift8)
                         | (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontLeftWheelSpeedValid << shift2)
                         | (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontRightWheelSpeedValid << shift3)
                         | (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearLeftWheelSpeedValid << shift4)
                         | (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearRightWheelSpeedValid << shift5)
                         | (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontLeftWheelSpeed << shift6)) & _8bit;
    CAN_ch[2].tx.buf[4] =  (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.FrontRightWheelSpeed >> shift0) & _8bit;
    CAN_ch[2].tx.buf[5] =  (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearLeftWheelSpeed >> shift2) & _8bit;
    CAN_ch[2].tx.buf[6] = ((ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearRightWheelSpeed >> shift8)
                         | (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearLeftWheelSpeed << shift6)) & _8bit;
    CAN_ch[2].tx.buf[7] =  (ECU3.TX.CH2_IDB_WheelSpeedStatus_0x088.RearRightWheelSpeed >> shift0) & _8bit;

    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_IDB_WheelSpeedStatus_5ms]);
}

void Transmit_BSC_RWA_StartupCommand_CH2_0x310(void)
{
    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_BSC_RWA_StartupCommand_0x310.Crc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_BSC_RWA_StartupCommand_0x310.Arc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[2] = ((ECU3.TX.CH2_BSC_RWA_StartupCommand_0x310.WakeUpCommand >> shift0)
                         | (ECU3.TX.CH2_BSC_RWA_StartupCommand_0x310.ModeCommand << shift1)) & _8bit;

    CRC8_Func_FOR_RWA1(0x310,3,CAN_ch[2].tx.buf);
    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_BSC_RWA_StartupCommand_5ms]);
}

void Transmit_BSC_RWA_Sister_CH2_0x350(void)
{
    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_BSC_RWA_Sister_0x350.Crc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_BSC_RWA_Sister_0x350.Arc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[2] =  (ECU3.TX.CH2_BSC_RWA_Sister_0x350.EcuPowerMode >> shift0) & _8bit;
    CAN_ch[2].tx.buf[3] =  (ECU3.TX.CH2_BSC_RWA_Sister_0x350.EcuStatus >> shift0) & _8bit;
    CAN_ch[2].tx.buf[4] =  (ECU3.TX.CH2_BSC_RWA_Sister_0x350.EcuRole >> shift0) & _8bit;

    CRC8_Func_FOR_RWA1(0x350,5,CAN_ch[2].tx.buf);

    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_BSC_RWA_Sister_5ms]);
}

void Transmit_BSC_VehicleEnvironment_CH2_0x384(void)
{
    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.Crc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.Arc >> shift0) & _8bit;
    CAN_ch[2].tx.buf[2] = ((ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampSecond >> shift0)
                         | (ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.EnvironmentTemperatureValid << shift7)) & _8bit;
    CAN_ch[2].tx.buf[3] =  (ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampMinute >> shift0) & _8bit;
    CAN_ch[2].tx.buf[4] =  (ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampHour >> shift0) & _8bit;
    CAN_ch[2].tx.buf[5] = ((ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampYear >> shift3)
                         | (ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampDay << shift3)) & _8bit;
    CAN_ch[2].tx.buf[6] = ((ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampMonth >> shift0)
                         | (ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.TimestampYear << shift5)) & _8bit;
    CAN_ch[2].tx.buf[7] =  (ECU3.TX.CH2_BSC_VehicleEnvironment_0x384.EnvironmentTemperature >> shift0) & _8bit;

    CRC8_Func(0x384,8,CAN_ch[2].tx.buf);
    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_BSC_VehicleEnvironment_1000ms]);
}

void Transmit_BSC_IDB_UdsRequest_CH2_0x796(void)
{

    CAN_ch[2].tx.buf[0] =  (ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_MSB >> shift24) & _8bit;
    CAN_ch[2].tx.buf[1] =  (ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_MSB >> shift16) & _8bit;
    CAN_ch[2].tx.buf[2] =  (ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_MSB >> shift8) & _8bit;
    CAN_ch[2].tx.buf[3] =  (ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_MSB >> shift0) & _8bit;
    CAN_ch[2].tx.buf[4] =  (ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_LSB >> shift24) & _8bit;
    CAN_ch[2].tx.buf[5] =  (ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_LSB >> shift16) & _8bit;
    CAN_ch[2].tx.buf[6] =  (ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_LSB >> shift8) & _8bit;
    CAN_ch[2].tx.buf[7] =  (ECU3.TX.CH2_BSC_IDB_UdsRequest_0x796.UdsRequest_LSB >> shift0) & _8bit;



    can_send_config(CAN_INST_2,g_messageObjectConf_ECU3_2ch_TX[ECU3_CH2_TX_BSC_IDB_UdsRequest_10ms]);
}


/*---------------------------------------- CH3 TX ----------------------------------------*/
void Transmit_BSC_RCU_StartupCommand_CH3_0x033(void)
{
    CAN_ch[3].tx.buf[0] =  (ECU3.TX.CH3_BSC_RCU_StartupCommand_0x033.Crc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[1] =  (ECU3.TX.CH3_BSC_RCU_StartupCommand_0x033.Arc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[2] =  (ECU3.TX.CH3_BSC_RCU_StartupCommand_0x033.WakeUpCommand >> shift0) & _8bit;
    CRC8_Func(0x033,3,CAN_ch[3].tx.buf);
    can_send_config(CAN_INST_3,g_messageObjectConf_ECU3_3ch_TX[ECU3_CH3_TX_BSC_RCU_StartupCommand_5ms]);

}

void Transmit_BSC_RWA_RackCommand_CH3_0x040(void)
{
    CAN_ch[3].tx.buf[0] =  (ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.Crc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[1] =  (ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.Arc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[2] =  (ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.RackAngleCmd >> shift8) & _8bit;
    CAN_ch[3].tx.buf[3] =  (ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.RackAngleCmd >> shift0) & _8bit;
    CAN_ch[3].tx.buf[4] =  (ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.RackAngleCmdValid << shift6) & _8bit;
    CRC8_Func_FOR_RWA2(0x040,5,CAN_ch[3].tx.buf);
    can_send_config(CAN_INST_3,g_messageObjectConf_ECU3_3ch_TX[ECU3_CH3_TX_BSC_RWA_RackCommand_5ms]);
}

void Transmit_BSC_RCU_BrakeCommand_CH3_0x065(void)
{
    CAN_ch[3].tx.buf[0] =  (ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.Crc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[1] =  (ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.Arc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[2] =  (ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.BrakeTorqueCommand >> shift8) & _8bit;
    CAN_ch[3].tx.buf[3] =  (ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.BrakeTorqueCommand >> shift0) & _8bit;
    CAN_ch[3].tx.buf[4] = ((ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.GearPosition >> shift0)
                         | (ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.Reserved1 << shift3)
                         | (ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.PowertrainMode << shift4)
                         | (ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.BrakeHoldRequest << shift5)
                         | (ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.ParkBrakeRequest << shift6)) & _8bit;
    CAN_ch[3].tx.buf[5] = ((ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.Reserved2 >> shift0)
                         | (ECU3.TX.CH3_BSC_RCU_BrakeCommand_0x065.EscActivation << shift6)) & _8bit;

    CRC8_Func(0x065,8,CAN_ch[3].tx.buf);

    can_send_config(CAN_INST_3,g_messageObjectConf_ECU3_3ch_TX[ECU3_CH3_TX_BSC_RCU_BrakeCommand_5ms]);

}

void Transmit_BSC_IMU_CH3_0x071(void)
{
    CAN_ch[3].tx.buf[0] =  (ECU3.TX.CH3_BSC_IMU_0x071.Crc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[1] =  (ECU3.TX.CH3_BSC_IMU_0x071.Arc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[2] = ((ECU3.TX.CH3_BSC_IMU_0x071.VehicleYawRate >> shift8)
                         | (ECU3.TX.CH3_BSC_IMU_0x071.VehicleSpeedValid << shift4)
                         | (ECU3.TX.CH3_BSC_IMU_0x071.VehicleYawRateValid << shift5)
                         | (ECU3.TX.CH3_BSC_IMU_0x071.LateralAccelerationValid << shift6)
                         | (ECU3.TX.CH3_BSC_IMU_0x071.LongitudinalAccelerationValid << shift7)) & _8bit;
    CAN_ch[3].tx.buf[3] =  (ECU3.TX.CH3_BSC_IMU_0x071.VehicleYawRate >> shift0) & _8bit;
    CAN_ch[3].tx.buf[4] =  (ECU3.TX.CH3_BSC_IMU_0x071.LateralAcceleration >> shift2) & _8bit;
    CAN_ch[3].tx.buf[5] = ((ECU3.TX.CH3_BSC_IMU_0x071.LateralAcceleration << shift6)
                         | (ECU3.TX.CH3_BSC_IMU_0x071.LongitudinalAcceleration >> shift4)) & _8bit;
    CAN_ch[3].tx.buf[6] = ((ECU3.TX.CH3_BSC_IMU_0x071.LongitudinalAcceleration << shift4)
                         | (ECU3.TX.CH3_BSC_IMU_0x071.VehicleSpeed >> shift8)) & _8bit;
    CAN_ch[3].tx.buf[7] =  (ECU3.TX.CH3_BSC_IMU_0x071.VehicleSpeed >> shift0) & _8bit;
    CRC8_Func(0x071,8,CAN_ch[3].tx.buf);

    can_send_config(CAN_INST_3,g_messageObjectConf_ECU3_3ch_TX[ECU3_CH3_TX_BSC_IMU_10ms]);

}

void Transmit_RCU_WheelSpeedStatus_CH3_0x089(void)
{
    CAN_ch[3].tx.buf[0] =  (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.Crc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[1] =  (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.Arc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[2] =  (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontLeftWheelSpeed >> shift2) & _8bit;
    CAN_ch[3].tx.buf[3] = ((ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontRightWheelSpeed >> shift8)
                         | (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontLeftWheelSpeedValid << shift2)
                         | (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontRightWheelSpeedValid << shift3)
                         | (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearLeftWheelSpeedValid << shift4)
                         | (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearRightWheelSpeedValid << shift5)
                         | (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontLeftWheelSpeed << shift6)) & _8bit;
    CAN_ch[3].tx.buf[4] =  (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.FrontRightWheelSpeed >> shift0) & _8bit;
    CAN_ch[3].tx.buf[5] =  (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearLeftWheelSpeed >> shift2) & _8bit;
    CAN_ch[3].tx.buf[6] = ((ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearRightWheelSpeed >> shift8)
                         | (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearLeftWheelSpeed << shift6)) & _8bit;
    CAN_ch[3].tx.buf[7] =  (ECU3.TX.CH3_RCU_WheelSpeedStatus_0x089.RearRightWheelSpeed >> shift0) & _8bit;

    can_send_config(CAN_INST_3,g_messageObjectConf_ECU3_3ch_TX[ECU3_CH3_TX_RCU_WheelSpeedStatus_5ms]);
}

void Transmit_BSC_RWA_StartupCommand_CH3_0x310(void)
{
    CAN_ch[3].tx.buf[0] =  (ECU3.TX.CH3_BSC_RWA_StartupCommand_0x310.Crc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[1] =  (ECU3.TX.CH3_BSC_RWA_StartupCommand_0x310.Arc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[2] = ((ECU3.TX.CH3_BSC_RWA_StartupCommand_0x310.WakeUpCommand >> shift0)
                         | (ECU3.TX.CH3_BSC_RWA_StartupCommand_0x310.ModeCommand << shift1)) & _8bit;
    CRC8_Func_FOR_RWA2(0x310,3,CAN_ch[3].tx.buf);
    can_send_config(CAN_INST_3,g_messageObjectConf_ECU3_3ch_TX[ECU3_CH3_TX_BSC_RWA_StartupCommand_5ms]);
}

void Transmit_BSC_RWA_Sister_CH3_0x350(void)
{
    CAN_ch[3].tx.buf[0] =  (ECU3.TX.CH3_BSC_RWA_Sister_0x350.Crc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[1] =  (ECU3.TX.CH3_BSC_RWA_Sister_0x350.Arc >> shift0) & _8bit;
    CAN_ch[3].tx.buf[2] =  (ECU3.TX.CH3_BSC_RWA_Sister_0x350.EcuPowerMode >> shift0) & _8bit;
    CAN_ch[3].tx.buf[3] =  (ECU3.TX.CH3_BSC_RWA_Sister_0x350.EcuStatus >> shift0) & _8bit;
    CAN_ch[3].tx.buf[4] =  (ECU3.TX.CH3_BSC_RWA_Sister_0x350.EcuRole >> shift0) & _8bit;
    CRC8_Func_FOR_RWA2(0x350,5,CAN_ch[3].tx.buf);
    can_send_config(CAN_INST_3,g_messageObjectConf_ECU3_3ch_TX[ECU3_CH3_TX_BSC_RWA_Sister_5ms]);
}

void Transmit_BSC_VehicleEnvironment_CH3_0x385(void)
{
    CAN_ch[3].tx.buf[0] =  (ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.Crc                        >> shift0) & _8bit;
    CAN_ch[3].tx.buf[1] =  (ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.Arc                        >> shift0) & _8bit;
    CAN_ch[3].tx.buf[2] = ((ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampSecond            >> shift0)
                         | (ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.EnvironmentTemperatureValid << shift7)) & _8bit;
    CAN_ch[3].tx.buf[3] =  (ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampMinute            >> shift0) & _8bit;
    CAN_ch[3].tx.buf[4] =  (ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampHour              >> shift0) & _8bit;
    CAN_ch[3].tx.buf[5] = ((ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampYear               >> shift3)
                         | (ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampDay               << shift3)) & _8bit;
    CAN_ch[3].tx.buf[6] = ((ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampMonth             >> shift0)
                         | (ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.TimestampYear               << shift5)) & _8bit;
    CAN_ch[3].tx.buf[7] =  (ECU3.TX.CH3_BSC_VehicleEnvironment_0x385.EnvironmentTemperature     >> shift0) & _8bit;
    CRC8_Func(0x385,8,CAN_ch[3].tx.buf);
    can_send_config(CAN_INST_3,g_messageObjectConf_ECU3_3ch_TX[ECU3_CH3_TX_BSC_VehicleEnvironment_1000ms]);
}

void Transmit_BSC_RCU_UdsRequest_CH3_0x797(void)
{

    CAN_ch[3].tx.buf[0] =  (ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_MSB >> shift24) & _8bit;
    CAN_ch[3].tx.buf[1] =  (ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_MSB >> shift16) & _8bit;
    CAN_ch[3].tx.buf[2] =  (ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_MSB >> shift8) & _8bit;
    CAN_ch[3].tx.buf[3] =  (ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_MSB >> shift0) & _8bit;
    CAN_ch[3].tx.buf[4] =  (ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_LSB >> shift24) & _8bit;
    CAN_ch[3].tx.buf[5] =  (ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_LSB >> shift16) & _8bit;
    CAN_ch[3].tx.buf[6] =  (ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_LSB >> shift8) & _8bit;
    CAN_ch[3].tx.buf[7] =  (ECU3.TX.CH3_BSC_RCU_UdsRequest_0x797.UdsRequest_LSB >> shift0) & _8bit;

    can_send_config(CAN_INST_3,g_messageObjectConf_ECU3_3ch_TX[ECU3_CH3_TX_BSC_RCU_UdsRequest_10ms]);
}

/*---------------------------------------- CH4 TX ----------------------------------------*/
void Transmit_VCU_RWS_Rack_Cmd_CH4_0x040(void)
{

    CAN_ch[4].tx.buf[0] =  (ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.Crc >> shift0) & _8bit;
    CAN_ch[4].tx.buf[1] =  (ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.Arc >> shift0) & _8bit;
    CAN_ch[4].tx.buf[2] =  (ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.RackAngleCmd1 >> shift8) & _8bit;
    CAN_ch[4].tx.buf[3] =  (ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.RackAngleCmd1 >> shift0) & _8bit;
    CAN_ch[4].tx.buf[4] =  (ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.RackAngleCmdValid1 << shift6) & _8bit;

    CRC8_Func_FOR_RWS1(0x040,5,CAN_ch[4].tx.buf);

    can_send_config(CAN_INST_4,g_messageObjectConf_ECU3_4ch_TX[ECU3_CH4_TX_VCU_RWS_Rack_Cmd_5ms]);


}

void Transmit_VCU_RWS_StartupCommand_CH4_0x310(void)
{

    CAN_ch[4].tx.buf[0] =  (ECU3.TX.CH4_VCU_RWS_StartupCommand_0x310.Crc >> shift0) & _8bit;
    CAN_ch[4].tx.buf[1] =  (ECU3.TX.CH4_VCU_RWS_StartupCommand_0x310.Arc >> shift0) & _8bit;
    CAN_ch[4].tx.buf[2] = ((ECU3.TX.CH4_VCU_RWS_StartupCommand_0x310.RWS_WakeUpCommand1 >> shift0)
                         | (ECU3.TX.CH4_VCU_RWS_StartupCommand_0x310.RWS_ModeCommand1 << shift1)) & _8bit;

    CRC8_Func_FOR_RWS1(0x310,3,CAN_ch[4].tx.buf);


    can_send_config(CAN_INST_4,g_messageObjectConf_ECU3_4ch_TX[ECU3_CH4_TX_VCU_RWS_StartupCommand_5ms]);
}

void Transmit_VCU_RWS_Sister_CH4_0x350(void)
{
    CAN_ch[4].tx.buf[0] =  (ECU3.TX.CH4_VCU_RWS_Sister_0x350.Crc >> shift0) & _8bit;
    CAN_ch[4].tx.buf[1] =  (ECU3.TX.CH4_VCU_RWS_Sister_0x350.Arc >> shift0) & _8bit;
    CAN_ch[4].tx.buf[2] =  (ECU3.TX.CH4_VCU_RWS_Sister_0x350.EcuPowerMode1 >> shift0) & _8bit;
    CAN_ch[4].tx.buf[3] =  (ECU3.TX.CH4_VCU_RWS_Sister_0x350.EcuStatus1 >> shift0) & _8bit;
    CAN_ch[4].tx.buf[4] =  (ECU3.TX.CH4_VCU_RWS_Sister_0x350.EcuRole1 >> shift0) & _8bit;

    CRC8_Func_FOR_RWS1(0x350,5,CAN_ch[4].tx.buf);
    can_send_config(CAN_INST_4,g_messageObjectConf_ECU3_4ch_TX[ECU3_CH4_TX_VCU_RWS_Sister_5ms]);
}


/*---------------------------------------- CH5 TX ----------------------------------------*/
void Transmit_VCU_RWS_Rack_Cmd_CH5_0x040(void)
{
    CAN_ch[5].tx.buf[2] =  (ECU3.TX.CH5_VCU_RWS_Rack_Cmd_0x040.RackAngleCmd2 >> shift8) & _8bit;
    CAN_ch[5].tx.buf[3] =  (ECU3.TX.CH5_VCU_RWS_Rack_Cmd_0x040.RackAngleCmd2 >> shift0) & _8bit;

    CRC8_Func_FOR_RWS2(0x040,5,CAN_ch[5].tx.buf);
    can_send_config(CAN_INST_5,g_messageObjectConf_ECU3_5ch_TX[ECU3_CH5_TX_VCU_RWS_Rack_Cmd_5ms]);
}

void Transmit_VCU_RWS_Sister_CH5_0x350(void)
{
    CAN_ch[5].tx.buf[0] =  (ECU3.TX.CH5_VCU_RWS_Sister_0x350.Crc >> shift0) & _8bit;
    CAN_ch[5].tx.buf[1] =  (ECU3.TX.CH5_VCU_RWS_Sister_0x350.Arc >> shift0) & _8bit;
    CAN_ch[5].tx.buf[2] =  (ECU3.TX.CH5_VCU_RWS_Sister_0x350.EcuPowerMode2 >> shift0) & _8bit;
    CAN_ch[5].tx.buf[3] =  (ECU3.TX.CH5_VCU_RWS_Sister_0x350.EcuRole2 >> shift0) & _8bit;
    CAN_ch[5].tx.buf[4] =  (ECU3.TX.CH5_VCU_RWS_Sister_0x350.EcuStatus2 >> shift0) & _8bit;

    CRC8_Func_FOR_RWS2(0x350,5,CAN_ch[5].tx.buf);
    can_send_config(CAN_INST_5,g_messageObjectConf_ECU3_5ch_TX[ECU3_CH5_TX_VCU_RWS_Sister_5ms]);
}

void Transmit_VCU_RWS_StartupCommand_CH5_0x310(void)
{
    CAN_ch[5].tx.buf[0] =  (ECU3.TX.CH5_VCU_RWS_StartupCommand_0x310.Crc >> shift0) & _8bit;
    CAN_ch[5].tx.buf[1] =  (ECU3.TX.CH5_VCU_RWS_StartupCommand_0x310.Arc >> shift0) & _8bit;
    CAN_ch[5].tx.buf[2] = ((ECU3.TX.CH5_VCU_RWS_StartupCommand_0x310.RWS_WakeUpCommand2 >> shift0)
                         | (ECU3.TX.CH5_VCU_RWS_StartupCommand_0x310.RWS_ModeCommand2 << shift1)) & _8bit;

    CRC8_Func_FOR_RWS2(0x310,3,CAN_ch[5].tx.buf);
    can_send_config(CAN_INST_5,g_messageObjectConf_ECU3_5ch_TX[ECU3_CH5_TX_VCU_RWS_StartupCommand_5ms]);
}


/*======================================== Bypass Data ========================================*/
/* 4-1 C-A-G Bypass*/
void Bypass_Data_Set_BCM_VCU_Signal1_0x570_CH0_to_CH1(void)
{

}

/* 4-1 C-A-G Bypass*/
void Bypass_Data_Set_BCM_VCU_Signal2_0x580_CH0_to_CH1(void)
{

}

/* 4-1 C-A-G Bypass*/
void Bypass_Data_Set_BCM_VCU_Signal3_0x590_CH0_to_CH1(void)
{

}

/* 4-1 C-A-G Bypass*/
void Bypass_Data_Set_BCM_VCU_Signal4_0x595_CH0_to_CH1(void)
{

}

/* 4-1 C-A-G Bypass*/
void Bypass_Data_Set_BCM_VCU_Signal5_0x585_CH0_to_CH1(void)
{
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.OBC_FltSta 		= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_FltSta;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BMS_FltSta 		= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BMS_FltSta;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.LDC_FltSta 		= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.LDC_FltSta;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BCM_FltSta 		= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BCM_FltSta;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.BMS_TEMP_FAULT 	= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.BMS_TEMP_FAULT;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.LDC_TEMP_FAULT 	= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.LDC_TEMP_FAULT;
    ECU3.TX.CH1_BCM_VCU_ACU_Signal5_0x585.OBC_TEMP_FAULT	= ECU3.RX.CH0_BCM_VCU_Signal5_0x585.OBC_TEMP_FAULT;
}
/* 4-2 H,I-A-G Bypass*/
void Bypass_Data_Set_RWA_VCU_ACU_Signal1_CH3_to_CH1_0x050(void)
{
    ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_RackAngleFbk		= ECU3.RX.CH3_RWA_Status2_0x073.RackAngleFbk;
    ECU3.TX.CH1_RWA_VCU_ACU_Signal1_0x050.RWA_RackAngleSpeedFbk	= ECU3.RX.CH3_RWA_Status1_0x072.RackAngleSpeedFbk;
}
/* 4-2 J,K-A-G Bypass*/
void Bypass_Data_Set_RWA_VCU_ACU_Signal2_CH2_to_CH1_0x051(void)
{
    ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_RackAngleFbk		= ECU3.RX.CH2_RWA_Status2_0x073.RackAngleFbk;
    ECU3.TX.CH1_RWA_VCU_ACU_Signal2_0x051.RWA_RackAngleSpeedFbk = ECU3.RX.CH2_RWA_Status1_0x072.RackAngleSpeedFbk;
}
/* 4-3 H,I-A-F Bypass*/
void Bypass_Data_Set_RWA_VCU_RC_Signal1_0x050(void)
{
//    ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_RackAngleFbk1= (int)round((ECU3.RX.CH3_RWA_Status2_0x073.RackAngleFbk - Offset_m_655) / Factor_0_02) & _16bit;
//    ECU3.TX.CH0_RWA_RackAngleFbk1_0x050.RWA_RackAngleSpeedFbk1 = (int)round((ECU3.RX.CH3_RWA_Status1_0x072.RackAngleSpeedFbk - Offset_m_1638) / Factor_0_05) & _16bit;
}
/* 4-3 J,K-A-F Bypass*/
void Bypass_Data_Set_RWA_VCU_RC_Signal2_0x051(void)
{
//    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_RackAngleFbk2= (int)round((ECU3.RX.CH2_RWA_Status2_0x073.RackAngleFbk - Offset_m_655) / Factor_0_02) & _16bit;
//    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x051.RWA_RackAngleSpeedFbk2 = (int)round((ECU3.RX.CH2_RWA_Status1_0x072.RackAngleSpeedFbk - Offset_m_1638) / Factor_0_05) & _16bit;
}

/* 4-4 L,N-A-G Bypass*/
void Bypass_Data_Set_RWS_VCU_ACU_Signal1_CH4_to_CH1_0x060(void)
{
    ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_RackAngleFbk 		= ECU3.RX.CH4_RWS_VCU_Rack_AngleFbk_0x073.RWS_RackAngleFbk1;
    ECU3.TX.CH1_RWS_VCU_ACU_Signal1_0x060.RWS_RackAngleSpeedFbk	= ECU3.RX.CH4_RWS_VCU_stat_Signal_0x072.RWS_RackAngleSpeedFbk1;
}
/* 4-4 L,N-A-G Bypass*/
void Bypass_Data_Set_RWS_VCU_ACU_Signal2_CH5_to_CH1_0x061(void)
{
    ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_RackAngleFbk 		= ECU3.RX.CH5_RWS_VCU_Rack_AngleFbk_0x073.RWS_RackAngleFbk2;
    ECU3.TX.CH1_RWS_VCU_ACU_Signal2_0x061.RWS_RackAngleSpeedFbk = ECU3.RX.CH5_RWS_VCU_stat_Signal_0x072.RWS_RackAngleSpeedFbk2;
}
/* 4-5 L,N-A-F Bypass*/
void Bypass_Data_Set_RWS_VCU_RC_Signal1_0x060(void)
{
    ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_RackAngleFbk1 		= ECU3.RX.CH4_RWS_VCU_Rack_AngleFbk_0x073.RWS_RackAngleFbk1;
    ECU3.TX.CH0_RWS_VCU_RC_Signal1_0x060.RWS_RackAngleSpeedFbk1 = ECU3.RX.CH4_RWS_VCU_stat_Signal_0x072.RWS_RackAngleSpeedFbk1;
}
/* 4-5 L,N-A-F Bypass*/
void Bypass_Data_Set_RWS_VCU_RC_Signal2_0x061(void)
{
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_RackAngleFbk2		= ECU3.RX.CH5_RWS_VCU_Rack_AngleFbk_0x073.RWS_RackAngleFbk2;
    ECU3.TX.CH0_RWA_VCU_RC_Signal2_0x061.RWS_RackAngleSpeedFbk2 = ECU3.RX.CH5_RWS_VCU_stat_Signal_0x072.RWS_RackAngleSpeedFbk2;
}


void Bypass_Data_Set_BSC_RWA_RackCommand_CH3_0x040(void)
{
    /* 4-6 G-A-H,I Bypass*/
    // ECU3.TX.CH3_BSC_RWA_RackCommand_0x040.RackAngleCmd = (int)round((ECU3.RX.CH1_ACU_VCU_Signal1_0x090.ACU_RWA_cmd_deg - Offset_m_655) / Factor_0_02) & _16bit;
    /* 4-7 F-A-H,I Bypass*/

}


void Bypass_Data_Set_BSC_RWA_RackCommand_CH2_0x040(void)
{
    /* 4-6 G-A-J,K Bypass*/
    // ECU3.TX.CH2_BSC_RWA_RackCommand_0x040.RackAngleCmd = (int)round((ECU3.RX.CH1_ACU_VCU_Signal1_0x090.ACU_RWA_cmd_deg - Offset_m_655) / Factor_0_02) & _16bit;
    /* 4-7 F-A-J,J Bypass*/

}

/* 4-8 G-A-L Bypass*/
void Bypass_Data_Set_VCU_RWS_Rack_Cmd_CH4_0x040(void)
{
//    ECU3.TX.CH4_VCU_RWS_Rack_Cmd_0x040.RackAngleCmd1 = (int)round((ECU3.RX.CH1_ACU_VCU_Signal1_0x090.ACU_RWA_cmd_deg - Offset_m_655) / Factor_0_02) & _16bit;
}
/* 4-8 G-A-N Bypass*/
void Bypass_Data_Set_VCU_RWS_Rack_Cmd_CH5_0x040(void)
{
//    ECU3.TX.CH5_VCU_RWS_Rack_Cmd_0x040.RackAngleCmd2 = (int)round((ECU3.RX.CH1_ACU_VCU_Signal1_0x090.ACU_RWS_cmd_deg  - Offset_m_655) / Factor_0_02) & _16bit;
}


void Bypass_Data_Set_ACU_BCM_Signal_1_CH1_to_CH0_0x151(void)//  �ش� �κ� �ּ�ó�� �� ����
{
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_BRAKE_CMD 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_BRAKE_CMD & _2bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Hazard_CMD 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Hazard_CMD & _2bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_HBEAM_CMD 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_HBEAM_CMD & _2bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Head_CMD 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Head_CMD & _2bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_LTRN_CMD 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_LTRN_CMD & _2bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Reverse_CMD = ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Reverse_CMD & _2bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_RTRN_CMD 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_RTRN_CMD & _2bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_Position_CMD= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_Position_CMD & _2bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Lamp_DRL_CMD		= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Lamp_DRL_CMD & _2bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Wiper_CMD 		= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Wiper_CMD & _2bit;
//    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.LDC_ACT_CMD 		= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.LDC_ACT_CMD;
//    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.HV_ON_CMD 		= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.HV_ON_CMD & _2bit;
//    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.CE_ON_CMD 		= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.CE_ON_CMD & _2bit;
//    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.LDC_TRGT_CUR 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.LDC_TRGT_CUR & _8bit;
//    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Vcu_OperMode 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Vcu_OperMode & _3bit;
//    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.Vcu_SysMode 		= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.Vcu_SysMode & _3bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.VCU_BCM_counter 	= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.ACU_VCU_counter & _4bit;
    ECU3.TX.CH0_VCU_BCM_Signal_1_0x151.VCU_BCM_CRC 		= ECU3.RX.CH1_ACU_BCM_Signal_1_0x151.ACU_VCU_CRC & _4bit;
}
