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 | 17 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
18 | 18 | import org.thingsboard.server.common.data.yunteng.dto.*; |
19 | 19 | import org.thingsboard.server.common.data.yunteng.enums.StatusEnum; |
20 | +import org.thingsboard.server.common.data.yunteng.enums.TkModebusFunctionCode; | |
20 | 21 | import org.thingsboard.server.common.data.yunteng.enums.TkScriptFunctionType; |
21 | 22 | import org.thingsboard.server.common.data.yunteng.enums.TransportTypeEnum; |
22 | 23 | import org.thingsboard.server.common.data.yunteng.utils.ByteUtils; |
... | ... | @@ -315,7 +316,7 @@ public class TkDeviceScriptServiceImpl |
315 | 316 | if(values ==null || values.isEmpty()){ |
316 | 317 | //读寄存器数据 |
317 | 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 | 321 | result.append(modelHex(values.get(0))); |
321 | 322 | }else{ |
... | ... | @@ -341,7 +342,7 @@ public class TkDeviceScriptServiceImpl |
341 | 342 | } |
342 | 343 | private String multData(String functionCode,List<Integer>datas){ |
343 | 344 | StringBuilder dataStr = new StringBuilder(); |
344 | - if("16".equals(functionCode)){ | |
345 | + if(TkModebusFunctionCode.WRITE_MANY_REGISTER.equals(functionCode)){ | |
345 | 346 | dataStr.append(dataLength(datas.size()*2)); |
346 | 347 | for(Integer item: datas){ |
347 | 348 | dataStr.append(modelHex(item)); | ... | ... |