对接叮当猫实现批量控制脚本执行任务(云控|中控)区分用户

[复制链接]
查看1868 | 回复0 | 2023-11-28 14:27:49 | 显示全部楼层 |阅读模式
本帖最后由 592530326 于 2023-11-28 14:29 编辑

1.下载叮当猫插件官方网站:  http://api.privateapi.xyz:9000/ 叮当猫官网
官方QQ群:689634265,加群之后,在群文件中有最新版的下载.
2.注册一个开发者账号(已经有的不需要再注册了)打开官网,右上角有一个开发者登录,点击打开后有注册的按钮,进行填写信息注册就ok.
3.注册用户账号(给客户用的,区分用户设备的)
http://api.privateapi.xyz:9090/admin/login.html
用户后台
4.创建云控项目
登录之后,上面菜单选择云控
download.png
然后创建一个云控项目

download.png
download.png
项目名称随意填写,创建完成之后,会有一个项目UUID,之后需要在脚本代码中填写这个UUID.
5.创建云端控制命令

download.png
download.png
自定义云控命令设计好了之后,刷新页面在云控页面可以看到对应的功能菜单

download.png
用户后台需要在脚本里绑定之后才可以看到
download.png
紧跟着下拉框后面的输入框是可以填写参数的,点击发送会把功能名称和参数发送到脚本
绑定参数设计弄好了之后,在用户后台可以看到,可以编辑设备的数据,在脚本中可以取到该数据.(现在登录用户后台是看不到的,因为用户还没有和这个云控项目绑定起来,还看不到这个参数,需要在脚本里填写云控UUID绑定一下,才可以看到,如果已经绑定了刷新也没有,请重新登录一下用户后台)效果如下:

download.png
download.png
6.编写脚本代码首先我们需要导入插件, download.png
选择项目的插件,右键->添加->已有项->找到刚刚下载的插件,选择就行了
  1. DDMControl =  require("DDMControlV2")--载入插件
  2. 携程调用时间 = 0
  3. function 任务1()
  4.         local 时间 = coroutine.yield()
  5.     DDMControl.云控_上传运行日志("开始执行任务1","#000000","#FFF00")
  6.         for i=1,10 do
  7.             if 时间 ~= 携程调用时间 then
  8.                 coroutine.yield("挂起携程,返回值:任务1")
  9.         end
  10.                 print(1,i)
  11.                 sleep(1000)
  12.         end
  13.     DDMControl.云控_上传运行日志("结束执行任务1","#000000","#FF00FF")
  14.     return "正常执行完成!"
  15. end
  16. function 任务2()
  17.         local 时间 = coroutine.yield()
  18.     DDMControl.云控_上传运行日志("开始执行任务2","#000000","#FFFF00")
  19.         for i=1,10 do
  20.             if 时间 ~= 携程调用时间 then
  21.                         coroutine.yield("挂起携程,返回值:任务2")
  22.                 end
  23.                 print(2,i)
  24.                 sleep(1000)
  25.         end
  26.     DDMControl.云控_上传运行日志("结束执行任务2","#000000","#FF00FF")
  27.         return "正常执行完成!"
  28. end
  29. function 任务3()
  30.         local 时间 = coroutine.yield()
  31.     DDMControl.云控_上传运行日志("开始执行任务3","#000000","#FFFF00")
  32.         for i=1,10 do
  33.             if 时间 ~= 携程调用时间 then
  34.                         coroutine.yield("挂起携程,返回值:任务2")
  35.                 end
  36.                 print(3,i)
  37.                 sleep(1000)
  38.         end
  39.     DDMControl.云控_上传运行日志("结束执行任务3","#000000","#FF00FF")
  40.         return "正常执行完成!"
  41. end
  42. local 云控UUID = "2bcdbcebf5b14d65a659292fa721d507" --后台创建的云控项目有
  43. local 卡密UUID = "cd8a0ccd-1ead-4a53-825b-1a27d167cac2" --后台创建的卡密项目有
  44. local 作者UUID  = "add3b4de-d315-4182-8670-dabd5baf22eb" --后台个人中心有
  45. local UIUUID = "5feda2ff48654f10bfe20731b7ddafe1" --云UI项目创建后有
  46. --你们请填写 api.privateapi.xyz,因为我是内网所以填192.168.1.2
  47. local 服务器IP = "192.168.3.14"
  48. function 初始化叮当猫()
  49.         while true do
  50.                 local 初始化结果 = DDMControl.初始化(服务器IP,"9000",云控UUID,作者UUID,UIUUID)
  51.                 --local 初始化结果 = DDMControl.初始化("api.privateapi.xyz","9000","9735546a2a93469dab1d510f5ef3e1ac","d99f33a3-4b17-49f8-891a-bedf77886598","")
  52.                 print(初始化结果)
  53.                 if 初始化结果 == true then
  54.                         break
  55.                 end
  56.         end
  57. end
  58. 初始化叮当猫()
  59. function 中控回调函数(命令名称,参数)
  60.         print(命令名称,参数)
  61.         携程调用时间 = tickCount()
  62.         携程任务 = nil
  63.         if 命令名称 == "功能1" then
  64.                 携程任务 = coroutine.create(任务1) --创建协同程序
  65.                 coroutine.resume(携程任务)   --启动协同程序
  66.                 status, result = coroutine.resume(携程任务, 携程调用时间) --给携程传参
  67.                 print(status, result)
  68.         elseif 命令名称 == "功能2" then
  69.                 携程任务 = coroutine.create(任务2) --创建协同程序
  70.                 coroutine.resume(携程任务)
  71.                 status, result = coroutine.resume(携程任务, 携程调用时间)
  72.                 print(status, result)
  73.         elseif 命令名称 == "功能3" then
  74.                 携程任务 = coroutine.create(任务3) --创建协同程序
  75.                 coroutine.resume(携程任务)
  76.                 status, result = coroutine.resume(携程任务, 携程调用时间)
  77.                 print(status, result)
  78.         end
  79. end

  80. local 客户用户名 = "123456"
  81. local 客户密码 = "123456"
  82. --绑定之后,用户在后台才可以看到
  83. local 绑定结果,错误信息 = DDMControl.绑定用户(客户用户名,云控UUID,卡密UUID) --连接云控之前绑定用户

  84. print(绑定结果)
  85. DDMControl.云控_连接云控系统(中控回调函数)--设置一个回调函数,云端发送命令过来就会执行该函数
  86. local 用户登录结果 = DDMControl.脚本用户登录(客户用户名,客户密码) --用户登录之后才能获取设备数据
  87. print(用户登录结果)
  88. Token = ""
  89. if 用户登录结果.code == 1 then
  90.         Token = 用户登录结果.token
  91. end

  92. while true do
  93.         toast("xxxxxxxxx",0,0,12)
  94.         sleep(1000)
  95.         if Token ~= "" then
  96.                 local 设备数据 = DDMControl.云控_获取设备数据(Token)
  97.                 print(设备数据.data)
  98.         end
  99.     DDMControl.云控_上传运行日志("等待云端指令","#000000","#FF0000")--1 内容 2 字体颜色 3 背景颜色
  100. end
复制代码

运行之后,可以在后台看到设备连接过来了
作者后台
download.png
用户后台
download.png
选择对应的功能,点击发送就可以直接控制脚本执行命令了.




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

12

主题

27

帖子

3833

积分

论坛元老

云控|卡密|云UI|云数据|脚本间通讯

Rank: 8Rank: 8

积分
3833
QQ