第一部分: t语言路障清除: 用钩子(hooks)来实现程序流畅运行

前7年 作者:Judson Brundage

如果你熟悉 t 语言, 那你知道它是以“钩子(hooks)”为基础的。钩子在这里类似于中断。支持程序运行的代码块软件等待这些钩子, 然后执行在代码块中的此代码。例如,如果你需要答复一个ID 为 0x200的CAN报文, t 语言将是这样:

On CanMessage 0x200{
  replyFunc();
}

当我们收到一个ID 为 0x200的CAN报文, 我们的 t 语言将做出答复replyFunc(), 例如, 发出一个答复CAN报文, 在它完成答复后将离开代码块。但是,每次我们从ID 0x200收到一个报文,我们都从同一点开始。这使执行一系列活动变得困难。

通过一个外部增量机在这里加一个开关分支结构,我们可以进入这个钩子并使用此增量机,就像你用一个书签那样。我们可以进行某些处理,在我们离开之前加到此书签上。见下面的代码例子:

On CanMessage 0x200{
  switch(bookmark){
    case 0:
      replyFuncStepOne();
      bookmark++;
      break;
    case 1:
      replyFuncStepTwo();
      bookmark++;
      break;
    case 2:
      replyFuncStepThree();
      bookmark++;
      break;
  }
}

所以Kvasers的 t 语言钩子能处理一个事件和加书签开关分支结构,来进行一系列操作。 系统重置是此类系列操作的一个典型例子。我们用这个简单而有效的技术来跟踪统一诊断工具Unified Diagnostic Services (UDS)诊断出来的系列活动,以建立重置工具 (我写了一个相关文章,请关注!) 和CAN Calibration Protocol (CCP) 校准工具。

如果你想得到一个上述技术的 t 语言模板,可以在这里下载。如果你需要Exclusive Origin 为你进行 t 语言设计,来将一个存储器Memorator变为手提重置或再校准工具,请联系我们

此文是Judson关于最大限度利用t-script的系列文章之一。

Judson Brundage

拥有位于美国佛罗里达的 Exclusive Origin公司, Judson Brundage 为汽车工业提供测试,以及诊断性硬件和软件。基于他对CAN和汽车工业问题排查的深入了解,他是汽车工业开发领域非常受人尊敬的解决问题专家。


Exclusive Origin

Exclusive Origin, LLC 公司的使命是开发适合每个客户需求的易使用软件.

第二部分: t 脚本路障排除: 3个必不可少的t 语言资源 (外加馈赠一个窍门!)

最近我们用t语言解决范围广泛的一系列问题。这里是一些有关它的功能的提示:

  • 手提系统重置/校准工具
  • 节点模拟器
  • CAN FD 数据加密入口
  • 轻便硬件在环控制器

对每一个功能来说,都要克服一些障碍。我们总是要查看3个资源:

Kvaser的样板

是的,t-语言的样板包含(和隐藏!)在软件开发工具包SDK(你可以在这里从Kvaser网站下载最新的 SDK )。在安装之后,你可以看Windows 子目录directory-> C:\Program Files (x86)\Kvaser\Canlib\Samples\tScript。你能找到无处不在的“Hello World” 样板,和较为小众的样板,如指导你如何使用一个数据库文件(.dbc file or DBC file), 和文件I/O。请一定要查看the Learn More/Misc 子目录。.

t 语言手册

这是 t 语言手册,最容易的方式是打开TRX ( t 语言的集成开发环境) ,点击上方的工具栏中的“Help”, 选择“Open the Kvaser t Language Manual.”

利用printf功能进行调试

这是你的程序在碰到任何问题时的一个有效的追踪功能。你可以简单措施如 printf(当达到A条件“Reached Condition A”); 要确认触及代码块。

给存储器Memorator用户的一个窍门:当你用 t 语言时遇到系统没反应时,在你断开USB和你的电脑后的连接后,设备仍保持通电状态, 设备处于一个在你的脚本提到的某位置的连续循环中!

希望本文能帮助你编出顶级 t 版本!

此文是Judson关于最大限度利用t-script的系列文章之一。

第一部分: t语言路障清除: 用钩子(hooks)来实现程序流畅运行

联系我们