From 58d7b0e12ccd92cf3934f6582b51b5fbcecaa39a Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期四, 09 五月 2024 09:42:41 +0800 Subject: [PATCH] 修改注入方式 --- springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterObject.java | 55 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 44 insertions(+), 11 deletions(-) diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterObject.java b/springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterObject.java index 56a0230..dec12e4 100644 --- a/springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterObject.java +++ b/springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterObject.java @@ -1,8 +1,11 @@ package com.example.springboot.entity.device; import java.lang.reflect.Array; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; public class PlcParameterObject { @@ -69,29 +72,40 @@ /** * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥 * - * @param codeid 鍙傛暟鏍囪瘑 + * @param codeids 鍙傛暟鏍囪瘑 * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥 */ public List<String> getPlcParameterValues(List<String> codeids) { - List<String> arrayList = new ArrayList(); + List<String> arrayList = new ArrayList<>(); if (plcParameterList != null) { + Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭 for (PlcParameterInfo plcParameterInfo : plcParameterList) { - if (codeids.contains(plcParameterInfo.getCodeId().toString())) + if (codeids.contains(plcParameterInfo.getCodeId())) { + resultMap.put(plcParameterInfo.getCodeId(), plcParameterInfo); + } + } + for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘� + PlcParameterInfo plcParameterInfo = resultMap.get(codeId); + if (plcParameterInfo != null) { arrayList.add(plcParameterInfo.getValue()); + } else { + arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null + } } } return arrayList; } - public List<String> getPlcAddressList(String codeid) { + public List<String> getAddressListByCodeId(List<String> codeIdList) { List<String> addressList = new ArrayList<>(); - if (plcParameterList != null) { + for (String codeId : codeIdList) { for (PlcParameterInfo plcParameterInfo : plcParameterList) { - if (plcParameterInfo.getCodeId().equals(codeid)) { - int plcAddress = plcParameterInfo.getPlcAddress(); - if (!addressList.contains(plcAddress)) { - addressList.add(String.valueOf(plcAddress)); + if (plcParameterInfo.getCodeId().equals(codeId)) { + int index = plcParameterInfo.getAddressIndex(); + String address = plcParameterInfo.getAddress(index); + if (address != null) { + addressList.add(address); } } } @@ -100,7 +114,10 @@ } - + + + + /** * 娣诲姞鍙傛暟瀹炰緥 * @@ -122,14 +139,24 @@ */ public void setPlcParameterList(byte[] plcValueArray) { if (plcParameterList != null) { + for (PlcParameterInfo plcParameterInfo : plcParameterList) { + byte[] valueList = new byte[plcParameterInfo.getAddressLength()]; + +// System.out.println(plcParameterInfo.getAddressLength()); + for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) { Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]); + } if (plcParameterInfo.getAddressLength()==2) { plcParameterInfo.setValue(String.valueOf(byte2short(valueList))); } + else if (plcParameterInfo.getAddressLength()==14) { + plcParameterInfo.setValue((byteToHexString(valueList))); + } + else { String valuestr = new String(valueList); @@ -165,5 +192,11 @@ return l; } - + public static String byteToHexString(byte[] bytes) { + + String str = new String(bytes, StandardCharsets.UTF_8); + return str; + } + + } \ No newline at end of file -- Gitblit v1.8.0