#include "CAN_CH1_APP.h"
#include "CAN_CH1_Tx_Matirx.h"
#include  "CAN_CH1_CAN_Communication_Matrix.h"
#include "CAN_CH2_CAN_Communication_Matrix.h"
#include "CAN_CH0_CAN_Communication_Matrix.h"

void Can_Set_Buff_350(uint8_t CopyData[])
{
    uint8_t i = 0u;
    CANMsg350UnionE *pCANMsg350;
    pCANMsg350 = ( CANMsg350UnionE * )CopyData;
    if ( pCANMsg350 != ( void * )0 )
    {
        for ( i = 0u; i < 8u; i++ )
        {
            pCANMsg350->Msg [ i ] = 0u;
        }
        pCANMsg350->Sig.BSI_TYPAGE = 1;            
        pCANMsg350->Sig.BSI_DMD_AC = 2;             
        pCANMsg350->Sig.BSI_DMD_VISI =3;                     
        pCANMsg350->Sig.BSI_VAL_CONS_TEMP_AVG = 4;  
        pCANMsg350->Sig.BSI_VAL_CONS_TEMP_AVD = 5;    
        pCANMsg350->Sig.BSI_PULS_AV=  6;             
        pCANMsg350->Sig.BSI_ENTREE_AIR = 7;           
        pCANMsg350->Sig.BSI_DISTRIBUTION_AVD = 8;                     
        pCANMsg350->Sig.BSI_DISTRIBUTION_AVG = 9;   
    }
}
void Can_Set_Buff_3F1(uint8_t CopyData[])
{
     uint8_t         i = 0u;
    CANMsg3F1UnionE *pCANMsg3F1;
    pCANMsg3F1 = ( CANMsg3F1UnionE * )CopyData;
    if ( pCANMsg3F1 != ( void * )0 )
    {
        for ( i = 0u; i < 8u; i++ )
        {
            pCANMsg3F1->Msg [ i ] = 0u;
        }     
        pCANMsg3F1->Sig.REO_REGEN_LEVEL = 1;
        pCANMsg3F1->Sig.REQ_ECO_LEVEL = 2;

        pCANMsg3F1->Sig.IC_Mileage1restart = 3;    
        pCANMsg3F1->Sig.IC_Mileage2restart = 4;   
        pCANMsg3F1->Sig.ABAV_Req = 5;             
                           
        pCANMsg3F1->Sig.Charge_plug_unlock_req = 6;
         
        pCANMsg3F1->Sig.DISTANCE_TRAJET1_H_E = (uint8_t)((7 >> 8U) & 0xFFU);    
        pCANMsg3F1->Sig.DISTANCE_TRAJET1_L_E = (uint8_t)(6 & 0xFFU);      
        pCANMsg3F1->Sig.DISTANCE_TRAJET2_H_E = (uint8_t)((5 >> 8U) & 0xFFU);        
        pCANMsg3F1->Sig.DISTANCE_TRAJET2_L_E = (uint8_t)(4 & 0xFFU);        
    }
}

void Can_Set_Buff_0F6(uint8_t CopyData[])
{
    uint8_t         i = 0u;
    CANMsg0F6UnionE *pCANMsg0F6;
    pCANMsg0F6 = ( CANMsg0F6UnionE * )CopyData;
    if ( pCANMsg0F6 != ( void * )0 )
    {
        for ( i = 0u; i < 8u; i++ )
        {
            pCANMsg0F6->Msg [ i ] = 0u;
        }
        pCANMsg0F6->Sig.BSI_T_EXT = 8;
        
    }
}

void Can_Set_Buff_276(uint8_t CopyData[])
{
    uint8_t         i = 0u;
    CANMsg276UnionE *pCANMsg276;
    pCANMsg276 = ( CANMsg276UnionE * )CopyData;
    if ( pCANMsg276 != ( void * )0 )
    {
        for ( i = 0u; i < 8u; i++ )
        {
            pCANMsg276->Msg [ i ] = 0u;
        }
        pCANMsg276->Sig.BSI_ANNEE_HORLOGE = 1;                      
        pCANMsg276->Sig.BSI_MOIS_HORLOGE = 2;                        
        pCANMsg276->Sig.BSI_JOUR_HORLOGE = 3;                        
        pCANMsg276->Sig.BSI_HEURE_HORLOGE = 4;                      
        pCANMsg276->Sig.BSI_MINUTE_HORLOGE = 5;                     
        
    }
}


void Can_Set_Buff_128(uint8_t CopyData[])
{
    uint8_t         i = 0u;
    CANMsg128UnionE *pCANMsg128;
    pCANMsg128 = ( CANMsg128UnionE * )CopyData;
    if ( pCANMsg128 != ( void * )0 )
    {
        for ( i = 0u; i < 8u; i++ )
        {
            pCANMsg128->Msg [ i ] = 0u;
        }
        pCANMsg128->Sig.BSI_OUCP = 1;
        pCANMsg128->Sig.BSI_OUCC = 2;
        

    }
}


void Can_Set_Buff_190(uint8_t CopyData[])
{
    uint8_t         i = 0u;
    CANMsg190UnionE *pCANMsg190;
    pCANMsg190 = ( CANMsg190UnionE * )CopyData;
    if ( pCANMsg190 != ( void * )0 )
    {
        for ( i = 0u; i < 8u; i++ )
        {
            pCANMsg190->Msg [ i ] = 0u;
        }
       
        pCANMsg190->Sig.BSI_TEMP_SONDE_EVAPOL = 1;
        pCANMsg190->Sig.BSI_TEMP_SONDE_EVAPOH = 2;
        
    }
}

void Can_Set_Buff_036(uint8_t CopyData[])
{
    uint8_t         i = 0u;
    CANMsg036UnionE *pCANMsg036;
    pCANMsg036 = ( CANMsg036UnionE * )CopyData;
    if ( pCANMsg036 != ( void * )0 )
    {
        for ( i = 0u; i < 8u; i++ )
        {
            pCANMsg036->Msg [ i ] = 0u;
        }
       
       pCANMsg036->Sig.PHASE_VIE = 3;
        
    }
}

void Can_Set_Buff_294(uint8_t CopyData[])
{
    uint8_t         i = 0u;
    CANMsg294UnionE *pCANMsg294;
    pCANMsg294 = ( CANMsg294UnionE * )CopyData;
    if ( pCANMsg294 != ( void * )0 )
    {
        for ( i = 0u; i < 8u; i++ )
        {
            pCANMsg294->Msg [ i ] = 0u;
        }
       
       pCANMsg294->Sig.TURN_LIGHTS_STATUS = 1;
       pCANMsg294->Sig.HORN_STATUS = 2;
       pCANMsg294->Sig.REMOTE_LOCK_UNLOCK_STAT = 3;
    }
}

uint8_t volatile g_u8CAN_254_Count;
void CAN_CH1_254_Update(uint8_t copy[])
{
    if (g_u8CAN_254_Count == 0)
    {
        g_u8CAN_254_Count++;
    }  
}
uint8_t CAN_CH1_254_Update_Get(void)
{
    uint8_t u8Ret = 0U;

    if (g_u8CAN_254_Count > 0u)
    {
        u8Ret = 1;
        
    }
    return u8Ret;
}
void CAN_CH1_254_Update_Clear(void)
{
    g_u8CAN_254_Count = 0U;
}

uint8_t volatile g_u8CAN_43C_Count;
void CAN_CH1_43C_Update(uint8_t copy[])
{
    if (g_u8CAN_43C_Count == 0)
    {
        g_u8CAN_43C_Count++;
    }  
}
uint8_t CAN_CH1_43C_Update_Get(void)
{
    uint8_t u8Ret = 0U;

    if (g_u8CAN_43C_Count > 0u)
    {
        u8Ret = 1;
        
    }
    return u8Ret;
}
void CAN_CH1_43C_Update_Clear(void)
{
    g_u8CAN_43C_Count = 0U;
}

