严智鑫
2024-12-03 def1eb8623e1444164ae4bce9179d011a89b8c5e
JiuMuMesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
@@ -1,20 +1,24 @@
package com.mes.device;
import com.github.s7connector.impl.serializer.converter.StringConverter;
import com.github.xingshuangs.iot.utils.IntegerUtil;
import com.github.xingshuangs.iot.utils.ShortUtil;
import com.mes.service.PlcAgreement;
import com.mes.service.PlcParameter;
import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Array;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.*;
@Slf4j
public class PlcParameterObject {
    // 该模块数据类型,数据起始位置
    private String plcAddressBegin;
    // 数据地址长度:第一参数到最后一个参数的长度
    private int plcAddressLength;
    //private ArrayList<PlcParameterInfo> plcParameterList;
    private LinkedHashMap<String,PlcParameterInfo> plcParameterMap;
@@ -61,7 +65,7 @@
     */
    public PlcParameterInfo getPlcParameter(String codeid) {
        if (plcParameterMap != null) {
                    return plcParameterMap.get(codeid);
            return plcParameterMap.get(codeid);
        } else {
            return null;
        }
@@ -163,40 +167,16 @@
                    plcParameterInfo.setValue(String.valueOf(ShortUtil.toUInt16(valueList)));
                } else if (plcParameterInfo.getAddressLength() == 4) {
                    plcParameterInfo.setValue(String.valueOf(IntegerUtil.toUInt32(valueList)));
                }
                else if (plcParameterInfo.getAddressLength() >10) {
                    plcParameterInfo.setValue((byteToHexString(valueList)));
                } else {
                }else if(plcParameterInfo.getAddressLength()==256){
                    StringConverter converter = new StringConverter();
                    String s="";
                    String extract1 = converter.extract(s.getClass(),valueList, 0, 0);
                    plcParameterInfo.setValue(extract1);
                }else {
                    plcParameterInfo.setValue((byteToHexString(valueList)));
                }
            }
        }
/*        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() == 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);
                }
            }
        }*/
    }
    /**
     * 把写入值转化为byte[]