#include  "CAN_CH0_CAN_Communication_Matrix.h"
#include "Components.h"
#include "Application.h"
/* 2024/06/16 14:48:34 */
st_CanMsgOp CAN_CH0_CanMsgOp;
st_CanMsgTxOp CAN_CH0_CanMsgTxOp;
#define CAN_CH0 &CAN_CH0_CanMsgOp

const st_CAN_SendAttribute    CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL] =
{
    {0x3A2ul, 2ul * 100ul,  0ul,    0u,  MSG_STD, 1u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_3A2, (void *)0},
    {0x3A7ul, 2ul * 100ul,  0ul,    0u,  MSG_EXT, 1u, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_3A7, (void *)0},
};
uint8_t System_Indicator_CANFlag = 0;
const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
{
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x393ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x398ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x39Dul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x3A2ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x3A7ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x157ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x38Eul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x18200A20ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x18202922ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x18203020ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x18203220ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        2000ul,
        0x125ul,
        (( void * )0),
        (System_Indicator_ON_callback),
        (System_Indicator_OFF_callback),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x339ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x18200A21ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
    {
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        {0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
        5000ul,
        0x134ul,
        (( void * )0),
        (( void * )0),
        (( void * )0),
    },
};
void System_Indicator_ON_callback(void)
{
    System_Indicator_CANFlag = 0;
}
void System_Indicator_OFF_callback(void)
{
    System_Indicator_CANFlag = 1;
}
uint8_t Get_CAN_Power_State(void)
{
    uint8_t state = 0;
    uint8_t Signal1 = Get_CAN_CH0_ID_125_Sig_MMCU_PowerMode();
    switch (Signal1)
    {
    case 0x0:
        state = KEY_OFF;
        break;
    case 0x1:
        state = PKEY_ON;
        break;
    case 0x2:
        state = KEY_ACC;
        break;
    case 0x3:
        state = READY;
        break;
    case 0x4:
        state = CHRG_PLUGIN;
        break;
    case 0x5:
        state = CHRGING;
        break;
    case 0x6:
        state = CHRGEND;
        break;
    default:
        break;
    }
    return state;
}
uint8_t  Get_CAN_CH0_ID_393_Sig_ICU_ProtoSubVer(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x393_Msg_Count, 6u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_393_Sig_ICU_ProtoVer(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x393_Msg_Count, 5u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_393_Sig_ICU_SoftPhaseVer(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x393_Msg_Count, 4u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_393_Sig_ICU_SubSoftVer(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x393_Msg_Count, 3u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_393_Sig_ICU_SoftVer(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x393_Msg_Count, 2u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_393_Sig_ICU_SubHardVer(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x393_Msg_Count, 1u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_393_Sig_ICU_HardVer(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x393_Msg_Count, 0u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_398_Sig_ICU_SN0(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x398_Msg_Count, 5u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_398_Sig_ICU_SN1(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x398_Msg_Count, 4u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_398_Sig_ICU_SN2(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x398_Msg_Count, 3u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_398_Sig_ICU_SN3(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x398_Msg_Count, 2u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_398_Sig_ICU_SN4(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x398_Msg_Count, 1u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_398_Sig_ICU_SN5(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x398_Msg_Count, 0u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_39D_Sig_ICU_ProductDay(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x39D_Msg_Count, 7u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_39D_Sig_ICU_ProductMon(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x39D_Msg_Count, 6u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_39D_Sig_ICU_ProductYear(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x39D_Msg_Count, 5u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_39D_Sig_ICU_CustomerCode(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x39D_Msg_Count, 4u) >> 0u) & 0xFFu));
}

uint16_t Get_CAN_CH0_ID_39D_Sig_ICU_ProductCode(void)
{
    return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x39D_Msg_Count, 2u) >> 0u) & 0xFFu) << 8u) + \
    ((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x39D_Msg_Count, 3u) >> 0u) & 0xFFu));
}

uint16_t Get_CAN_CH0_ID_39D_Sig_ICU_ProductName(void)
{
    return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x39D_Msg_Count, 0u) >> 0u) & 0xFFu) << 8u) + \
    ((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x39D_Msg_Count, 1u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_BluetoothConnectState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 2u) >> 4u) & 0x07u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_kEY_EState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 2u) >> 1u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_kEY_DState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 2u) >> 0u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_kEY_CState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 1u) >> 7u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_kEY_BState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 1u) >> 6u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_kEY_AState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 1u) >> 5u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_GrassFullState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 1u) >> 4u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_IndicatorLightPowerState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 1u) >> 3u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_IndicatorLightState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 1u) >> 0u) & 0x07u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_BuzzerState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 0u) >> 6u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_LEDLightState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 0u) >> 5u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_KL15State(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 0u) >> 4u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A2_Sig_ICU_POWERStateFB(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A2_Msg_Count, 0u) >> 0u) & 0x0Fu));
}

uint8_t  Get_CAN_CH0_ID_3A7_Sig_ICU_VCUCommunicatlost(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A7_Msg_Count, 0u) >> 3u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A7_Sig_ICU_MCUCommunicatlost(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A7_Msg_Count, 0u) >> 2u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A7_Sig_ICU_SlaveBMSCommunicatlost(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A7_Msg_Count, 0u) >> 1u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_3A7_Sig_ICU_MasterBMSCommunicatlost(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x3A7_Msg_Count, 0u) >> 0u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_157_Sig_BMCU_ErrorGrage(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x157_Msg_Count, 4u) >> 0u) & 0x07u));
}

uint8_t  Get_CAN_CH0_ID_157_Sig_BMCU_BladeSpeedGear(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x157_Msg_Count, 0u) >> 4u) & 0x07u));
}

uint8_t  Get_CAN_CH0_ID_157_Sig_BMCU_PTOSwicthState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x157_Msg_Count, 0u) >> 3u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_38E_Sig_BMCU_Moto2_Locked_RotorFault(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x38E_Msg_Count, 1u) >> 1u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_38E_Sig_BMCU_Moto1_Locked_RotorFault(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x38E_Msg_Count, 1u) >> 0u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_18200A20_Sig_MBMS_Soc(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x18200A20_Msg_Count, 4u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_18202922_Sig_MBMS_TOTALWorkState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x18202922_Msg_Count, 1u) >> 0u) & 0x07u));
}

uint8_t  Get_CAN_CH0_ID_18202922_Sig_MBMS_TOTALSigOn(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x18202922_Msg_Count, 0u) >> 2u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_18202922_Sig_MBMS_TOTALSigAcc(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x18202922_Msg_Count, 0u) >> 1u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_18202922_Sig_MBMS_TOTALSigCharge(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x18202922_Msg_Count, 0u) >> 0u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_18203020_Sig_MBMS_StatSoc(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x18203020_Msg_Count, 4u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattChargeState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x18203220_Msg_Count, 1u) >> 0u) & 0x07u));
}

uint8_t  Get_CAN_CH0_ID_18203220_Sig_MBMS_StatBattWorkState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x18203220_Msg_Count, 0u) >> 0u) & 0x0Fu));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_ErrorGrage(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 6u) >> 0u) & 0x07u));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_ChgProtectState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 3u) >> 2u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_DCDCEnableState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 3u) >> 1u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_ParkingGearState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 2u) >> 7u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_SeatDetectState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 2u) >> 1u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_LockMotoState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 2u) >> 0u) & 0x01u));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_EBSState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 1u) >> 6u) & 0x03u));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_TravelSpeedGear(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 1u) >> 0u) & 0x03u));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_PowerMode(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 0u) >> 2u) & 0x0Fu));
}

uint8_t  Get_CAN_CH0_ID_125_Sig_MMCU_WorkState(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x125_Msg_Count, 0u) >> 0u) & 0x03u));
}

uint16_t Get_CAN_CH0_ID_339_Sig_MMCU_AccumulatedWorkHours(void)
{
    return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x339_Msg_Count, 6u) >> 0u) & 0xFFu) << 8u) + \
    ((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x339_Msg_Count, 7u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_339_Sig_MMCU_SingleWorkingHours(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x339_Msg_Count, 5u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_18200A21_Sig_SBMS_Soc(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x18200A21_Msg_Count, 4u) >> 0u) & 0xFFu));
}

uint8_t  Get_CAN_CH0_ID_134_Sig_SMCU_ErrorGrage(void)
{
    return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,CAN_CH0_ID_CAN_0x134_Msg_Count, 2u) >> 0u) & 0x07u));
}

uint8_t  Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID)
{
    uint8_t u8Result = CAN_CH0_ID_TOTAL_MAX;
    switch (MsgID)
    {
    case CAN_CH0_ID_CAN_0x393_Msg:
        u8Result = CAN_CH0_ID_CAN_0x393_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x398_Msg:
        u8Result = CAN_CH0_ID_CAN_0x398_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x39D_Msg:
        u8Result = CAN_CH0_ID_CAN_0x39D_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x3A2_Msg:
        u8Result = CAN_CH0_ID_CAN_0x3A2_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x3A7_Msg:
        u8Result = CAN_CH0_ID_CAN_0x3A7_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x157_Msg:
        u8Result = CAN_CH0_ID_CAN_0x157_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x38E_Msg:
        u8Result = CAN_CH0_ID_CAN_0x38E_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x18200A20_Msg:
        u8Result = CAN_CH0_ID_CAN_0x18200A20_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x18202922_Msg:
        u8Result = CAN_CH0_ID_CAN_0x18202922_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x18203020_Msg:
        u8Result = CAN_CH0_ID_CAN_0x18203020_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x18203220_Msg:
        u8Result = CAN_CH0_ID_CAN_0x18203220_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x125_Msg:
        u8Result = CAN_CH0_ID_CAN_0x125_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x339_Msg:
        u8Result = CAN_CH0_ID_CAN_0x339_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x18200A21_Msg:
        u8Result = CAN_CH0_ID_CAN_0x18200A21_Msg_Count;
        break;
    case CAN_CH0_ID_CAN_0x134_Msg:
        u8Result = CAN_CH0_ID_CAN_0x134_Msg_Count;
        break;
    default :
        u8Result = CAN_CH0_ID_TOTAL_MAX;
        break;
    }
    return u8Result;
}

