呼叫Smart打开指定项目
# TaskRunner 自定程序 - 呼叫Smart打开指定项目
# 1. 说明
- 任务运行器 TaskRunner 通过自定程序,呼叫 Smart 打开指定的程序项目。
- 自定程序的运行依赖于物联网开发工具 Smart,请先安装 Smart 再执行下列操作。以下假设 Smart 安装于默认目录
C:\Program Files (x86)\IsoFace\TARS
。
# 2. 设计程序
TaskRunner 的初始示例已包含 呼叫 Smart 打开指定项目
自定程序。下面介绍创建自定程序的流程。
- 点击
自定程序
选项卡,在自定程序界面中点击新建
按钮,打开新建程序界面。 - 在新建程序界面,填写要设计的自定程序的基本信息。如下图所示。填写完成点击
保存
按钮。
- 返回自定程序列表界面,选择刚才创建的
JS003
自定程序,点击菜单栏中的设计
按钮,打开程序设计器界面。 - 在程序设计器界面中输入自定程序代码,代码示例如下。完成后,点击
保存
按钮。
{
var id;
id = UGParams.Values["id"];
//结束Smart进程
UGCM.KillTask("Smart.exe");
//运行指定模板文件,请指定id ,id为模板文件名带扩展名,文件需在 Samples 目录下的位置,需指定相对位置
if (id!="")
ShellExecute("C:\\Program Files (x86)\\IsoFace\\Smart\\Smart.exe",id,0);
else
ShellExecute("C:\\Program Files (x86)\\IsoFace\\Smart\\Smart.exe","media\\S-EQ-DEM-2053_Chatroom.sdb -r",0);
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11

- 如需要测试效果,可在程序设计器界面中点击
运行
按钮进行测试。

程序中定义的参数说明如下:
名称 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
id | 要打开的项目名称 | 否 | media\S-EQ-DEM-2053_Chatroom.sdb -r |
# 3. 调用执行
设计完成的自定程序可使用以下方式来调用执行。
# 3.1. RestAPI
使用浏览器或RestAPI 客户端,访问以下地址,执行自定程序调用。请将 {ip}
修改为运行 TaskRunner 主机的IP地址,{port}
修改为 TaskRunner WebSocket 服务端监听的地址。
http://{ip}:{port}?restapi=script&taskname=JS003
1
如需要自行指定 Smart 打开的项目文件,参照以下方式执行。请将 {id}
替换为 Smart Sample
目录下的文件名称,在下级目录中的文件需带上目录名称。
http://{ip}:{port}?restapi=script&taskname=JS003&id={id}
1
# 3.2. WebSocket
使用WebSocket客户端,连接至 TaskRunner 中的 WebSocket 服务端。向 WebSocket 服务端发送以下文本实现自定程序的调用。
{"action":"script","taskname":"JS003"}
1
如需要自行指定 Smart 打开的项目文件,请在发送的内容中指定 id
参数,参数格式请参照以下内容。请将 {id}
替换为 Smart Sample
目录下的文件名称,在下级目录中的文件需带上目录名称。
{"action":"script","taskname":"JS003","params":[{"name":"id","value":"{id}"}]}
1
# 3.3. MQTT
使用 MQTT 客户端,连接至 TaskRunner 连接的 MQTT 服务器。MQTT 客户端向 TaskRunner 订阅的主题发送以下文本实现自定程序的调用。
{"action":"script","taskname":"JS003"}
1
如需要自行指定 Smart 打开的项目文件,请在发送的内容中指定 id
参数,参数格式请参照以下内容。请将 {id}
替换为 Smart Sample
目录下的文件名称,在下级目录中的文件需带上目录名称。
{"action":"script","taskname":"JS003","params":[{"name":"id","value":"{id}"}]}
1