服务与案例 Service 当前位置: 首页 > 服务与案例 > 应用案例 >
固定电话:028-68743610
客服手机:13730631678
客服QQ  :
 
联系地址:四川省成都市成华区双林横路12号
按键触发发送CAN数据(使用脚本)
2015-08-18 21:28:31

  按下某个按键发送CAN数据,这是CAN分析测试中常用的一种操作。在CANupoks中,脚本功能对其提供了支持,而CANslinkal提供了脚本与模块编程两种方式来支持。这里以CANupoks为例介绍该操作的实现,CANslinkal的操作是一样的,不再分开叙述。

 打开CANupoks,新建一工程,如下图:

\

 然后在左边工程导航栏中的“交互脚本”项目上,点击右键,弹出菜单,新建一个脚本:
\

 系统会自动建立一个名为“SCRIPT0”的脚本项目,双击条目,即可打开脚本编辑页面,界面如下图:
\

  用户可以直接在编辑页面输入代码来完成。对于按键触发这种简单操作,也可以使用自动代码生成向导让系统自动生成代码。这里就使用自动代码生成的功能来完成。使用如下菜单打开代码生成向导:
\

打开向导对话框:

\
  我们设定任务如下:按下“D”键,发送一个CAN数据。CAN ID为0x18FFDE00,扩展类型。从通道1发送,数据长度为8字节,分别为0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07。

 1.函数名设置

 在上述对话框中,输入函数名。函数名可以为任意满足C语言规范的名称。这里我们设置为“OnKeyPressD”。

 2.函数回调类型

 首先在“回调类型”组合下拉框中选择“按放键”,如下图:

\

 然后点击回调类型组合框右侧的“回调属性编辑”按钮,打开属性编辑对话框,并设置如下:

\
 
  通过上述设置,就定义了“按下D键执行函数OnKeyPressD”的的操作命令。

3.函数功能设置

  然后在CAN数据编辑区域,点击“添加”按钮,就可以建立一个CAN数据,这就是函数执行时要发送的数据。如下图:
\
 
  上面的CAN数据肯定不是我们想要的。直接在CAN ID、ID类型、传输长度等数据项目上双击左键,可以直接编辑其内容。根据我们的任务要求,编辑如下:
\

  在这个任务中,其它的参数可以不用管。至于其它参数的功能,用户可以参看CANupoks或者CANslinkal的帮助文档中“交互脚本”中的说明。

4.生成代码

  按下最下部的“生成代码”按钮,就可以生成代码了。生成的代码会添加的脚本的最后面。生成代码后,关闭向导。结果如下图:
\
 只要稍稍明白C语言语系(C++、C#、JAVA等)语法的用户,就能够很容易看懂上述自动生成代码的功能。
 最后,我们运行一下看看结果。
 首先,在工程导航栏中“SCRIPT0”脚本项目上,点击右键,使用快捷菜单选择该脚本作为要运行的脚本:
\
  然后设置CAN参数。因为是演示功能,所以我们使用虚拟硬件即可,不用连接实际硬件。另外,将CAN1与CAN2对接,以让CAN1发送的数据,CAN2能够收到。同样CAN2发送的数据,CAN1能够收到:
\ 
  之后运行系统,并打开“ID观测”页面。可以看见,没有任何数据。这里因为需要用户按下“D”键才会发送数据。使用主菜单“查看/按键触发输入框”,可以打开“按键触发输入框”。这里该输入框显示在主界面的右上侧:
\
 点击“按键触发输入框”中的输入栏,然后按下“D”键(请关闭任何中文输入法,以能直接输入英文),就可以看见“ID观测”页面中出现了数据,这正是我们想要的:
\
  从CAN1发送出去了我们想要的数据,因为CAN2与CAN1对接,所以CAN2也收到了同样的数据。
可以反复按下“D”键,在“ID观测”页面中,检视“已接收数量”,可以发现其值与按下D键的次数是一样的。这说明我们的代码功能是成功的。
  代码自动生成功能,可以自动为用户完成很多事。用户可以参看CANupoks或者CANslinkal的帮助文档中“交互脚本”中的说明。
  生成的代码是可以随意修改的,这就为用户自定义各种功能提供了强力支持。这远比市面上一些CAN分析仪所提供的CAN数据发送功能强大得多。