From 3b0c30d5918f1b50b3eb1a92b17124d5087e4a75 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期五, 10 五月 2024 16:29:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java | 86 +++++++++++++++++++++++++++++-------------
1 files changed, 59 insertions(+), 27 deletions(-)
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
index 2d34674..b32c593 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
@@ -2,10 +2,7 @@
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;
+import java.util.*;
public class PlcParameterObject {
@@ -13,7 +10,8 @@
private String plcAddressBegin;
// 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
private int plcAddressLength;
- private ArrayList<PlcParameterInfo> plcParameterList;
+ //private ArrayList<PlcParameterInfo> plcParameterList;
+ private LinkedHashMap<String,PlcParameterInfo> plcParameterMap;
/**
@@ -47,8 +45,8 @@
/**
* @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
*/
- public ArrayList<PlcParameterInfo> getPlcParameterList() {
- return plcParameterList;
+ public LinkedHashMap<String,PlcParameterInfo> getPlcParameterMap() {
+ return plcParameterMap;
}
/**
@@ -58,14 +56,19 @@
* @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
*/
public PlcParameterInfo getPlcParameter(String codeid) {
- if (plcParameterList != null) {
+ if (plcParameterMap != null) {
+ return plcParameterMap.get(codeid);
+ } else {
+ return null;
+ }
+ /*if (plcParameterList != null) {
for (PlcParameterInfo plcParameterInfo : plcParameterList) {
if (plcParameterInfo.getCodeId().equals(codeid))
return plcParameterInfo;
}
return null;
} else
- return null;
+ return null;*/
}
@@ -77,15 +80,15 @@
*/
public List<String> getPlcParameterValues(List<String> codeids) {
List<String> arrayList = new ArrayList<>();
- if (plcParameterList != null) {
- Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+ if (plcParameterMap != null) {
+ /*Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
for (PlcParameterInfo plcParameterInfo : plcParameterList) {
if (codeids.contains(plcParameterInfo.getCodeId())) {
resultMap.put(plcParameterInfo.getCodeId(), plcParameterInfo);
}
- }
+ }*/
for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
- PlcParameterInfo plcParameterInfo = resultMap.get(codeId);
+ PlcParameterInfo plcParameterInfo = plcParameterMap.get(codeId);
if (plcParameterInfo != null) {
arrayList.add(plcParameterInfo.getValue());
} else {
@@ -96,19 +99,22 @@
return arrayList;
}
-
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇浼犲叆鍙傛暟鐨刾lc鍦板潃
+ *
+ * @param codeIdList 鍙傛暟鏍囪瘑
+ * @return 浼犲叆鍙傛暟鐨刾lc鍦板潃
+ */
public List<String> getAddressListByCodeId(List<String> codeIdList) {
List<String> addressList = new ArrayList<>();
- for (String codeId : codeIdList) {
- for (PlcParameterInfo plcParameterInfo : plcParameterList) {
- if (plcParameterInfo.getCodeId().equals(codeId)) {
- int index = plcParameterInfo.getAddressIndex();
- String address = plcParameterInfo.getAddress(index);
+ if (plcParameterMap!=null)
+ {
+ for (String codeId : codeIdList) {
+ String address = plcParameterMap.get(codeId).getAddress();
if (address != null) {
addressList.add(address);
}
- }
- }
+ }
}
return addressList;
}
@@ -120,12 +126,19 @@
* @param param 鍙傛暟瀹炰緥
*/
public void addPlcParameter(PlcParameterInfo param) {
- if (plcParameterList != null)
+ if (plcParameterMap != null) {
+ plcParameterMap.put(param.getCodeId(), param);
+ }
+ else {
+ plcParameterMap =new LinkedHashMap<String,PlcParameterInfo>();
+ plcParameterMap.put(param.getCodeId(), param);
+ }
+ /*if (plcParameterList != null)
plcParameterList.add(param);
else {
plcParameterList = new ArrayList<PlcParameterInfo>();
plcParameterList.add(param);
- }
+ }*/
}
/**
@@ -134,7 +147,28 @@
* @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
*/
public void setPlcParameterList(byte[] plcValueArray) {
- if (plcParameterList != null) {
+ if (plcParameterMap != null) {
+ Collection<PlcParameterInfo> values= plcParameterMap.values();
+ for (PlcParameterInfo plcParameterInfo :values) {
+ 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() == 4) {
+ plcParameterInfo.setValue(String.valueOf(byte2int(valueList)));
+ }
+ else if (plcParameterInfo.getAddressLength() >10) {
+ plcParameterInfo.setValue((byteToHexString(valueList)));
+ } else {
+ String valuestr = new String(valueList);
+ plcParameterInfo.setValue(valuestr);
+ }
+ }
+ }
+/* if (plcParameterList != null) {
for (PlcParameterInfo plcParameterInfo : plcParameterList) {
@@ -158,7 +192,7 @@
plcParameterInfo.setValue(valuestr);
}
}
- }
+ }*/
}
/**
@@ -206,6 +240,4 @@
String str = new String(bytes, StandardCharsets.UTF_8).trim();
return str;
}
-
-
}
\ No newline at end of file
--
Gitblit v1.8.0