0
点赞
收藏
分享

微信扫一扫

Kvaser Memorator Pro的T脚本使用

广州智维


Kvaser Memorator Pro的T脚本使用_离线


Kvaser Memorator Pro作为Kvaser CAN中的高端产品具备离线采集的记录功能,同时在其Pro专业版中更是支持通过T脚本进行事件控制。


T脚本编辑工具

Kvaser Memorator Pro的T脚本使用_Memorator Pro_02


在官方CANLIB包下有个TRX工具,用于T脚本编译生成可下载进 Memorator Pro的可执行文件

Kvaser Memorator Pro的T脚本使用_离线_03


TRX工具导入原程序文件,start运行程序会自动生成工程文件和可执行文件,start需要通过usb连接Memorator Pro。若出现错误无法start情况可以重启TRX工具。

‘xxx.t’原程序文件,’xxx.tprj’工程文件,’xxx.txe’可执行文件。


T脚本代码案例

T脚本语法类似C语言,但其程序主要靠钩子以及预定的函数实现,其运行顺序与代码出现顺序无关,但同类型钩子的运行顺序与出现顺序有关。

运行顺序为程序启动==》初始化变量==》执行start钩子==》程序运行==》执行stop钩子。

通常当设备上电就执行初始化和start钩子,下电就执行stop钩子。

Kvaser Memorator Pro的T脚本使用_Memorator Pro_04


根据个人理解T脚本为事件触发型语言,也就是当某个定义好的事件发送后,执行对应钩子中的语句。
例子:语句中有

Kvaser Memorator Pro的T脚本使用_离线_05


T脚本中预定了一些实时库类型和函数,通过这些类型和函数可以处理常用的事件。

Kvaser Memorator Pro的T脚本使用_可执行文件_06


下面demo实现CAN转CAN FD


// 函数声明

int canWrite(int ch2, const CanMessageFd msg);

// 变量初始化

variables {

const int ch1 = 0;

const int ch2 = 1;

}

on start {

// 确保通道处于Off状态,才能配置通道

canBusOff(ch1);

canBusOff(ch2);

// 通道0(CAN1)配置

canSetBitrate(ch1,canBITRATE_500K);

canSetBusOutputControl(ch1,canDRIVER_NORMAL);

canBusOn(ch1);

// 通道1(CAN2)配置

canSetBusParams(ch2, canFD_BITRATE_500K_80P, 0, 0, 0, 0);

canSetBusParamsFd(ch2, canFD_BITRATE_2M_80P, 0, 0, 0);

canSetCommunicationMode(ch2, canMODE_CAN_FD);

canSetBusOutputControl(ch2,canDRIVER_NORMAL);

canBusOn(ch2);

}

on stop {

canBusOff(ch1);

canBusOff(ch2);

}


// 当CAN1接收到ID=0x100时,将数据转为CANFD由CAN2发出ID=0x105

on CanMessage<ch1> 0x100

{

// 声明CANFD信息变量

CanMessageFd MsgFd;

MsgFd.id =0x105;

MsgFd.dlc = 8;

MsgFd.flags = canFDMSG_FDF;

MsgFd.data[0] = this.data[0];

MsgFd.data[1] = this.data[1];

MsgFd.data[2] = this.data[2];

MsgFd.data[3] = this.data[3];

MsgFd.data[4] = this.data[4];

MsgFd.data[5] = this.data[5];

MsgFd.data[6] = this.data[6];

MsgFd.data[7] = this.data[7];

// 调用发送函数

canWrite(ch2,MsgFd);

}


通过TRX生成可运行文件后,通过对应型号的Kvaser Memorator Pro tool将T脚本程序下载进设备中。
然后拔掉USB,给设备channel 1供电(离线记录模式),此时设备中的T脚本会自动运行。

Kvaser Memorator Pro的T脚本使用_Memorator Pro_07


使用CANking来监控T脚本在设备中的实际效果。

Kvaser Memorator Pro的T脚本使用_离线_08


Kvaser Memorator Pro的T脚本使用_离线_09


了解更多信息,可以搜索广州智维电子科技联系;

举报

相关推荐

0 条评论