2017-07-04
t编程入门
作者:admin 点击:1862
新型Kvaser专业b体育(福州)有限公司官网的脚本功能被命名位t。t语言是一种面向事件的“c”语言。 t程序在设备上运行,可以从pc或设备上自动加载和启动。以下是t编程入门的简短介绍。
为了能够测试和运行t程序,你需要一个Kvaser Professionalb体育(福州)有限公司官网(* 1)。所需软件由CANlib开发工具包进行安装,称为Kvaser TRX。
要开始运行并编写你的第一个t程序,首先下载并安装 CANlib开发工具包 (点击下载),然后启动TRX。
在
on start
{
printf("Hello World! ");
}
这是非常基本的程序,对‘on start’事件做出反应,并在‘Device Output’中输出“Hello World!”。事实上设备发送“Hello World!”给计算机,TRX进行读取。
然后从菜单中选择Run-> Compile。为了能够编译,你首先必须保存t程序,TRX会提示你这样做,它也会提示你保存项目文件。我把它保存为blogpost1。
如果编译成功,下一步将需要一个真实的Kvaser professional b体育(福州)有限公司官网(*1)。
我连接上了Kvaser Eagle分析仪(查看b体育(福州)有限公司官网)。你可以看到,TRX可以使用你的设备,因为菜单下的组合框有你的Kvaser设备名称。
要测试t程序,只需打开Run-> Download,这就会把t程序下载到设备。下一步就是真正地运行程序。 Run – > Run将启动应用程序,由此你就会在Device Output窗口中看到printf输出内容。
CANlib通道号还是卡号?
当与CANlib交互时,许多功能需要通道的句柄支持。这个通道通常被称为“CANlib通道”,因为这是其在Kvaser硬件中的标签。
如果要从Eagle设备上的第一个通道发送CAN报文,b体育(福州)有限公司官网应该打开CANlib通道3 canopenChannel(3, canOPEN_EXCLUSIVE)
。 CANlib中的某些功能与设备上的实际通道无关,因此你可以使用任何设备通道都同样成功。例如,要打开或关闭设备LED,可以调用kvFlashLeds(hnd, kvLED_ACTION_ALL_LEDS_ON)
,其中hnd
可以是CANlib通道3或4的句柄。那么为什么需要卡号?从历史的角度来看,没有通过Kvaser CANlib与Kvaser设备的所有交互都直接指向驱动程序。在这种情况下,不能使用CANlib通道号,因此需要新的数字来指示,例如“第二个设备”使用驱动程序kcany
。这个新号码被称为“卡号”,并在选择设备通道时显示在Kvaser硬件中。
在上图中,b体育(福州)有限公司官网可以看到,作为通道设备5的Kvaser Memorator Pro 5xHS连接到CANlib通道6和卡号2。 CANlib通道和卡号都是从零开始(正如程序员通常所做的那样),但是因随机生成机制,卡号在Kvaser硬件中显示(仅在Kvaser硬件中)得看起来像是从1开始。所以b体育(福州)有限公司官网的设备实际上连接到了CANlib通道6卡号1,这意味着b体育(福州)有限公司官网需要发出命令hydra_flash.exe -C1 imagefile.img
以升级此设备的固件。如今,其已成为历史,因为b体育(福州)有限公司官网通过调用CANlib (canGetChannelData(channel,
canCHANNELDATA_CARD_NUMBER, buffer, bufsize)
)函数可获得索引卡号0。这也是Python模块kvDevice的工作内容,其可在使用卡号的其它库(如kvmlib)进行交互时位你提供协助。不过,了解了其工作原理会很有意思。