USB转MeLiBu接口函数和数据类型定义
更多...
|
int WINAPI | MeLiBu_Init (int DevHandle, unsigned char Index, unsigned int BaudRate, unsigned char MasterMode, unsigned char ResEnable) |
| MELIBU总线初始化,在使用LIN相关函数之前必须先调用该函数 更多...
|
|
int WINAPI | MeLiBu_SetRevTime (int DevHandle, unsigned char Index, int TimeUs) |
| 设置接收数据时等待对方响应数据超时时间 更多...
|
|
int WINAPI | MeLiBu_MasterStartSch (int DevHandle, unsigned char Index, MELIBU_MSG *pMsg, unsigned int MsgLen, unsigned int SendTimes, unsigned char ReadBackFlag) |
| 主机模式执行MeLiBu总线调度表,可以使用该函数发送数据,读取从机数据 更多...
|
|
int WINAPI | MeLiBu_GetMsg (int DevHandle, unsigned char Index, MELIBU_MSG *pMsg, unsigned int BufferSize) |
| 获取帧缓冲区里面的帧数据,这些数据可能是发送出去的帧数据,也可能是从机模式下监控到的帧数据 更多...
|
|
unsigned short WINAPI | MeLiBu_GetID (unsigned char MsgMode, unsigned char SlaveAddr, unsigned char RT, unsigned char F, unsigned char dlc, unsigned char InstrExt) |
| 根据参数自动生成ID数据 更多...
|
|
int WINAPI | MeLiBu_MasterStopSch (int DevHandle, unsigned char Index) |
| 停止正在执行的调度表 更多...
|
|
int WINAPI | MeLiBu_Stop (int DevHandle, unsigned char Index) |
| 停止MELIBU总线,调用该函数后,总线无法再进行数据收发,需要使用总线需要重新调用 MeLiBu_Init 函数 更多...
|
|
long long WINAPI | MeLiBu_GetStartTime (int DevHandle, unsigned char Index) |
| 获取启动MELIBU总线时的起始时间戳,单位为毫秒,可以通过该时间戳转换成实时时间 更多...
|
|
int WINAPI | MeLiBu_GetSchInfo (int DevHandle, unsigned char Index, MELIBU_SCH_INFO *pSchInfo) |
| 获取当前调度表执行信息,可以通过调用该函数获取帧发送情况 更多...
|
|
|
函数调用出错后返回值定义
|
#define | MELIBU_SUCCESS (0) |
| 函数执行成功
|
|
#define | MELIBU_ERR_NOT_SUPPORT (-1) |
| 适配器不支持该函数
|
|
#define | MELIBU_ERR_USB_WRITE_FAIL (-2) |
| USB写数据失败
|
|
#define | MELIBU_ERR_USB_READ_FAIL (-3) |
| USB读数据失败
|
|
#define | MELIBU_ERR_CMD_FAIL (-4) |
| 命令执行失败
|
|
#define | MELIBU_ERR_PARAMETER (-5) |
| 参数错误
|
|
|
定义设备的工作模式,该参数在初始化的时候用到
|
#define | MELIBU_MASTER 0x01 |
| 设备工作在主机模式,可以控制总线收发数据
|
|
#define | MELIBU_SLAVE 0x00 |
| 设备工作在从机模式,可以用于监听总线数据
|
|
|
帧收发方向定义,该参数在帧方向判断时用到
|
#define | MELIBU_TX 0x00 |
| 主机发送数据给从机
|
|
#define | MELIBU_RX 0x01 |
| 主机向从机读数据
|
|
|
ID包含的数据定义
|
#define | MELIBU_ID_RT(ID) ((ID>>9)&1) |
|
#define | MELIBU_ID_FS(ID) ((ID>>8)&1) |
|
#define | MELIBU_ID_SADDR(ID) ((ID>>10)&0xFC) |
|
|
帧状态定义,一个位表示一个状态
|
#define | MELIBU_STATUS_NACK 0x01 |
| 写无应答(非广播帧)
|
|
#define | MELIBU_STATUS_RNRES 0x02 |
| 读数据无应答
|
|
#define | MELIBU_STATUS_ECRC 0x04 |
| CRC校验错误
|
|
#define | MELIBU_STATUS_FERR 0x08 |
| 帧异常,实际字节数跟规定的不匹配
|
|
#define | MELIBU_STATUS_DLEN 0x10 |
| 实际数据字节数跟帧头字节数不匹配
|
|
#define | MELIBU_STATUS_PERR 0x20 |
| P0 P1错误
|
|
USB转MeLiBu接口函数和数据类型定义
◆ MeLiBu_Init()
int WINAPI MeLiBu_Init |
( |
int |
DevHandle, |
|
|
unsigned char |
Index, |
|
|
unsigned int |
BaudRate, |
|
|
unsigned char |
MasterMode, |
|
|
unsigned char |
ResEnable |
|
) |
| |
MELIBU总线初始化,在使用LIN相关函数之前必须先调用该函数
- 参数
-
DevHandle | 设备号,通过调用 USB_ScanDevice 获取 |
Index | MELIBU通道号,0-CAN1,1-CAN2 |
BaudRate | MELIBU总线波特率值,单位为bps,最小值为2000,最大值为5000000 |
MasterMode | MELIBU工作模式,0-从机,1-主机 |
ResEnable | 总线上终端电阻使能设置,0-禁止,1-使能 |
- 返回
- 函数执行状态
- 返回值
-
◆ MeLiBu_SetRevTime()
int WINAPI MeLiBu_SetRevTime |
( |
int |
DevHandle, |
|
|
unsigned char |
Index, |
|
|
int |
TimeUs |
|
) |
| |
设置接收数据时等待对方响应数据超时时间
- 参数
-
DevHandle | 设备号,通过调用 USB_ScanDevice 获取 |
Index | MeLiBu通道号,0-CAN1,1-CAN2 |
TimeUs | 等待对方响应数据超时时间,单位为us,最大值为65536微秒 |
- 返回
- 函数执行状态
- 返回值
-
◆ MeLiBu_MasterStartSch()
int WINAPI MeLiBu_MasterStartSch |
( |
int |
DevHandle, |
|
|
unsigned char |
Index, |
|
|
MELIBU_MSG * |
pMsg, |
|
|
unsigned int |
MsgLen, |
|
|
unsigned int |
SendTimes, |
|
|
unsigned char |
ReadBackFlag |
|
) |
| |
主机模式执行MeLiBu总线调度表,可以使用该函数发送数据,读取从机数据
- 参数
-
DevHandle | 设备号,通过调用 USB_ScanDevice 获取 |
Index | MELIBU通道号,0-CAN1,1-CAN2 |
pMsg | 需要执行的帧数组起始地址 |
MsgLen | 帧数组里面有效帧数,最大不能超过64 |
SendTimes | 帧数组里面的帧循环发送次数,若设置为0xFFFFFFFF则表示一直循环发送数据,需要通过调用 MeLiBu_MasterStopSch 函数停止发送 |
ReadBackFlag | 回读调度表收发帧消息标志,0-不回读,1-需要回读,通过调用 MeLiBu_GetMsg 函数获取 |
- 返回
- 函数执行状态
- 返回值
-
◆ MeLiBu_GetMsg()
int WINAPI MeLiBu_GetMsg |
( |
int |
DevHandle, |
|
|
unsigned char |
Index, |
|
|
MELIBU_MSG * |
pMsg, |
|
|
unsigned int |
BufferSize |
|
) |
| |
获取帧缓冲区里面的帧数据,这些数据可能是发送出去的帧数据,也可能是从机模式下监控到的帧数据
- 参数
-
DevHandle | 设备号,通过调用 USB_ScanDevice 获取 |
Index | MELIBU通道号,0-CAN1,1-CAN2 |
pMsg | 需要存储帧数据帧数组起始地址 |
BufferSize | 存储帧数据的帧数组大小 |
- 返回
- 函数执行状态
- 返回值
-
◆ MeLiBu_GetID()
unsigned short WINAPI MeLiBu_GetID |
( |
unsigned char |
MsgMode, |
|
|
unsigned char |
SlaveAddr, |
|
|
unsigned char |
RT, |
|
|
unsigned char |
F, |
|
|
unsigned char |
dlc, |
|
|
unsigned char |
InstrExt |
|
) |
| |
根据参数自动生成ID数据
- 参数
-
MsgMode | 当前帧模式,0-常规模式,1-增强模式 |
SlaveAddr | 从机地址,最大值为0x3F |
RT | 方向选择,0-主机发送数据,从机接收数据,1-主机读取数据,从机发送数据 |
F | 功能选择位,设置为0或者1 |
dlc | 当前发送或者读取的数据字节数 |
InstrExt | 当F为0时,定义为帧类型,最大值为7,若F为1时,该参数无用 |
- 返回
- 通过传入的参数生成的ID值
◆ MeLiBu_MasterStopSch()
int WINAPI MeLiBu_MasterStopSch |
( |
int |
DevHandle, |
|
|
unsigned char |
Index |
|
) |
| |
停止正在执行的调度表
- 参数
-
- 返回
- 函数执行状态
- 返回值
-
◆ MeLiBu_Stop()
int WINAPI MeLiBu_Stop |
( |
int |
DevHandle, |
|
|
unsigned char |
Index |
|
) |
| |
停止MELIBU总线,调用该函数后,总线无法再进行数据收发,需要使用总线需要重新调用 MeLiBu_Init 函数
- 参数
-
DevHandle | DevHandle 设备号,通过调用 USB_ScanDevice 获取 |
Index | MELIBU通道号,0-CAN1,1-CAN2 |
- 返回
- 函数执行状态
- 返回值
-
◆ MeLiBu_GetStartTime()
long long WINAPI MeLiBu_GetStartTime |
( |
int |
DevHandle, |
|
|
unsigned char |
Index |
|
) |
| |
获取启动MELIBU总线时的起始时间戳,单位为毫秒,可以通过该时间戳转换成实时时间
- 参数
-
DevHandle | DevHandle 设备号,通过调用 USB_ScanDevice 获取 |
Index | MELIBU通道号,0-CAN1,1-CAN2 |
- 返回
◆ MeLiBu_GetSchInfo()
int WINAPI MeLiBu_GetSchInfo |
( |
int |
DevHandle, |
|
|
unsigned char |
Index, |
|
|
MELIBU_SCH_INFO * |
pSchInfo |
|
) |
| |
获取当前调度表执行信息,可以通过调用该函数获取帧发送情况
- 参数
-
DevHandle | 设备号,通过调用 USB_ScanDevice 获取 |
Index | LUMIBUS通道号,0-CAN1,1-CAN2 |
pSchRunFlag | 调度表运行状态存储指针 |
pSchSendTimes | 调度表发送次数存储指针 |
pAllMsgNum | 调度表里面总帧数指针 |
pCurrentMsgIndex | 调度表当前正在发送的帧索引号指针 |
- 返回
- 获取到的时间戳