#define GLOBALS_LK_DIAGNO

#include "Link_Layer.h"
#include <string.h>

volatile _LinkData LinkDataBuf[2];
volatile _LinkData LinkData;
/*-------------------------------------------------------------------------
* Function Name  : LK_Link_main
* Description    :
* Input          :
* Output         : None
* Return         : None
* onther         :
--------------------------------------------------------------------------*/
void LK_Link_main(uint16_t PDU_addr, uint8_t *CAN_BufAddr, uint8_t dlc)
{
    if (LinkDataBuf[0].TransferStatus == empoty)
    {
        LinkDataBuf[0].Identifier = PDU_addr; //
        (void)memcpy((uint8_t *)&LinkDataBuf[0].Data[0], CAN_BufAddr, dlc);
        LinkDataBuf[0].DLC = dlc;
        LinkDataBuf[0].TransferStatus = full;
    }
    else if (LinkDataBuf[1].TransferStatus == empoty)
    {
        LinkDataBuf[1].Identifier = PDU_addr;
        (void)memcpy((uint8_t *)&LinkDataBuf[1].Data[0], CAN_BufAddr, dlc);
        LinkDataBuf[1].DLC = dlc;
        LinkDataBuf[1].TransferStatus = full;
    }
}

/*-------------------------------------------------------------------------
* Function Name  : LK_FillMsg
* Description    :
* Input          :
* Output         : None
* Return         : None
* onther         :
--------------------------------------------------------------------------*/
void LK_FillMsg(uint8_t *data, uint8_t FillData, uint8_t dlc)
{
    uint8_t i;
    for (i = dlc; i < 8; i++)
    {
        *(data + i) = FillData;
    }
}
