当前位置: 首页 > news >正文

干货分享 | TSMaster小程序启动和停止的自动化控制流程

在实际应用场景中,用户常常需要按一定逻辑和时序来控制TSMaster内置功能模块的启动和停止,TSMaster软件内置有C/Python小程序和图形程序,开发者可以通过编程对这些模块的运行进行精确控制。本文将重点和大家分享一下如何通过C代码来控制TSMaster内置模块的启动与停止。

本文关键字:run_form、stop_form、C小程序、COM

目录

●  窗口启动和停止函数

●  内置小程序控制其它小程序的启停

●  通过 COM 控制小程序的启停

一、run_form和stop_form函数

在TSMaster内置的小程序有run_form函数和stop_form函数,用于控制TSMatser工作窗口的启动和暂停。例如CAN / CANFD发送窗口,通过这两个函数我们就能通过小程序编程实现对CAN / CANFD发送窗口进行控制,启动或停止发送报文。

△ 图1:小程序中的窗口启停函数 


△ 表1:run_form函数说明 


△ 表2:stop_form函数说明 

二、使用小程序控制其它小程序的启停

通过run_form函数和stop函数可以实现对TSMaster窗口的启动和停止实现控制,这里的窗口自然也包括C小程序窗口、Python小程序窗口和图形程序窗口。这样我们就可以通过代码互相控制小程序之间的启动和暂停。

🔜 如图2中,我们创建了两个C小程序,分别命名窗口名为“C 代码编辑器 [1]”和“C 代码编辑器 [2]”,我们在C小程序1中的按键事件中实现对C小程序2的控制,并在C小程序2的程序启动事件和程序停止事件中把启动信息打印到系统消息中。

△ 图2:编程控制小程序的启动和停止

在一些测试场景中我们需要控制一些小程序按顺序循环启动和暂停,可以在每个小程序中在需要停止当前小程序的时候调用terminate_application函数结束当前小程序,然后在程序结束事件中使用run_form函数启动下一个C小程序。

🔜 如图3中,我们在每个小程序的启动后两秒关闭本小程序并启动下个小程序,实现了对C小程序1、2、3的循环控制。

△ 图3:循环控制C小程序的启动和停止

另外在使用这两个函数有需要注意的一点,在使用窗口名作为入口参数时必须要把窗口的名称输入完整,例如图2中,使用这两个函数控制小程序的启停时需要完整得输入“C 代码编辑器 [1]”,而不仅仅只是“1”,否则会在系统消息窗口报错提示找不到窗口。

三、通过COM控制小程序的启停

TSMaster开放了COM的接口方便开发者通过外部程序调用和控制TSMaster工程,但是并未开放类似小程序中的run_form和stop_form的接口直接控制TSMaster工程中小程序的启动和停止。

然而这并不代表就不能通过外部的程序控制TSMaster工程中小程序的启动和停止,我们可以在这个被控制的TSMaster工程中常开一个小程序,在这个小程序中通过变量变化事件控制其它小程序的启停,这样就可以在外部程序通过调用系统变量的COM接口间接控制TSMaster工程中小程序的启停。

通过COM控制TSMaster小程序的步骤

1. 在被控制的TSMaster小程序中设置一个自动启动的小程序,在这个小程序中关联一个变量变化事件,在变量变化事件中使用run_form函数和stop_form函数控制其它小程序。

2. 在调用COM组件的外部程序中使用load_project函数导入需要控制的TSMaster工程,配置好通道数量和映射这个属性,然后使用connect函数启动TSMaster工程。

3. 使用set_system_var_generic对TSMaster工程中的系统变量赋值,触发C小程序中变量变化事件调用run_form和stop_form函数实现对TSMaster中小程序启动和停止的控制。

△ 图4:COM控制小程序的启停程序

△ 图5:COM控制小程序工程示例

相关文章:

干货分享 | TSMaster小程序启动和停止的自动化控制流程

在实际应用场景中,用户常常需要按一定逻辑和时序来控制TSMaster内置功能模块的启动和停止,TSMaster软件内置有C/Python小程序和图形程序,开发者可以通过编程对这些模块的运行进行精确控制。本文将重点和大家分享一下如何通过C代码来控制TSMas…...

AI视频智能分析识别技术的发展与EasyCVR智慧安防视频监控方案

随着科技的不断进步,基于AI神经网络的视频智能分析技术已经成为了当今社会的一个重要组成部分。这项技术通过利用计算机视觉和深度学习等技术,实现对视频数据的智能分析和处理,从而为各个领域提供了广泛的应用。今天我们就来介绍下视频智能分…...

外包干了2个月,技术倒退2年。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

书-用数组存储高于60低于70的人单独存起来

#include<stdio.h> # define N 10 //书-用数组存储高于60低于70的人单独存起来 int main(){float s[N]{68.2,62.3,63.4,34.5,45.6,56.7,67.8,78.9,89.0,100};int i;float diyu[100];int j0;for(i0;i<N;i){if(s[i]>60 && s[i]<70)diyu[j]s[i];//这里的范…...

三、DVP摄像头调试笔记(图片成像质量微调整,非ISP)

说明&#xff1a;当前调试仅仅用来测试和熟悉部分摄像头寄存器模式 一、图片成像方向控制&#xff0c;基本每个摄像头都会有上下左右翻转寄存器 正向图片 反向图片 二、设置成像数据成各种颜色&#xff0c;&#xff08;黑白/原彩/黄色等等&#xff09; 在寄存器书册描述中…...

Linux--程序地址空间

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 [TOC](文章目录) 一、程序地址空间回顾 我们在讲C语言的时候&#xff0c;老师给大家画过这样的空间布局…...

【超全】React学习笔记 下:路由与Redux状态管理

React学习笔记 React系列笔记学习 上篇笔记地址&#xff1a;【超全】React学习笔记 上&#xff1a;基础使用与脚手架 中篇笔记地址&#xff1a;【超全】React学习笔记 中&#xff1a;进阶语法与原理机制 React路由概念与理解使用 1. 引入 React路由是构建单页面应用(SPA, Sin…...

matplotlib学习

显示两个figure 坐标上刻度修改 plt.xlim() 下标范围 plt.xticks() 替换新的下标 图例显示 散点图 subplot多合一显示...

【网络安全】-安全常见术语介绍

文章目录 介绍1. 防火墙&#xff08;Firewall&#xff09;定义通俗解释 2. 恶意软件&#xff08;Malware&#xff09;定义通俗解释 3. 加密&#xff08;Encryption&#xff09;定义通俗解释 4. 多因素认证&#xff08;Multi-Factor Authentication&#xff0c;MFA&#xff09;定…...

C语言给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)

这个题目要求的输出是一串数字&#xff01;&#xff01;&#xff01; 不是下面&#xff1a;输入在一行中给出 10 个非负整数&#xff0c;顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50&#xff0c;且至少拥有 1 个非…...

vue+elementUI的tabs与table表格联动固定与滚动位置

有个变态的需求&#xff0c;要求tabs左侧固定&#xff0c;右侧是表格&#xff0c;点击左侧tab&#xff0c;右侧表格滚动到指定位置&#xff0c;同时&#xff0c;右侧滚动的时候&#xff0c;左侧tab高亮相应的item 上图 右侧的高度非常高&#xff0c;内容非常多 常规的瞄点不适…...

鸿蒙4.0开发笔记之ArkTS语法基础之应用生命周期与页面中组件的生命周期(十六)

文章目录 一、应用生命周期二、生命周期函数定义三、生命周期五函数练习 一、应用生命周期 1、定义 应用生命周期就是代表了一个HarmonyOS应用中所有页面从创建、开启到销毁等过程的全生命周期。查看路径如下&#xff1a; Project/entry/src/main/ets/entryability/EntryAbili…...

Android的前台服务

概述 前台服务是用户主动意识到的一种服务&#xff0c;因此在内存不足时&#xff0c;系统也不会考虑将其终止。前台服务必须为状态栏提供通知&#xff0c;将其放在运行中的标题下方。这意味着除非将服务停止或从前台移除&#xff0c;否则不能清除该通知。 在 Android 8.0&…...

99%小白不知道,BI报表能自动生成

BI报表的制作步骤、操作方式都很简单&#xff0c;基本是有手就会&#xff0c;但在繁忙的工作中&#xff0c;还是有很多人没时间去从零开发BI报表。那怎么办呢&#xff1f;99%的小白或许都不知道&#xff0c;BI报表能自动生成。 是的&#xff0c;你没看错&#xff0c;就是由BI系…...

rabbitmq技术

1&#xff0c;docker运行rabbitmq docker run --restartalways -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq 2&#xff0c;新增管理员用户 rabbitmq服务&#xff0c;添加用户以及授权_rabbitmq添加用户授权_ROBOT玲玉的博客-CSDN博客...

鸿蒙4.0开发笔记之ArkTS语法基础之条件渲染和循环渲染的使用(十五)

文章目录 一、条件渲染&#xff08;if&#xff09;二、循环渲染&#xff08;ForEach&#xff09; 一、条件渲染&#xff08;if&#xff09; 1、定义 正如其他语言中的if…else…语句&#xff0c;ArkTS提供了渲染控制的能力&#xff0c;条件渲染可根据应用的不同状态&#xff0…...

电子设备电路分析(2)-----高速激光脉冲探测器

今天来介绍一个高速激光脉冲探测器&#xff0c;能够快速探测高速激光脉冲&#xff0c;该装置的独特性在于能够分辨上升时间在纳秒量级的脉冲。 光电二极管 高速激光脉冲探测器的核心是一个PIN二极管&#xff0c;也就是光电二极管。光电二极管是一种将光转换为电流的半导体器件…...

WordPress(9)宝塔配置Redis

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、宝塔安装Redis2、安装好先关闭Redis1、Redis密码默认是没有的二、安装php、Redis扩展1.启动Redis三.WordPress 安装Redis1.安装Redis插件2.启动Redis前言 提示:这里可以添加本文要记录的…...

【Qt之QSqlRelationalTableModel】描述及使用

描述 QSqlRelationalDelegate链接: https://blog.csdn.net/MrHHHHHH/article/details/134690139 QSqlRelationalTableModel类为单个数据库表提供了一个可编辑的数据模型&#xff0c;并支持外键。 QSqlRelationalTableModel的行为类似于QSqlTableModel&#xff0c;但允许将列设…...

【Openstack Train安装】四、MariaDB/RabbitMQ 安装

本章介绍了MariaDB/RabbitMQ的安装步骤&#xff0c;MariaDB/RabbitMQ仅需要在控制节点安装。 在安装MariaDB/RabbitMQ前&#xff0c;请确保您按照以下教程进行了相关配置&#xff1a; 【Openstack Train安装】一、虚拟机创建 【Openstack Train安装】二、NTP安装 【Opensta…...

OmenSuperHub:惠普游戏本性能控制终极指南 - 开源替代方案全面解析

OmenSuperHub&#xff1a;惠普游戏本性能控制终极指南 - 开源替代方案全面解析 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为惠普Omen Gaming Hub的臃肿体积和隐私担忧而烦恼吗&#xff1f;OmenSuperHub为你提供了一…...

S32DS隐藏技巧:用FTM定时器实现精准延时(替代低效for循环)

S32DS隐藏技巧&#xff1a;用FTM定时器实现精准延时&#xff08;替代低效for循环&#xff09; 在嵌入式开发中&#xff0c;延时功能几乎是每个项目都无法绕开的基础需求。从简单的LED闪烁到复杂的通信协议时序控制&#xff0c;精准的延时控制直接影响着系统的稳定性和响应速度。…...

Java 核心四大基石:从 Object 源码到包装类陷阱的全维度复盘

让我们从两个常见的实际场景出发&#xff0c;看看开发者会遇到什么困惑。 场景一&#xff1a;如何在程序中获取“当前时间”&#xff1f; 你一定见过这样的界面&#xff1a; 直播画面右上角显示&#xff1a;2026 年 01 月 08 日 15:00:00&#xff08;实时更新&#xff09; 这个…...

终极Windows文件完整性验证指南:为什么专业开发者都选择HashCheck Shell Extension

终极Windows文件完整性验证指南&#xff1a;为什么专业开发者都选择HashCheck Shell Extension 【免费下载链接】HashCheck HashCheck Shell Extension for Windows with added SHA2, SHA3, and multithreading; originally from code.kliu.org 项目地址: https://gitcode.co…...

MCP 测试文章 1774508531523

这是一篇来自 MCP Server 的测试文章 测试正常工作&#xff01;...

ollama-QwQ-32B量化部署:在4GB内存设备运行OpenClaw的配置

ollama-QwQ-32B量化部署&#xff1a;在4GB内存设备运行OpenClaw的配置 1. 为什么要在低配设备上折腾大模型&#xff1f; 去年冬天&#xff0c;我在树莓派上第一次尝试部署OpenClaw时&#xff0c;被现实狠狠教育了一顿——32GB内存的笔记本跑得飞起&#xff0c;换到4GB的树莓派…...

Cadence原理图库‘幽灵版本’冲突全解析:从ORDBLL-1125报错看Cache机制与避坑指南

Cadence原理图库‘幽灵版本’冲突全解析&#xff1a;从ORDBLL-1125报错看Cache机制与避坑指南 在电子设计自动化&#xff08;EDA&#xff09;领域&#xff0c;Cadence作为行业标杆工具链&#xff0c;其原理图设计模块被广泛应用于各类复杂电路开发。然而&#xff0c;许多资深用…...

从零开始掌握30+种路径规划算法:可视化学习与实战指南

从零开始掌握30种路径规划算法&#xff1a;可视化学习与实战指南 【免费下载链接】PathPlanning Common used path planning algorithms with animations. 项目地址: https://gitcode.com/gh_mirrors/pa/PathPlanning 你是一个文章写手&#xff0c;你负责为开源项目写专…...

实测对比:openEuler三大桌面环境UKUI/DDE/XFCE安装体验与性能消耗

实测对比&#xff1a;openEuler三大桌面环境UKUI/DDE/XFCE安装体验与性能消耗 当技术决策者面对openEuler操作系统时&#xff0c;桌面环境的选择往往成为影响工作效率的关键因素。本文将基于openEuler 24.03 LTS环境&#xff0c;深度实测UKUI、DDE和XFCE三大主流桌面环境&…...

如何用LuckyLilliaBot在5分钟内构建QQ机器人:OneBot 11协议完全指南

如何用LuckyLilliaBot在5分钟内构建QQ机器人&#xff1a;OneBot 11协议完全指南 【免费下载链接】LuckyLilliaBot NTQQ的OneBot API插件 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot 想要快速搭建一个功能强大的QQ机器人吗&#xff1f;LuckyLilliaBot为…...