| | |
| | | * @param plcValueArray PLC读取回来的byte类型数据集合 |
| | | */ |
| | | public void setPlcParameterList(byte[] plcValueArray) { |
| | | if (plcParameterMap != null) { |
| | | Collection<PlcParameterInfo> values= plcParameterMap.values(); |
| | | for (PlcParameterInfo plcParameterInfo :values) { |
| | | byte[] valueList = new byte[plcParameterInfo.getAddressLength()]; |
| | | if (plcValueArray==null||!(plcValueArray.length>0)){ |
| | | log.info("plcValueArray is null or empty"); |
| | | return ; |
| | | } |
| | | if (plcParameterMap==null){ |
| | | log.info("plcParameterMap is null or empty"); |
| | | return ; |
| | | } |
| | | 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(ShortUtil.toUInt16(valueList))); |
| | | } else if (plcParameterInfo.getAddressLength() == 4) { |
| | | plcParameterInfo.setValue(String.valueOf(IntegerUtil.toUInt32(valueList))); |
| | | }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))); |
| | | } |
| | | for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) { |
| | | Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]); |
| | | } |
| | | if (plcParameterInfo.getAddressLength() == 2) { |
| | | plcParameterInfo.setValue(String.valueOf(ShortUtil.toUInt16(valueList))); |
| | | } else if (plcParameterInfo.getAddressLength() == 4) { |
| | | plcParameterInfo.setValue(String.valueOf(IntegerUtil.toUInt32(valueList))); |
| | | }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))); |
| | | } |
| | | } |
| | | } |