@dobot-plus/template 1.3.5 → 1.3.7

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.
@@ -1,30 +1,38 @@
1
1
  require('$PLUGIN_NAME$.variables')
2
2
  require("$PLUGIN_NAME$.util")
3
- local lockerName = "$PLUGIN_NAME$_Locker"
3
+ local lockerName = "dobot_485_lock"
4
+
5
+ local modbus = {}
4
6
 
5
7
  --- SetTool485(baudrate, parity, stop, identify)
6
8
  --- err, id = ModbusCreate(ip, port, slaveId, isRTU): use endTool for 485 communication
7
9
  --- err:int, 0: success, 1: over max master num, 2: master init failed, 3: master connect to poll failed
8
10
  --- 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
+ modbus.createModbusMasterClient = function(slaveID)
12
+ --- SetTool485(baudrate, parity, stop)
13
+ SetTool485(115200, 'E', 1)
11
14
  local err, id = ModbusCreate("127.0.0.1", 60000, tonumber(slaveID), true)
12
15
  --- local err, id = ModbusRTUCreate(slave_id, baud, parity, data_bit, stop_bit)
13
16
  if err ~= 0 then
14
- print("Schunk ModbusCreate error:"..err)
17
+ print("ModbusCreate error:"..err)
15
18
  return nil
16
19
  end
17
20
  return id
18
21
  end
19
22
 
20
23
  --- @param reg table {addrDec: number, length: number}
21
- function getRegsData(reg, slaveID)
22
- local clientID = createModbusMasterClient(slaveID)
24
+ modbus.getRegsData = function(reg, slaveID)
25
+ local clientID = modbus.createModbusMasterClient(slaveID)
23
26
  if clientID == nil then
24
27
  return {}
25
28
  end
26
29
  local result = Lock(lockerName, 10000, 10000)
27
30
  Wait(10)
31
+ if result == false then
32
+ print("getRegsData lock failed")
33
+ ModbusClose(clientID)
34
+ return {}
35
+ end
28
36
  local data = GetHoldRegs(clientID, reg.addrDec, reg.length)
29
37
  Wait(10)
30
38
  UnLock(lockerName)
@@ -35,13 +43,18 @@ end
35
43
  --- @param reg table {addrDec: number, length: number}
36
44
  --- @param values table length should be the same as reg.length
37
45
  --- @return err int, 0: success, -1: failed
38
- function setRegsData(reg, values, slaveID)
39
- local clientID = createModbusMasterClient(slaveID)
46
+ modbus.setRegsData = function(reg, values, slaveID)
47
+ local clientID = modbus.createModbusMasterClient(slaveID)
40
48
  if clientID == nil then
41
49
  return -1
42
50
  end
43
51
  local result = Lock(lockerName, 10000, 10000)
44
52
  Wait(10)
53
+ if result == false then
54
+ print("setRegsData lock failed")
55
+ ModbusClose(clientID)
56
+ return -1
57
+ end
45
58
  local err = SetHoldRegs(clientID, reg.addrDec, reg.length, values, 'U16')
46
59
  Wait(10)
47
60
  UnLock(lockerName)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dobot-plus/template",
3
- "version": "1.3.5",
3
+ "version": "1.3.7",
4
4
  "engines": {
5
5
  "node": "20"
6
6
  },