新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发

前言

今天给大家介绍TSMaster新功能—工具箱设计开发。有了这个模块,任何人都能够用Python来设计专业的TSMaster用户界面并集成到自己的工程中。

在此,需要大家更新TSMaster软件至最新版本。最新版本下载链接可以直接在公众号菜单栏回复“TSMaster”,即可获取。

工具箱的持久化功能

The persistence function of the toolkit /

打开TSMaster,进入后切换到应用,点击工具箱设计开发环境的图标,会出现开发环境的界面。同时会有一个新图标,而TSMaster工具箱出现在该图标的右侧。这个图标用来链接用户设计生成的界面。转发到开发环境界面,可以看到有两个现成的工具箱,一个是CAN报文的发送窗口,另一个是工具箱设计指南。

新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发_第1张图片

然后点击对应工具箱最右侧的运行按钮,窗口就会显示在TSMaster工具箱的链接下面,我们对这个窗口进行拖动和缩放。如果点击右上角的关闭,默认操作是隐藏,如果想要恢复这个窗口可以通过下拉找回,如果点击右上角的删除按钮,则可以永久的删除该窗口。这样的窗口每点击一次都会创建一个新的,每个窗口都有独立的配置。

新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发_第2张图片

我们可以尝试修改一下这个配置,比如将0x123改成0x321,同时我们将窗口稍微排布一下,新建一个页面,将其中的一个到两个窗口拉出来,保存工程,关闭TSMaster,再打开TSMaster,选择上一次的工程,打开之后就可以看到工具箱的窗口,布局依然是上一次关闭之前的状态。例如左边这个窗口的ID是0x321是我们改过的,右边这个窗口是默认的0x123,这就是工具箱的持久化功能。

新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发_第3张图片

Python的语法提示功能

Python syntax prompt /

在开发环境中,选择一个工具箱,双击对应的行,就可以来到代码编辑的窗口,该工具箱的所有的可视的元素和背后运行的所有逻辑,都在这一份Python代码里面。如果想用系统关联的Python文件编辑器来打开这个Python文件,只需要点击工具栏上的编辑按钮。

新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发_第4张图片

例如,本机上是用Visual Studio Code来关联Python文件,那么打开的就是Visual Studio Code,初次打开之后是需要安装Python的支持包。在VS code里面,可以在这里点击搜索Python,会看到微软发布的Python支持包,点击安装。安装以后就可以很轻松的修改和管理代码。

新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发_第5张图片

安装完成以后关闭扩展的界面,转到我们现在的Python的环境中,默认的Python环境会选取电脑上已经装过的Python路径。这个路径可能并不包含我们的TSMaster的引擎,所以我们需要切换Python环境。如果没有TSMaster的package,语法提示就会出现很多错误,那么我们就需要切换到默认的Python版本为TSMaster安装目录下的Python,当前的Python环境已经具备语法提示的功能。

新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发_第6张图片

按Ctrl+k+0,把代码折叠,我们大致看一下代码,该文件只有三部分内容,第一个是导入-import TSMaster,是TSMaster支持包中的类型信息;第二个是定义窗体类,它继承于TSMaster内部的TSForm;第三个是main函数,用于创建和启动脱离TSMaster的独立的程序。接下来我们重点介绍一下第二部分窗体类代码。

窗体类代码

Form class code /

主要分两块内容,第一块是init函数,第二块是用户定义的各种各样的函数。我们把init函数展开,会发现内部有大量的界面相关的代码。例如,DLC的Label框,转到TSMaster中,再找到VS code对应的代码创建代码,它设定了这个Label框的位置就是Left Top Width Height属性以及它的caption属性,这些代码用户可以手写,也可以通过TSMaster提供的窗体设计工具来自动生成。

我们将滚动条下拉,来到init函数的下半部分,就是在Auto Generated Python Code下方,是用户初始化代码存放的地方。我们可以在上面空间创建和设置,进一步设定空间的行为。例如这行,247行创建工具栏的按钮用于连接application,这个按钮创建之后,我们再将它的OnClick事件关联到我们本地的一个回调函数叫OnConnectClick,然后跳转到这个函数展开,它的执行逻辑就是,首先代用TSMaster的API,也就是我们小程序熟知的app.connect来连接application,如果连接成功,那就是返回值为0。

新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发_第7张图片

我们可以回到TSMaster软件中来验证一下,找一个窗口,单击工具栏上的连接按钮,会看到连接成功的提示。所有的toolbox的窗体的连接按钮都变成了灰色的状态,同时断开连接的按钮呈现激活状态,这就是TSMaster事件回调函数起的作用。

新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发_第8张图片

回到代码,找一下OnMeasurementStart函数,这个函数调用了一个子函数来设置按钮的状态,按住Ctrl进入这个函数,展开看一下,那么这个函数的逻辑就是,如果连接成功,则连接按钮变灰,断开按钮激活,同时,在窗体的状态栏打印应用程序已连接。否则说明连接已断开。所以每当我们点击连接的时候,会显示Measurement started,点击断开的时候会显示Measurement stopped。

至于点击回调函数的愿意,因为在窗体上有一个Measurement start回调函数,我们可以对它进行赋值,就是这行叫self.OnMeasurementStarted Event,我们可以将它赋值为我们内部的OnMeasurementStart这个回调函数。这样,每当TSMaster成功启动连接,就可以在任何地方启动连接。

新功能发布 | TSMaster工具箱集成开发环境系列1-工具箱设计开发_第9张图片

我们点击TSMaster启动连接,可以看到工具栏上的按钮的状态都同步发生了变化,之前看到的Raw_CAN_Transmit这个窗口是一个完整的demo,它实现了一个原始的CAN报文的发送逻辑,就是点击按钮发送,或者是定时器发送,或者是收到特定的报文之后触发发送。TSMaster工具箱集成开发环境系列后续还会更新新功能,敬请期待...

你可能感兴趣的:(软件工程,汽车)