#include "can_inf.h"
#include "can_base.h"


/**
 * @brief       can初始化
 * @param[in]   CAN_INF_CFG_STRU *pCanInitCfg can初始化配置
 * @return      int32_t
 * @retval      0:正常  !0:错误
 * @par         修改日志:
 * Date                Author     Description           \n
 * 2022-10-20           JHC        创建初始版本          \n
*/
int32_t canInf_init(CAN_INF_CFG_STRU *pCanInitCfg)
{
    int32_t ret = 0;
    if(pCanInitCfg == NULL)
    {
        return -1;
    }

    ret |= can_init(pCanInitCfg->canObjId);
    ret |= can_set_bitrate(pCanInitCfg->canObjId,pCanInitCfg->canBitRate);

    return ret;
}

/**
 * @brief       设置can滤波
 * @param[in]   uint32_t canObjId
 * @param[in]   CAN_INF_FILTER_STRU *pCanFilter 过滤配置
 * @param[in]   uint32_t filterNum  滤波配置数量
 * @return      int32_t
 * @retval      0:正常  !0:错误
 * @par         修改日志:
 * Date                Author     Description           \n
 * 2022-10-20           JHC        创建初始版本          \n
*/
int32_t canInf_canFilterConfig(uint32_t canObjId, CanFilter *pCanFilter, uint32_t filterNum)
{
    return can_setFilter(canObjId,pCanFilter,filterNum);
}

/**
 * @brief       发送CAN数据
 * @param[in]   uint32_t canObjId
 * @param[in]   CanMsg *txMsg can数据
 * @return      int32_t
 * @retval      0:正常  !0:错误
 * @par         修改日志:
 * Date                Author     Description           \n
 * 2022-10-20           JHC        创建初始版本          \n
*/
int32_t canInf_sendMsg(uint32_t canObjId, CanMsg *txMsg)
{
    return can_send(canObjId,txMsg);
}

/**
 * @brief       接收CAN数据
 * @param[in]   uint32_t canObjId
 * @param[in]   CanMsg *rxMsg can数据
 * @return      int32_t
 * @retval      0:正常  !0:错误
 * @par         修改日志:
 * Date                Author     Description           \n
 * 2022-10-20           JHC        创建初始版本          \n
*/
int32_t canInf_recvMsg(uint32_t canObjId, CanMsg *rxMsg)
{
    return can_rcv(canObjId,rxMsg);
}