易语言完整示例(多设备)

在 Total Control 的脚本文档中,你会看到有【是否支持多设备:不支持】或者 【是否支持多设备:支持】的语句。
如果文档中写"是否支持多设备:支持",表示此接口是支持同时控制多个设备,您可以执行这个API,既可以只控制一个设备,也可以同时控制多个设备。控制一个还是多个设备,取决于你获取的是一个还是多个设备。
如果文档中写"是否支持多设备:不支持",表示此接口是不支持同时控制多个设备,您执行这个API,只能控制一个设备。

使用 Total Control REST API 控制设备的一般步骤:
  • 获取 Total Control 脚本开发所用的开发 token
  • 获取多个设备 ID 值,例如:{"ids":["device@33254183","device@230441652"]}
  • 通过第二步的多个设备 ID 值(多设备),对获取的设备进行操作

如何使用易语言控制多台设备

用易语言实现运行多台设备上的软件"com.sigma_rt.totalcontrol"
Total Control REST API 运行指定软件的请求方法:POST,
请求路径:


http://IP:8090/TotalControl/v1/devices/ids/apps/:appName?token=:token&state=active&ids=:ids
易语言完整代码(截图)

易语言完整代码(文本)

.版本 2

.程序集 窗口程序集_启动窗口

.子程序 __启动窗口_创建完毕
.局部变量 base64, 文本型
.局部变量 token, 文本型
.局部变量 devices, 文本型
.局部变量 j_token, 类_json, , , 用来解析获取 token 的 json
.局部变量 j_dev, 类_json, , , 用来解析获取设备ID 值的 json
.局部变量 j_ret, 类_json, , , 用来解析 REST API 接口的json
.局部变量 bool, 逻辑型
.局部变量 bool_dev, 逻辑型
.局部变量 bool_ret, 逻辑型
.局部变量 AppName, 文本型
.局部变量 status, 文本型
.局部变量 数组成员, 类_json


base64 = 到文本 (编码_BASE64编码 (到字节集 (“sigma:3D391497”)))
输出调试文本 (“将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: ” + base64)
bool = j_token.解析 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/login”, 0, , , , “Authorization:” + base64, , , , , , , , , )))
.如果 (bool)
    输出调试文本 (“第一步,获取 token,返回值为:” + j_token.取数据文本 ())
    token = j_token.取通用属性 (“['value'].token”)
    输出调试文本 (“获取的 token 值为: ” + token)
    bool_dev = j_dev.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices?q=all&token=” + token, 0))))
    .如果 (bool_dev)
        输出调试文本 (“第二步,获取设备 ID 值,返回值为:” + j_dev.取数据文本 ())
        devices = j_dev.取属性对象 (“ids”)
        输出调试文本 (“获取的设备 ID 值为: ” + devices)
        AppName = “com.sigma_rt.totalcontrol”
        bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/ids/apps/” + AppName + “?state=active&token=” + token + “&ids=” + devices, 1))))
        .如果 (bool_ret)
            输出调试文本 (“第三步,打开手机” + devices + “上指定软件” + AppName)
            输出调试文本 (“REST API 打开指定软件的返回值为: ” + j_ret.取数据文本 ())
        .否则
            输出调试文本 (“该 API 执行失败”)
        .如果结束

    .否则
        输出调试文本 (“获取设备 ID 值失败”)
    .如果结束

.否则
    输出调试文本 (“获取 token 失败”)
.如果结束


运行结果

* 将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: c2lnbWE6M0QzOTE0OTc=
* 第一步,获取 token,返回值为:{"status":true,"value":{"token":"ZEGpMU851z2CR45y"}}
* 获取的 token 值为: ZEGpMU851z2CR45y
* 第二步,获取设备 ID 值,返回值为:{"ids":["device@33254183","device@230441652"]}
* 获取的设备 ID 值为: ["device@33254183","device@230441652"]
* 第三步,打开手机["device@33254183","device@230441652"]上指定软件com.sigma_rt.totalcontrol
* REST API 打开指定软件的返回值为: [{"id":"device@33254183","code":200,"retval":{"status":true,"value":"make it active."}},{"id":"device@230441652","code":200,"retval":{"status":true,"value":"make it active."}}]