USB2XXX 1.2
USB2XXX接口函数说明文档
载入中...
搜索中...
未找到
结构体 | 类型定义 | 函数
USB转CANFD

USB转CANFD接口函数和数据类型定义 更多...

结构体

struct  _CANFD_MSG
 CANFD帧类型定义 更多...
 
struct  _CANFD_INIT_CONFIG
 CANFD初始化结构体 更多...
 
struct  _CANFD_DIAGNOSTIC
 CANFD诊断帧信息结构体定义 更多...
 
struct  _CANFD_BUS_ERROR
 CANFD总线错误信息结构体定义 更多...
 
struct  _CANFD_FILTER_CONFIG
 CANFD过滤器结构体定义 更多...
 

类型定义

typedef struct _CANFD_MSG CANFD_MSG
 CANFD帧类型定义
 
typedef struct _CANFD_INIT_CONFIG CANFD_INIT_CONFIG
 CANFD初始化结构体
 
typedef struct _CANFD_DIAGNOSTIC CANFD_DIAGNOSTIC
 CANFD诊断帧信息结构体定义
 
typedef struct _CANFD_BUS_ERROR CANFD_BUS_ERROR
 CANFD总线错误信息结构体定义
 
typedef struct _CANFD_FILTER_CONFIG CANFD_FILTER_CONFIG
 CANFD过滤器结构体定义
 

函数

int WINAPI CANFD_GetCANSpeedArg (int DevHandle, CANFD_INIT_CONFIG *pCanConfig, unsigned int SpeedBpsNBT, unsigned int SpeedBpsDBT)
 通过波特率值获取具体的波特率参数,调用该函数后还需要调用 CANFD_Init 函数才能设置设备波特率值 更多...
 
int WINAPI CANFD_Init (int DevHandle, unsigned char CANIndex, CANFD_INIT_CONFIG *pCanConfig)
 初始化CAN总线,使用CAN功能时必须调用 更多...
 
int WINAPI CANFD_Init2 (int DevHandle, unsigned char CANIndex, int BaudRateNBTBps, int BaudRateDBTBps, unsigned char EnResistor, unsigned char ISOCRCEnable)
 简易方式初始化CAN总线,若需要自定义波特率参数,需要调用 CANFD_Init 实现 更多...
 
int WINAPI CANFD_StartGetMsg (int DevHandle, unsigned char CANIndex)
 启动CAN消息自动读取功能,调用后会在后台自动读取CAN消息并将消息存储在上位机数据缓冲区中,调用该函数可以防止数据丢失 更多...
 
int WINAPI CANFD_StopGetMsg (int DevHandle, unsigned char CANIndex)
 停止自动接收CAN消息,停止后适配器收到CAN消息后会将消息缓存到适配器内部数据缓冲区,若长时间不去读取数据,则先接收到的数据会被丢失 更多...
 
int WINAPI CANFD_SendMsg (int DevHandle, unsigned char CANIndex, CANFD_MSG *pCanSendMsg, unsigned int SendMsgNum)
 发送CAN消息,消息发送完毕后该函数才会返回 更多...
 
int WINAPI CANFD_SendMsgWithTime (int DevHandle, unsigned char CANIndex, CANFD_MSG *pCanSendMsg, unsigned int SendMsgNum)
 以特定帧间隔时间发送CAN消息,消息发送完毕后该函数才会返回 更多...
 
int WINAPI CANFD_SendMsgTimeout (int DevHandle, unsigned char CANIndex, CANFD_MSG *pCanSendMsg, unsigned int SendMsgNum, unsigned int TimeoutMs)
 发送CAN消息,消息发送完毕或者超时后该函数才会返回 更多...
 
int WINAPI CANFD_GetMsg (int DevHandle, unsigned char CANIndex, CANFD_MSG *pCanGetMsg, int BufferSize)
 读取接收到的CAN消息 更多...
 
int WINAPI CANFD_ClearMsg (int DevHandle, unsigned char CANIndex)
 清空CAN接收数据缓冲区 更多...
 
int WINAPI CANFD_SetFilter (int DevHandle, unsigned char CANIndex, CANFD_FILTER_CONFIG *pCanFilter, unsigned char Len)
 配置CAN过滤器,通过配置过滤器可以只接收特定ID帧,或者指定ID范围内的帧 更多...
 
int WINAPI CANFD_FilterList_Init (int DevHandle, unsigned char CANIndex, unsigned int *pIDList, unsigned char IDListLen)
 配置CAN过滤器,通过配置过滤器设置只接收某些帧ID数据 更多...
 
int WINAPI CANFD_GetDiagnostic (int DevHandle, unsigned char CANIndex, CANFD_DIAGNOSTIC *pCanDiagnostic)
 获取CAN总线错误帧信息 更多...
 
int WINAPI CANFD_GetBusError (int DevHandle, unsigned char CANIndex, CANFD_BUS_ERROR *pCanBusError)
 获取CAN总线错误帧信息 更多...
 
int WINAPI CANFD_Stop (int DevHandle, unsigned char CANIndex)
 停止CAN总线,调用该函数后,适配器CAN节点将从CAN总线上断开,且无法正常应答其他节点发送的数据 更多...
 
int WINAPI CANFD_SetSchedule (int DevHandle, unsigned char CANIndex, CANFD_MSG *pCanMsgTab, unsigned char *pMsgNum, unsigned short *pSendTimes, unsigned char MsgTabNum)
 设置CAN调度表数据,调度表模式发送数据可以精确控制帧之间的间隔时间,启动调度表后适配器可以自动发送调度表里面数据 更多...
 
int WINAPI CANFD_StartSchedule (int DevHandle, unsigned char CANIndex, unsigned char MsgTabIndex, unsigned char TimePrecMs, unsigned char OrderSend)
 启动CAN调度表 更多...
 
int WINAPI CANFD_UpdateSchedule (int DevHandle, unsigned char CANIndex, unsigned char MsgTabIndex, unsigned char MsgIndex, CANFD_MSG *pCanMsg, unsigned char MsgNum)
 更新调度表 更多...
 
int WINAPI CANFD_StopSchedule (int DevHandle, unsigned char CANIndex)
 停止执行CAN调度表 更多...
 
int WINAPI CANFD_SetRelay (int DevHandle, unsigned char RelayState)
 设置CAN中继状态 更多...
 
int WINAPI CANFD_SetRelayData (int DevHandle, CAN_RELAY_HEAD *pCANRelayHead, CAN_RELAY_DATA *pCANRelayData)
 设置CAN中继规则数据,调用该函数之前得确保两通道CAN都已经成功初始化 更多...
 
int WINAPI CANFD_GetRelayData (int DevHandle, CAN_RELAY_HEAD *pCANRelayHead, CAN_RELAY_DATA *pCANRelayData)
 读取CAN中继数据 更多...
 
int WINAPI CANFD_GetMsgSendTimeUs (CANFD_MSG *pMsg, int SpeedBpsNBT, int SpeedBpsDBT, unsigned char CANFDISO)
 获取消息发送耗时时间,该值为理论值,实际值可能会大一些 更多...
 
long long WINAPI CANFD_GetStartTime (int DevHandle, unsigned char CANIndex)
 获取CAN起始时间戳,该时间戳可以转换成实际的时间 更多...
 
int WINAPI CANFD_ResetStartTime (int DevHandle, unsigned char CANIndex)
 复位时间戳,复位后起始时间戳为当前时间 更多...
 
int WINAPI CANFD_SetStartTime (int DevHandle, unsigned char CANIndex, long long StartTimeMs)
 设置数据起始时间戳,主要用于将数据时间戳转换成实时时间用 更多...
 

函数返回错误值宏定义

函数调用出错后返回值定义

#define CANFD_SUCCESS   (0)
 函数执行成功
 
#define CANFD_ERR_NOT_SUPPORT   (-1)
 适配器不支持该函数
 
#define CANFD_ERR_USB_WRITE_FAIL   (-2)
 USB写数据失败
 
#define CANFD_ERR_USB_READ_FAIL   (-3)
 USB读数据失败
 
#define CANFD_ERR_CMD_FAIL   (-4)
 命令执行失败
 

CAN帧类型和数据类型定义

在CANFD_MSG.ID中使用

#define CANFD_MSG_FLAG_RTR   (0x40000000)
 
#define CANFD_MSG_FLAG_IDE   (0x80000000)
 
#define CANFD_MSG_FLAG_ID_MASK   (0x1FFFFFFF)
 

CANFD标志定义

在CANFD_MSG.Flags中使用

#define CANFD_MSG_FLAG_BRS   (0x01)
 CANFD加速帧标志
 
#define CANFD_MSG_FLAG_ESI   (0x02)
 
#define CANFD_MSG_FLAG_FDF   (0x04)
 CANFD帧标志
 
#define CANFD_MSG_FLAG_TXD   (0x80)
 发送帧标志
 

CAN总线状态定义

CANFD_DIAGNOSTIC.Flags中使用

#define CANFD_DIAGNOSTIC_FLAG_NBIT0_ERR   (0x0001)
 在发送报文(或应答位、主动错误标志或过载标志)期间,器件要发送显性电平(逻辑值为0的数据或标识符位),但监视的总线值为隐性。
 
#define CANFD_DIAGNOSTIC_FLAG_NBIT1_ERR   (0x0002)
 在发送报文(仲裁字段除外)期间,器件要发送隐性电平(逻辑值为1的位),但监视到的总线值为显性。
 
#define CANFD_DIAGNOSTIC_FLAG_NACK_ERR   (0x0004)
 发送报文未应答。
 
#define CANFD_DIAGNOSTIC_FLAG_NFORM_ERR   (0x0008)
 接收报文的固定格式部分格式错误。
 
#define CANFD_DIAGNOSTIC_FLAG_NSTUFF_ERR   (0x0010)
 在接收报文的一部分中,序列中包含了5个以上相等位,而报文中不允许出现这种序列。
 
#define CANFD_DIAGNOSTIC_FLAG_NCRC_ERR   (0x0020)
 接收的报文的CRC校验和不正确。输入报文的CRC与通过接收到的数据计算得到的CRC不匹配。
 
#define CANFD_DIAGNOSTIC_FLAG_TXBO_ERR   (0x0080)
 器件进入离线状态(且自动恢复)。
 
#define CANFD_DIAGNOSTIC_FLAG_DBIT0_ERR   (0x0100)
 见NBIT0_ERR
 
#define CANFD_DIAGNOSTIC_FLAG_DBIT1_ERR   (0x0200)
 见NBIT1_ERR
 
#define CANFD_DIAGNOSTIC_FLAG_DFORM_ERR   (0x0800)
 见NFORM_ERR
 
#define CANFD_DIAGNOSTIC_FLAG_DSTUFF_ERR   (0x1000)
 见NSTUFF_ERR
 
#define CANFD_DIAGNOSTIC_FLAG_DCRC_ERR   (0x2000)
 见NCRC_ERR
 
#define CANFD_DIAGNOSTIC_FLAG_ESI_ERR   (0x4000)
 接收的CAN FD报文的ESI标志置1
 
#define CANFD_DIAGNOSTIC_FLAG_DLC_MISMATCH   (0x8000)
 DLC不匹配,在发送或接收期间,指定的DLC大于FIFO元素的PLSIZE
 

CAN总线错误定义

CANFD_BUS_ERROR.Flags中使用

#define CANFD_BUS_ERROR_FLAG_TX_RX_WARNING   (0x01)
 
#define CANFD_BUS_ERROR_FLAG_RX_WARNING   (0x02)
 
#define CANFD_BUS_ERROR_FLAG_TX_WARNING   (0x04)
 
#define CANFD_BUS_ERROR_FLAG_RX_BUS_PASSIVE   (0x08)
 
#define CANFD_BUS_ERROR_FLAG_TX_BUS_PASSIVE   (0x10)
 
#define CANFD_BUS_ERROR_FLAG_TX_BUS_OFF   (0x20)
 

详细描述

USB转CANFD接口函数和数据类型定义

函数说明

◆ CANFD_GetCANSpeedArg()

int WINAPI CANFD_GetCANSpeedArg ( int  DevHandle,
CANFD_INIT_CONFIG pCanConfig,
unsigned int  SpeedBpsNBT,
unsigned int  SpeedBpsDBT 
)

通过波特率值获取具体的波特率参数,调用该函数后还需要调用 CANFD_Init 函数才能设置设备波特率值

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
[out]pCanConfigCANFD初始化结构体,用于存储波特率参数
SpeedBpsNBTCANFD仲裁域波特率,单位为bps,比如500K波特率,则传入500000
SpeedBpsDBTCANFD数据域波特率,CANFD加速帧使用该波特率传输数据
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_Init()

int WINAPI CANFD_Init ( int  DevHandle,
unsigned char  CANIndex,
CANFD_INIT_CONFIG pCanConfig 
)

初始化CAN总线,使用CAN功能时必须调用

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[in]pCanConfigCAN初始化相关参数,具体可以参考 CAN_INIT_CONFIG
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_Init2()

int WINAPI CANFD_Init2 ( int  DevHandle,
unsigned char  CANIndex,
int  BaudRateNBTBps,
int  BaudRateDBTBps,
unsigned char  EnResistor,
unsigned char  ISOCRCEnable 
)

简易方式初始化CAN总线,若需要自定义波特率参数,需要调用 CANFD_Init 实现

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
BaudRateNBTBpsCANFD仲裁域波特率,单位为bps,比如500K波特率,则传入500000
BaudRateDBTBpsCANFD数据域波特率,CANFD加速帧使用该波特率传输数据
EnResistor是否接入内部终端电阻,0-不接入,1-接入
ISOCRCEnableCRC校验模式
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_StartGetMsg()

int WINAPI CANFD_StartGetMsg ( int  DevHandle,
unsigned char  CANIndex 
)

启动CAN消息自动读取功能,调用后会在后台自动读取CAN消息并将消息存储在上位机数据缓冲区中,调用该函数可以防止数据丢失

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_StopGetMsg()

int WINAPI CANFD_StopGetMsg ( int  DevHandle,
unsigned char  CANIndex 
)

停止自动接收CAN消息,停止后适配器收到CAN消息后会将消息缓存到适配器内部数据缓冲区,若长时间不去读取数据,则先接收到的数据会被丢失

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_SendMsg()

int WINAPI CANFD_SendMsg ( int  DevHandle,
unsigned char  CANIndex,
CANFD_MSG pCanSendMsg,
unsigned int  SendMsgNum 
)

发送CAN消息,消息发送完毕后该函数才会返回

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[in]pCanSendMsgCAN消息指针
SendMsgNum待发送的消息帧数
返回
函数执行状态
返回值
=0CAN消息未发送成功
>0成功发送消息帧数
<0函数调用失败

◆ CANFD_SendMsgWithTime()

int WINAPI CANFD_SendMsgWithTime ( int  DevHandle,
unsigned char  CANIndex,
CANFD_MSG pCanSendMsg,
unsigned int  SendMsgNum 
)

以特定帧间隔时间发送CAN消息,消息发送完毕后该函数才会返回

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[in]pCanSendMsgCAN消息指针
SendMsgNum待发送的消息帧数
返回
函数执行状态
返回值
=0CAN消息未发送成功
>0成功发送消息帧数
<0函数调用失败

◆ CANFD_SendMsgTimeout()

int WINAPI CANFD_SendMsgTimeout ( int  DevHandle,
unsigned char  CANIndex,
CANFD_MSG pCanSendMsg,
unsigned int  SendMsgNum,
unsigned int  TimeoutMs 
)

发送CAN消息,消息发送完毕或者超时后该函数才会返回

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[in]pCanSendMsgCAN消息指针
SendMsgNum待发送的消息帧数
TimeoutMs等待超时时间,单位为ms
返回
函数执行状态
返回值
=0CAN消息未发送成功
>0成功发送消息帧数
<0函数调用失败

◆ CANFD_GetMsg()

int WINAPI CANFD_GetMsg ( int  DevHandle,
unsigned char  CANIndex,
CANFD_MSG pCanGetMsg,
int  BufferSize 
)

读取接收到的CAN消息

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[out]pCanGetMsg存储CAN消息数据缓冲区指针
BufferSize数据缓冲区能存储CAN消息帧数,也就是数据缓冲区容量大小
返回
函数执行状态
返回值
=0未读取到CAN消息
>0成功读取到的消息帧数
<0函数调用失败

◆ CANFD_ClearMsg()

int WINAPI CANFD_ClearMsg ( int  DevHandle,
unsigned char  CANIndex 
)

清空CAN接收数据缓冲区

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_SetFilter()

int WINAPI CANFD_SetFilter ( int  DevHandle,
unsigned char  CANIndex,
CANFD_FILTER_CONFIG pCanFilter,
unsigned char  Len 
)

配置CAN过滤器,通过配置过滤器可以只接收特定ID帧,或者指定ID范围内的帧

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[in]pFilterConfigCAN过滤器参数,具体可以参考 CANFD_FILTER_CONFIG
Len待配置的过滤器数
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_FilterList_Init()

int WINAPI CANFD_FilterList_Init ( int  DevHandle,
unsigned char  CANIndex,
unsigned int *  pIDList,
unsigned char  IDListLen 
)

配置CAN过滤器,通过配置过滤器设置只接收某些帧ID数据

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[in]pIDList需要接收的ID列表,ID的bit[31]位为扩展帧标志,ID的bit[30]位为远程帧标志
IDListLen需要接收的ID数量,最大值为32
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_GetDiagnostic()

int WINAPI CANFD_GetDiagnostic ( int  DevHandle,
unsigned char  CANIndex,
CANFD_DIAGNOSTIC pCanDiagnostic 
)

获取CAN总线错误帧信息

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
pCanDiagnosticCAN错误信息存储结构体指针,可以参考 CANFD_DIAGNOSTIC
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_GetBusError()

int WINAPI CANFD_GetBusError ( int  DevHandle,
unsigned char  CANIndex,
CANFD_BUS_ERROR pCanBusError 
)

获取CAN总线错误帧信息

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
pCanBusErrorCAN错误信息存储结构体指针,可以参考 CANFD_BUS_ERROR
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_Stop()

int WINAPI CANFD_Stop ( int  DevHandle,
unsigned char  CANIndex 
)

停止CAN总线,调用该函数后,适配器CAN节点将从CAN总线上断开,且无法正常应答其他节点发送的数据

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_SetSchedule()

int WINAPI CANFD_SetSchedule ( int  DevHandle,
unsigned char  CANIndex,
CANFD_MSG pCanMsgTab,
unsigned char *  pMsgNum,
unsigned short *  pSendTimes,
unsigned char  MsgTabNum 
)

设置CAN调度表数据,调度表模式发送数据可以精确控制帧之间的间隔时间,启动调度表后适配器可以自动发送调度表里面数据

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[in]pCanMsgTabCAN调度表列表指针
[in]pMsgNum调度表列表中每个调度表包含消息帧数
[in]pSendTimes每个调度表里面帧发送次数,若为0xFFFF,则循环发送,通过调用 CANFD_StopSchedule 函数停止发送
MsgTabNum调度表数
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_StartSchedule()

int WINAPI CANFD_StartSchedule ( int  DevHandle,
unsigned char  CANIndex,
unsigned char  MsgTabIndex,
unsigned char  TimePrecMs,
unsigned char  OrderSend 
)

启动CAN调度表

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
MsgTabIndexCAN调度表索引号
TimePrecMs调度表时间精度,比如调度表里面最小帧周期为10ms,那么就建议设置为10
OrderSend该调度表里面帧发送模式,0-并行发送,1-顺序发送
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_UpdateSchedule()

int WINAPI CANFD_UpdateSchedule ( int  DevHandle,
unsigned char  CANIndex,
unsigned char  MsgTabIndex,
unsigned char  MsgIndex,
CANFD_MSG pCanMsg,
unsigned char  MsgNum 
)

更新调度表

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
MsgTabIndexCAN调度表索引号
MsgIndex开始更新帧起始索引,若起始索引大于调度表帧数,则将帧添加到调度表后面
[in]pCanMsg需要更新的CAN帧指针
MsgNumpCanMsgTab里面包含的有效帧数
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_StopSchedule()

int WINAPI CANFD_StopSchedule ( int  DevHandle,
unsigned char  CANIndex 
)

停止执行CAN调度表

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_SetRelay()

int WINAPI CANFD_SetRelay ( int  DevHandle,
unsigned char  RelayState 
)

设置CAN中继状态

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
RelayStateCAN中继状态
CAN_RELAY_NONE 关闭中继功能
CAN_RELAY_CAN1TO2 CAN1-->CAN2 CAN1收到数据后通过CAN2转发出去
CAN_RELAY_CAN2TO1 CAN2-->CAN1 CAN2收到数据后通过CAN1转发出去
CAN_RELAY_CANALL CAN1<->CAN2 CAN1收到数据后通过CAN2转发出去,CAN2收到数据后通过CAN1转发出去
CAN_RELAY_ONLINE 根据中继数据进行在线转换,需要调用 CANFD_SetRelayData 函数设置中继数据
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_SetRelayData()

int WINAPI CANFD_SetRelayData ( int  DevHandle,
CAN_RELAY_HEAD *  pCANRelayHead,
CAN_RELAY_DATA *  pCANRelayData 
)

设置CAN中继规则数据,调用该函数之前得确保两通道CAN都已经成功初始化

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
[in]pCANRelayHead中继规则头指针
[in]pCANRelayData中继规则数据指针
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CANFD_GetRelayData()

int WINAPI CANFD_GetRelayData ( int  DevHandle,
CAN_RELAY_HEAD *  pCANRelayHead,
CAN_RELAY_DATA *  pCANRelayData 
)

读取CAN中继数据

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
[out]pCANRelayHead中继数据头指针
[out]pCANRelayData中继数据指针
返回
函数执行状态
返回值
>=0获取到的CAN中继数据帧数
<0函数调用失败

◆ CANFD_GetMsgSendTimeUs()

int WINAPI CANFD_GetMsgSendTimeUs ( CANFD_MSG pMsg,
int  SpeedBpsNBT,
int  SpeedBpsDBT,
unsigned char  CANFDISO 
)

获取消息发送耗时时间,该值为理论值,实际值可能会大一些

参数
[in]pMsgCANFD消息指针
SpeedBpsNBT仲裁域波特率,单位为Hz
SpeedBpsDBT数据域波特率,单位为Hz
CANFDISOCANFD校验标准,0-non-ISO标准,1-CANFD标准
返回
该帧发送耗时时间
返回值
发送该帧耗时时间,单位为us

◆ CANFD_GetStartTime()

long long WINAPI CANFD_GetStartTime ( int  DevHandle,
unsigned char  CANIndex 
)

获取CAN起始时间戳,该时间戳可以转换成实际的时间

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
返回
CAN起始时间戳
返回值
<0函数调用失败

◆ CANFD_ResetStartTime()

int WINAPI CANFD_ResetStartTime ( int  DevHandle,
unsigned char  CANIndex 
)

复位时间戳,复位后起始时间戳为当前时间

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
返回
函数执行状态
返回值
<0函数调用失败

◆ CANFD_SetStartTime()

int WINAPI CANFD_SetStartTime ( int  DevHandle,
unsigned char  CANIndex,
long long  StartTimeMs 
)

设置数据起始时间戳,主要用于将数据时间戳转换成实时时间用

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
StartTimeMs开始记录数据的起始时间戳,该时间戳为实时时间戳
返回
函数执行状态
返回值
<0函数调用失败