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

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

结构体

struct  _CAN_MSG
 CAN帧类型定义 更多...
 
struct  _CAN_INIT_CONFIG
 CAN初始化结构体 更多...
 
struct  _CAN_FILTER_CONFIG
 CAN过滤器结构体 更多...
 
struct  _CAN_STATUS
 CAN总线状态定义 更多...
 
struct  _CBL_CMD_LIST
 自定义CAN Bootloader命令列表 更多...
 

类型定义

typedef struct _CAN_MSG CAN_MSG
 CAN帧类型定义
 
typedef struct _CAN_MSGPCAN_MSG
 
typedef struct _CAN_INIT_CONFIG CAN_INIT_CONFIG
 CAN初始化结构体
 
typedef struct _CAN_INIT_CONFIGPCAN_INIT_CONFIG
 
typedef struct _CAN_FILTER_CONFIG CAN_FILTER_CONFIG
 CAN过滤器结构体
 
typedef struct _CAN_FILTER_CONFIGPCAN_FILTER_CONFIG
 
typedef struct _CAN_STATUS CAN_STATUS
 CAN总线状态定义
 
typedef struct _CAN_STATUSPCAN_STATUS
 
typedef struct _CBL_CMD_LIST CBL_CMD_LIST
 自定义CAN Bootloader命令列表
 
typedef struct _CBL_CMD_LISTPCBL_CMD_LIST
 

函数

int WINAPI CAN_GetCANSpeedArg (int DevHandle, CAN_INIT_CONFIG *pCanConfig, unsigned int BaudRateBps)
 通过波特率值获取具体的波特率参数,调用该函数后还需要调用 CAN_Init 函数才能设置设备波特率值 更多...
 
int WINAPI CAN_Init (int DevHandle, unsigned char CANIndex, CAN_INIT_CONFIG *pCanConfig)
 初始化CAN总线,使用CAN功能时必须调用 更多...
 
int WINAPI CAN_Init2 (int DevHandle, unsigned char CANIndex, int BaudRateBps, unsigned char EnResistor)
 简易方式初始化CAN总线,若需要自定义波特率参数,可以调用 CAN_Init 方式进行初始化 更多...
 
int WINAPI CAN_Filter_Init (int DevHandle, unsigned char CANIndex, CAN_FILTER_CONFIG *pFilterConfig)
 配置CAN过滤器,通过配置过滤器可以只接收特定ID帧,或者指定ID范围内的帧 更多...
 
int WINAPI CAN_FilterList_Init (int DevHandle, unsigned char CANIndex, unsigned int *pIDList, unsigned char IDListLen)
 配置CAN过滤器,通过配置过滤器设置只接收某些帧ID数据 更多...
 
int WINAPI CAN_StartGetMsg (int DevHandle, unsigned char CANIndex)
 启动CAN消息自动读取功能,调用后会在后台自动读取CAN消息并将消息存储在上位机数据缓冲区中,调用该函数可以防止数据丢失 更多...
 
int WINAPI CAN_StopGetMsg (int DevHandle, unsigned char CANIndex)
 停止自动接收CAN消息,停止后适配器收到CAN消息后会将消息缓存到适配器内部数据缓冲区,若长时间不去读取数据,则先接收到的数据会被丢失 更多...
 
int WINAPI CAN_SendMsg (int DevHandle, unsigned char CANIndex, CAN_MSG *pCanSendMsg, unsigned int SendMsgNum)
 发送CAN消息,消息发送完毕后该函数才会返回,发送期间会完全占用USB总线 更多...
 
int WINAPI CAN_SendMsgSynch (int DevHandle, unsigned char CANIndex, CAN_MSG *pCanSendMsg, unsigned int SendMsgNum)
 同步模式发送CAN消息,发送消息的时候不会完全占用USB总线 更多...
 
int WINAPI CAN_SendMsgWithTime (int DevHandle, unsigned char CANIndex, CAN_MSG *pCanSendMsg, unsigned int SendMsgNum)
 定时间隔模式发送CAN消息,发送消息的时候会完全占用USB总线,函数是阻塞的,同时会把发送帧放到接收数据缓冲区里面 更多...
 
int WINAPI CAN_GetMsg (int DevHandle, unsigned char CANIndex, CAN_MSG *pCanGetMsg)
 读取接收到的CAN消息,若调用了 CAN_StartGetMsg 函数,则从上位机缓冲区获取数据,否则从适配器内部获取数据 更多...
 
int WINAPI CAN_GetMsgWithSize (int DevHandle, unsigned char CANIndex, CAN_MSG *pCanGetMsg, int BufferSize)
 读取接收到的CAN消息 更多...
 
int WINAPI CAN_ClearMsg (int DevHandle, unsigned char CANIndex)
 清空CAN接收数据缓冲区 更多...
 
int WINAPI CAN_GetStatus (int DevHandle, unsigned char CANIndex, CAN_STATUS *pCANStatus)
 获取CAN总线状态信息 更多...
 
int WINAPI CAN_SetSchedule (int DevHandle, unsigned char CANIndex, CAN_MSG *pCanMsgTab, unsigned char *pMsgNum, unsigned short *pSendTimes, unsigned char MsgTabNum)
 设置CAN调度表数据,调度表模式发送数据可以精确控制帧之间的间隔时间,启动调度表后适配器可以自动发送调度表里面数据 更多...
 
int WINAPI CAN_StartSchedule (int DevHandle, unsigned char CANIndex, unsigned char MsgTabIndex, unsigned char TimePrecMs, unsigned char OrderSend)
 启动CAN调度表 更多...
 
int WINAPI CAN_UpdateSchedule (int DevHandle, unsigned char CANIndex, unsigned char MsgTabIndex, unsigned char MsgIndex, CAN_MSG *pCanMsg, unsigned char MsgNum)
 更新调度表 更多...
 
int WINAPI CAN_StopSchedule (int DevHandle, unsigned char CANIndex)
 停止执行CAN调度表 更多...
 
int WINAPI CAN_SetRelayData (int DevHandle, CAN_RELAY_HEAD *pCANRelayHead, CAN_RELAY_DATA *pCANRelayData)
 设置CAN中继规则数据,调用该函数之前得确保两通道CAN都已经成功初始化 更多...
 
int WINAPI CAN_GetRelayData (int DevHandle, CAN_RELAY_HEAD *pCANRelayHead, CAN_RELAY_DATA *pCANRelayData)
 读取CAN中继数据 更多...
 
int WINAPI CAN_SetRelay (int DevHandle, unsigned char RelayState)
 设置CAN中继状态 更多...
 
int WINAPI CAN_Stop (int DevHandle, unsigned char CANIndex)
 停止CAN总线,调用该函数后,适配器CAN节点将从CAN总线上断开,且无法正常应答其他节点发送的数据 更多...
 
int WINAPI CAN_GetMsgSendTimeUs (CAN_MSG *pMsg, int SpeedBps)
 获取消息发送耗时时间,该值为理论值,实际值可能会大一些 更多...
 
int WINAPI CAN_BL_Init (int DevHandle, int CANIndex, CAN_INIT_CONFIG *pInitConfig, CBL_CMD_LIST *pCmdList)
 CAN BOOT初始化 更多...
 
int WINAPI CAN_BL_NodeCheck (int DevHandle, int CANIndex, unsigned short NodeAddr, unsigned int *pVersion, unsigned int *pType, unsigned int TimeOut)
 节点在线状态检测 更多...
 
int WINAPI CAN_BL_Erase (int DevHandle, int CANIndex, unsigned short NodeAddr, unsigned int FlashSize, unsigned int TimeOut)
 擦出用户区数据 更多...
 
int WINAPI CAN_BL_Write (int DevHandle, int CANIndex, unsigned short NodeAddr, unsigned int AddrOffset, unsigned char *pData, unsigned int DataNum, unsigned int TimeOut)
 写数据到应用程序存储区 更多...
 
int WINAPI CAN_BL_Excute (int DevHandle, int CANIndex, unsigned short NodeAddr, unsigned int Type)
 执行程序 更多...
 
int WINAPI CAN_BL_SetNewBaudRate (int DevHandle, int CANIndex, unsigned short NodeAddr, CAN_INIT_CONFIG *pInitConfig, unsigned int NewBaudRate, unsigned int TimeOut)
 设置节点波特率 更多...
 
int WINAPI CAN_DecodeListFile (char *pFileName, unsigned int *pIgnoreIDList, int IgnoreIDListLen)
 解析列表文件 更多...
 
int WINAPI CAN_GetListFileMsg (int MsgIndex, int MsgLen, CAN_MSG *pCANMsg)
 从列表文件里面获取已经解析到的帧 更多...
 
long long WINAPI CAN_GetStartTime (int DevHandle, unsigned char CANIndex)
 获取CAN起始时间戳,该时间戳可以转换成实际的时间 更多...
 
int WINAPI CAN_ResetStartTime (int DevHandle, unsigned char CANIndex)
 复位时间戳,复位后起始时间戳为当前时间 更多...
 
int WINAPI CAN_SetStartTime (int DevHandle, unsigned char CANIndex, long long StartTimeMs)
 设置数据起始时间戳,主要用于将数据时间戳转换成实时时间用 更多...
 

函数返回错误值宏定义

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

#define CAN_SUCCESS   (0)
 函数执行成功
 
#define CAN_ERR_NOT_SUPPORT   (-1)
 适配器不支持该函数
 
#define CAN_ERR_USB_WRITE_FAIL   (-2)
 USB写数据失败
 
#define CAN_ERR_USB_READ_FAIL   (-3)
 USB读数据失败
 
#define CAN_ERR_CMD_FAIL   (-4)
 命令执行失败
 
#define CAN_BL_ERR_CONFIG   (-20)
 配置设备错误
 
#define CAN_BL_ERR_SEND   (-21)
 发送数据出错
 
#define CAN_BL_ERR_TIME_OUT   (-22)
 超时错误
 
#define CAN_BL_ERR_CMD   (-23)
 执行命令失败
 

CAN BOOT错误定义

CAN Bootloader返回错误代码定义

#define CAN_BOOT_ERR_CONFIG   (-30)
 配置设备错误
 
#define CAN_BOOT_ERR_SEND   (-31)
 发送数据出错
 
#define CAN_BOOT_ERR_TIME_OUT   (-32)
 超时错误
 
#define CAN_BOOT_ERR_CMD   (-33)
 执行命令失败
 
#define CAN_BOOT_ERR_BAUD   (-34)
 波特率参数自动获取失败
 
#define CAN_BOOT_ERR_BUFFER   (-35)
 从设备返回接收数据缓冲区大小为0
 

CAN BOOT固件类型定义

CAN Bootloader当前固件类型定义

#define CAN_BL_BOOT   0x55555555
 当前固件类型为Bootloader
 
#define CAN_BL_APP   0xAAAAAAAA
 当前固件类型为App
 

CAN中继模式定义

#define CAN_RELAY_NONE   0x00
 关闭中继功能
 
#define CAN_RELAY_CAN1TO2   0x01
 CAN1 --> CAN2 CAN1收到数据后通过CAN2转发出去
 
#define CAN_RELAY_CAN2TO1   0x10
 CAN2 --> CAN1 CAN2收到数据后通过CAN1转发出去
 
#define CAN_RELAY_CANALL   0x11
 CAN1 <-> CAN2 CAN1收到数据后通过CAN2转发出去,CAN2收到数据后通过CAN1转发出去
 
#define CAN_RELAY_ONLINE   0x88
 根据中继数据进行在线转换,需要调用CAN_SetOnlineRelayData函数设置中继数据
 

CAN总线错误定义

#define CAN_BUS_ERROR_FLAG_TX_RX_WARNING   (0x01)
 
#define CAN_BUS_ERROR_FLAG_BUS_PASSIVE   (0x02)
 
#define CAN_BUS_ERROR_FLAG_TX_BUS_OFF   (0x04)
 

CAN总线模式定义

#define CAN_NORMAL   0
 正常模式,需要外接CAN节点才能正常收发数据
 
#define CAN_LOOP_BACK   1
 回环模式,无需外接CAN节点就可以实现自发自收
 
#define CAN_EN_RESISTOR   0x80
 使能120Ω终端电阻
 

详细描述

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

函数说明

◆ CAN_GetCANSpeedArg()

int WINAPI CAN_GetCANSpeedArg ( int  DevHandle,
CAN_INIT_CONFIG pCanConfig,
unsigned int  BaudRateBps 
)

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

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
[out]pCanConfigCAN初始化结构体,用于存储波特率参数
BaudRateBpsCAN波特率值,单位为bps,比如500K波特率,则传入500000
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_Init()

int WINAPI CAN_Init ( int  DevHandle,
unsigned char  CANIndex,
CAN_INIT_CONFIG pCanConfig 
)

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

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

◆ CAN_Init2()

int WINAPI CAN_Init2 ( int  DevHandle,
unsigned char  CANIndex,
int  BaudRateBps,
unsigned char  EnResistor 
)

简易方式初始化CAN总线,若需要自定义波特率参数,可以调用 CAN_Init 方式进行初始化

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
BaudRateBps波特率,单位为bps,比如500K的波特率需要传入500000
EnResistor是否开启内部终端电阻,0-关闭,1-开启
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_Filter_Init()

int WINAPI CAN_Filter_Init ( int  DevHandle,
unsigned char  CANIndex,
CAN_FILTER_CONFIG pFilterConfig 
)

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

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

◆ CAN_FilterList_Init()

int WINAPI CAN_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数量,最大值为14
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_StartGetMsg()

int WINAPI CAN_StartGetMsg ( int  DevHandle,
unsigned char  CANIndex 
)

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

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

◆ CAN_StopGetMsg()

int WINAPI CAN_StopGetMsg ( int  DevHandle,
unsigned char  CANIndex 
)

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

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

◆ CAN_SendMsg()

int WINAPI CAN_SendMsg ( int  DevHandle,
unsigned char  CANIndex,
CAN_MSG pCanSendMsg,
unsigned int  SendMsgNum 
)

发送CAN消息,消息发送完毕后该函数才会返回,发送期间会完全占用USB总线

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

◆ CAN_SendMsgSynch()

int WINAPI CAN_SendMsgSynch ( int  DevHandle,
unsigned char  CANIndex,
CAN_MSG pCanSendMsg,
unsigned int  SendMsgNum 
)

同步模式发送CAN消息,发送消息的时候不会完全占用USB总线

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

◆ CAN_SendMsgWithTime()

int WINAPI CAN_SendMsgWithTime ( int  DevHandle,
unsigned char  CANIndex,
CAN_MSG pCanSendMsg,
unsigned int  SendMsgNum 
)

定时间隔模式发送CAN消息,发送消息的时候会完全占用USB总线,函数是阻塞的,同时会把发送帧放到接收数据缓冲区里面

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

◆ CAN_GetMsg()

int WINAPI CAN_GetMsg ( int  DevHandle,
unsigned char  CANIndex,
CAN_MSG pCanGetMsg 
)

读取接收到的CAN消息,若调用了 CAN_StartGetMsg 函数,则从上位机缓冲区获取数据,否则从适配器内部获取数据

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[out]pCanGetMsg存储CAN消息数据缓冲区指针,调用该函数会返回缓冲区中所有数据,所以该缓冲区要设置大一点,以免缓冲区溢出,导致程序异常
返回
函数执行状态
返回值
=0未读取到CAN消息
>0成功读取到的消息帧数
<0函数调用失败

◆ CAN_GetMsgWithSize()

int WINAPI CAN_GetMsgWithSize ( int  DevHandle,
unsigned char  CANIndex,
CAN_MSG pCanGetMsg,
int  BufferSize 
)

读取接收到的CAN消息

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

◆ CAN_ClearMsg()

int WINAPI CAN_ClearMsg ( int  DevHandle,
unsigned char  CANIndex 
)

清空CAN接收数据缓冲区

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

◆ CAN_GetStatus()

int WINAPI CAN_GetStatus ( int  DevHandle,
unsigned char  CANIndex,
CAN_STATUS pCANStatus 
)

获取CAN总线状态信息

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[out]pCANStatusCAN总线状态结构体指针,具体参考 CAN_STATUS
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_SetSchedule()

int WINAPI CAN_SetSchedule ( int  DevHandle,
unsigned char  CANIndex,
CAN_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,则循环发送,通过调用 CAN_StopSchedule 函数停止发送
MsgTabNum调度表数
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_StartSchedule()

int WINAPI CAN_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函数调用失败

◆ CAN_UpdateSchedule()

int WINAPI CAN_UpdateSchedule ( int  DevHandle,
unsigned char  CANIndex,
unsigned char  MsgTabIndex,
unsigned char  MsgIndex,
CAN_MSG pCanMsg,
unsigned char  MsgNum 
)

更新调度表

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

◆ CAN_StopSchedule()

int WINAPI CAN_StopSchedule ( int  DevHandle,
unsigned char  CANIndex 
)

停止执行CAN调度表

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

◆ CAN_SetRelayData()

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

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

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

◆ CAN_GetRelayData()

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

读取CAN中继数据

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

◆ CAN_SetRelay()

int WINAPI CAN_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 根据中继数据进行在线转换,需要调用 CAN_SetRelayData 函数设置中继数据
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_Stop()

int WINAPI CAN_Stop ( int  DevHandle,
unsigned char  CANIndex 
)

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

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

◆ CAN_GetMsgSendTimeUs()

int WINAPI CAN_GetMsgSendTimeUs ( CAN_MSG pMsg,
int  SpeedBps 
)

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

参数
[in]pMsgCAN消息指针
SpeedBps总线波特率,单位为Hz
返回
该帧发送耗时时间
返回值
发送该帧耗时时间,单位为us

◆ CAN_BL_Init()

int WINAPI CAN_BL_Init ( int  DevHandle,
int  CANIndex,
CAN_INIT_CONFIG pInitConfig,
CBL_CMD_LIST pCmdList 
)

CAN BOOT初始化

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
[in]pInitConfig初始化结构体指针
[in]pCmdList命令列表指针
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_BL_NodeCheck()

int WINAPI CAN_BL_NodeCheck ( int  DevHandle,
int  CANIndex,
unsigned short  NodeAddr,
unsigned int *  pVersion,
unsigned int *  pType,
unsigned int  TimeOut 
)

节点在线状态检测

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
NodeAddr节点地址
[out]pVersion固件版本号输出
[out]pType固件类型输出
TimeOut超时时间,单位为毫秒
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_BL_Erase()

int WINAPI CAN_BL_Erase ( int  DevHandle,
int  CANIndex,
unsigned short  NodeAddr,
unsigned int  FlashSize,
unsigned int  TimeOut 
)

擦出用户区数据

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
NodeAddr节点地址
FlashSize待擦出的数据长度,单位为字节
TimeOut超时时间,单位为毫秒
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_BL_Write()

int WINAPI CAN_BL_Write ( int  DevHandle,
int  CANIndex,
unsigned short  NodeAddr,
unsigned int  AddrOffset,
unsigned char *  pData,
unsigned int  DataNum,
unsigned int  TimeOut 
)

写数据到应用程序存储区

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
NodeAddr节点地址
AddrOffset数据写入起始地址
[in]pData待写入的数据指针
DataNum待写入数据字节数
TimeOut超时时间,单位为毫秒
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_BL_Excute()

int WINAPI CAN_BL_Excute ( int  DevHandle,
int  CANIndex,
unsigned short  NodeAddr,
unsigned int  Type 
)

执行程序

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
NodeAddr节点地址
Type固件类型
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_BL_SetNewBaudRate()

int WINAPI CAN_BL_SetNewBaudRate ( int  DevHandle,
int  CANIndex,
unsigned short  NodeAddr,
CAN_INIT_CONFIG pInitConfig,
unsigned int  NewBaudRate,
unsigned int  TimeOut 
)

设置节点波特率

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
CANIndexCAN通道号,0-CAN1,1-CAN2
NodeAddr节点地址
[in]pInitConfig初始化结构体指针
NewBaudRate新波特率值,单位为bps
TimeOut超时时间,单位为毫秒
返回
函数执行状态
返回值
=0函数执行成功
<0函数调用失败

◆ CAN_DecodeListFile()

int WINAPI CAN_DecodeListFile ( char *  pFileName,
unsigned int *  pIgnoreIDList,
int  IgnoreIDListLen 
)

解析列表文件

参数
pFileName文件名称
pIgnoreIDList需要忽略的ID列表指针
IgnoreIDListLen需要忽略的ID列表长度
返回
函数执行状态
返回值
>=0解析到的CAN帧数
<0函数调用失败

◆ CAN_GetListFileMsg()

int WINAPI CAN_GetListFileMsg ( int  MsgIndex,
int  MsgLen,
CAN_MSG pCANMsg 
)

从列表文件里面获取已经解析到的帧

参数
MsgIndex消息起始位置
MsgLen消息长度
pCANMsg消息数据存储指针
返回
函数执行状态
返回值
>=0成功获取到的消息帧数
<0函数调用失败

◆ CAN_GetStartTime()

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

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

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

◆ CAN_ResetStartTime()

int WINAPI CAN_ResetStartTime ( int  DevHandle,
unsigned char  CANIndex 
)

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

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

◆ CAN_SetStartTime()

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

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

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