Link_Layer.c 1.49 KB
Newer Older
hu's avatar
hu committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#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         :
--------------------------------------------------------------------------*/
hu's avatar
hu committed
16
void LK_Link_main(uint32_t PDU_addr, uint8_t *CAN_BufAddr, uint8_t dlc)
hu's avatar
hu committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
{
    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;
    }
}