@dobot-plus/template 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lua/daemon.lua CHANGED
@@ -2,7 +2,7 @@
2
2
  --- @description This is the daemon module for the plugin.
3
3
  --- 该模块插件的入口进程,在插件安装成功后自动执行该文件中的 EventLoop 方法,该方法会不断的执行,直到程序退出。
4
4
 
5
- local mqtt = require('utils.mqtt')
5
+ local mqtt = require('$PLUGIN_NAME$.mqtt')
6
6
 
7
7
  local function handleInLoop()
8
8
  local data = {}
package/lua/userAPI.lua CHANGED
@@ -2,7 +2,7 @@
2
2
  --- @description This is the user API module for the plugin.
3
3
  --- 该模块为脚本编程和积木编程提供插件接口
4
4
 
5
- require("utils.await485")
5
+ require("$PLUGIN_NAME$.modbus")
6
6
  local $PLUGIN_NAME$ = require("$PLUGIN_NAME$")
7
7
 
8
8
  local userApiModule = {}
@@ -0,0 +1,50 @@
1
+ require('$PLUGIN_NAME$.variables')
2
+ require("$PLUGIN_NAME$.util")
3
+ local lockerName = "$PLUGIN_NAME$_Locker"
4
+
5
+ --- SetTool485(baudrate, parity, stop, identify)
6
+ --- err, id = ModbusCreate(ip, port, slaveId, isRTU): use endTool for 485 communication
7
+ --- err:int, 0: success, 1: over max master num, 2: master init failed, 3: master connect to poll failed
8
+ --- err, id = ModbusRTUCreate(slave_id, baud, parity, data_bit, stop_bit): use controller for 485 communication
9
+ function createModbusMasterClient(slaveID)
10
+ SetTool485(115200, 'E', 1, 1)
11
+ local err, id = ModbusCreate("127.0.0.1", 60000, tonumber(slaveID), true)
12
+ --- local err, id = ModbusRTUCreate(slave_id, baud, parity, data_bit, stop_bit)
13
+ if err ~= 0 then
14
+ print("Schunk ModbusCreate error:"..err)
15
+ return nil
16
+ end
17
+ return id
18
+ end
19
+
20
+ --- @param reg table {addrDec: number, length: number}
21
+ function getRegsData(reg, slaveID)
22
+ local clientID = createModbusMasterClient(slaveID)
23
+ if clientID == nil then
24
+ return {}
25
+ end
26
+ local result = Lock(lockerName, 10000, 10000)
27
+ Wait(10)
28
+ local data = GetHoldRegs(clientID, reg.addrDec, reg.length)
29
+ Wait(10)
30
+ UnLock(lockerName)
31
+ ModbusClose(clientID)
32
+ return data
33
+ end
34
+
35
+ --- @param reg table {addrDec: number, length: number}
36
+ --- @param values table length should be the same as reg.length
37
+ --- @return err int, 0: success, -1: failed
38
+ function setRegsData(reg, values, slaveID)
39
+ local clientID = createModbusMasterClient(slaveID)
40
+ if clientID == nil then
41
+ return -1
42
+ end
43
+ local result = Lock(lockerName, 10000, 10000)
44
+ Wait(10)
45
+ local err = SetHoldRegs(clientID, reg.addrDec, reg.length, values, 'U16')
46
+ Wait(10)
47
+ UnLock(lockerName)
48
+ ModbusClose(clientID)
49
+ return err
50
+ end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dobot-plus/template",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "engines": {
5
5
  "node": "20"
6
6
  },
@@ -1,55 +0,0 @@
1
- require('utils.variables')
2
- require("utils.util")
3
- local lockerName = "dobot_485_lock"
4
-
5
- --- 配置并锁定 485 接口。
6
- --- @param duration number|nil 锁定持续时间(毫秒),默认为 10000 毫秒。
7
- --- @param waitTime number|nil 等待锁定的最大时间(毫秒),默认为 10000 毫秒。
8
- --- @return boolean 返回是否成功锁定。
9
- function Use485(duration, waitTime)
10
- local _duration = 10000
11
- if duration then
12
- _duration = duration
13
- end
14
-
15
- local result = Lock(lockerName, _duration, waitTime == nil and 10000 or waitTime)
16
- Wait(10)
17
- return result
18
- end
19
-
20
- --- 使用 485 接口写入 Modbus 寄存器。
21
- --- @param modbusID number Modbus 从机地址。
22
- --- @param address number 寄存器地址。
23
- --- @param datas table 要写入的数据列表。
24
- --- @return boolean 返回是否成功写入。
25
- function WriteBy485(modbusID, address, datas)
26
- local result = Lock(lockerName, 10000, 10000)
27
- Wait(10)
28
-
29
- SetHoldRegs(modbusID, address, #datas, datas)
30
-
31
- Wait(10)
32
- UnLock485()
33
- return result
34
- end
35
-
36
- --- 使用 485 接口读取 Modbus 寄存器。
37
- --- @param modbusID number Modbus 从机地址。
38
- --- @param address number 寄存器地址。
39
- --- @param num number 要读取的寄存器数量。
40
- --- @return table 返回读取的数据列表。
41
- function ReadBy485(modbusID, address, num)
42
- local result = Lock(lockerName, 10000, 10000)
43
- Wait(10)
44
-
45
- local registerData = GetHoldRegs(modbusID, address, num)
46
-
47
- Wait(10)
48
- UnLock485()
49
- return registerData
50
- end
51
-
52
- --- 解锁 485 接口。
53
- function UnLock485()
54
- UnLock(lockerName)
55
- end