Commit 4265dba3b2f091aef3445e7000b3fa208cfbab5a
Merge branch '20230722' into 'master_dev'
20230722 See merge request yunteng/thingskit!214
Showing
2 changed files
with
39 additions
and
2 deletions
1 | +package org.thingsboard.server.common.data.yunteng.enums; | ||
2 | + | ||
3 | +public enum TkModebusFunctionCode { | ||
4 | + READ_COIL("01",1), | ||
5 | + REAL_SPLIT_INPUT("02",1), | ||
6 | + READ_PERSIST_REGISTER("03",1), | ||
7 | + READ_INPUT_REGISTER("04",1), | ||
8 | + WRITE_ONE_COIL("05",1), | ||
9 | + WRITE_ONE_REGISTER("06",1), | ||
10 | + WRITE_MANY_COIL("0F",1), | ||
11 | + WRITE_MANY_REGISTER("10",2), | ||
12 | + READ_FILE("14",1), | ||
13 | + WRITE_FILE("15",1), | ||
14 | + PREVENT_WRITE_REGISTER("16",1), | ||
15 | + READ_WRITE_MANY_REGISTER("17",1), | ||
16 | + READ_DEVICE_IDENTIFICATION("2B",1); | ||
17 | + | ||
18 | + | ||
19 | + /**16进制功能码*/ | ||
20 | + private final String code; | ||
21 | + /**寄存器值长度*/ | ||
22 | + private final Integer valueSize; | ||
23 | + | ||
24 | + TkModebusFunctionCode(String code, Integer valueSize) { | ||
25 | + this.code = code; | ||
26 | + this.valueSize = valueSize; | ||
27 | + } | ||
28 | + | ||
29 | + public String getCode() { | ||
30 | + return code; | ||
31 | + } | ||
32 | + | ||
33 | + public Integer getValueSize() { | ||
34 | + return valueSize; | ||
35 | + } | ||
36 | +} |
@@ -17,6 +17,7 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio | @@ -17,6 +17,7 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio | ||
17 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 17 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
18 | import org.thingsboard.server.common.data.yunteng.dto.*; | 18 | import org.thingsboard.server.common.data.yunteng.dto.*; |
19 | import org.thingsboard.server.common.data.yunteng.enums.StatusEnum; | 19 | import org.thingsboard.server.common.data.yunteng.enums.StatusEnum; |
20 | +import org.thingsboard.server.common.data.yunteng.enums.TkModebusFunctionCode; | ||
20 | import org.thingsboard.server.common.data.yunteng.enums.TkScriptFunctionType; | 21 | import org.thingsboard.server.common.data.yunteng.enums.TkScriptFunctionType; |
21 | import org.thingsboard.server.common.data.yunteng.enums.TransportTypeEnum; | 22 | import org.thingsboard.server.common.data.yunteng.enums.TransportTypeEnum; |
22 | import org.thingsboard.server.common.data.yunteng.utils.ByteUtils; | 23 | import org.thingsboard.server.common.data.yunteng.utils.ByteUtils; |
@@ -315,7 +316,7 @@ public class TkDeviceScriptServiceImpl | @@ -315,7 +316,7 @@ public class TkDeviceScriptServiceImpl | ||
315 | if(values ==null || values.isEmpty()){ | 316 | if(values ==null || values.isEmpty()){ |
316 | //读寄存器数据 | 317 | //读寄存器数据 |
317 | result.append(modelHex(registerNum)); | 318 | result.append(modelHex(registerNum)); |
318 | - }else if(values.size() == 1){ | 319 | + }else if(values.size() == 1 &&(TkModebusFunctionCode.WRITE_ONE_COIL.getCode().equals(functionCode) ||TkModebusFunctionCode.WRITE_ONE_REGISTER.getCode().equals(functionCode) )){ |
319 | //单个写入 | 320 | //单个写入 |
320 | result.append(modelHex(values.get(0))); | 321 | result.append(modelHex(values.get(0))); |
321 | }else{ | 322 | }else{ |
@@ -341,7 +342,7 @@ public class TkDeviceScriptServiceImpl | @@ -341,7 +342,7 @@ public class TkDeviceScriptServiceImpl | ||
341 | } | 342 | } |
342 | private String multData(String functionCode,List<Integer>datas){ | 343 | private String multData(String functionCode,List<Integer>datas){ |
343 | StringBuilder dataStr = new StringBuilder(); | 344 | StringBuilder dataStr = new StringBuilder(); |
344 | - if("16".equals(functionCode)){ | 345 | + if(TkModebusFunctionCode.WRITE_MANY_REGISTER.equals(functionCode)){ |
345 | dataStr.append(dataLength(datas.size()*2)); | 346 | dataStr.append(dataLength(datas.size()*2)); |
346 | for(Integer item: datas){ | 347 | for(Integer item: datas){ |
347 | dataStr.append(modelHex(item)); | 348 | dataStr.append(modelHex(item)); |