From 8e19e67d1178e834a868f4a820d827ddf64c6e01 Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期三, 28 五月 2025 12:46:08 +0800 Subject: [PATCH] #ZH --- src/main/java/com/zy/core/thread/ScaleThread.java | 78 +++++++++++++++++++++++++++++++++----- 1 files changed, 67 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zy/core/thread/ScaleThread.java b/src/main/java/com/zy/core/thread/ScaleThread.java index 30d695a..614dd85 100644 --- a/src/main/java/com/zy/core/thread/ScaleThread.java +++ b/src/main/java/com/zy/core/thread/ScaleThread.java @@ -1,11 +1,19 @@ package com.zy.core.thread; +import com.alibaba.fastjson.JSONObject; import com.core.common.Cools; +import com.core.common.DateUtils; import com.core.common.SpringUtils; import com.zy.asrs.entity.BasDevp; import com.zy.asrs.service.BasDevpService; +import com.zy.asrs.service.DeviceErrorService; +import com.zy.core.DevpThread; import com.zy.core.Slave; import com.zy.core.ThreadHandler; +import com.zy.core.cache.OutputQueue; +import com.zy.core.cache.SlaveConnection; +import com.zy.core.enums.SlaveType; +import com.zy.core.model.protocol.StaProtocol; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -16,6 +24,7 @@ import java.net.Socket; import java.net.SocketAddress; import java.net.SocketTimeoutException; +import java.util.Date; /** * 纾呯Г绾跨▼ @@ -44,21 +53,53 @@ byte[] read = read(8, 100); if (null != read) { String s = new String(read); - if (!Cools.isEmpty(s) && s.startsWith("=")) { + if (!Cools.isEmpty(s) && s.startsWith("\u0002+")) { +// if (!Cools.isEmpty(s) && s.startsWith("=")) { scale = Double.parseDouble(s.substring(1)); +// System.out.println("scale:"+scale+ "ip:"+slave.getIp()); +// String substring = s.substring(1); +// String s1 = new StringBuilder(substring).reverse().toString();//閫嗗簭 +// scale = Double.parseDouble(s1); //灏嗙О閲嶉噸閲忓啓鍏ヨ澶囧熀纭�鏁版嵁涓殑gross_wt瀛楁 - if(scale > 20) { - BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); - Integer staNo = slave.getId() == 1 ? 101 : 201; - BasDevp basDevp = basDevpService.selectById(staNo); - if(!Cools.isEmpty(basDevp)) { - basDevp.setGrossWt(scale); - if (null != basDevpService && !basDevpService.updateById(basDevp)) { - throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�"); +// if(scale > 20) { + try{ + // 鑾峰彇绔欎俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, slave.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(slave.getStaNo()); + if (staProtocol != null) { + devpThread.setGrossWt(staProtocol.getSiteId(), scale); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F)); + jsonObject.put("id", slave.getStaNo()); + jsonObject.put("scale", scale); + if (OutputQueue.SCALE.size() >= 32) { + OutputQueue.SCALE.poll(); + } + OutputQueue.SCALE.offer(jsonObject); } + } catch (Exception e){ + log.error("绉伴噸妯″潡寮傚父"+e .getMessage()); } - } +// BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); +// BasDevp basDevp = basDevpService.selectById(slave.getStaNo()); +// if(!Cools.isEmpty(basDevp)) { +// basDevp.setGrossWt(scale); +// if (null != basDevpService && !basDevpService.updateById(basDevp)) { +// throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�"); +// } +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F)); +// jsonObject.put("id", slave.getStaNo()); +// jsonObject.put("scale", scale); +// if (OutputQueue.SCALE.size() >= 32) { +// OutputQueue.SCALE.poll(); +// } +// OutputQueue.SCALE.offer(jsonObject); +// +// } +// } } } Thread.sleep(100); @@ -71,6 +112,7 @@ @Override public boolean connect() { + try { close(); //1.涓诲姩閲婃斁杩炴帴 //2.鏌愪簺鏈嶅姟鍣ㄥ鎸囧畾ip鏈夐摼璺暟闄愬埗 socket = new Socket(); @@ -80,9 +122,23 @@ dataOutputStream = new DataOutputStream(socket.getOutputStream()); dataInputStream = new DataInputStream(socket.getInputStream()); // log.info("鏉$爜鎵弿浠繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.deleteDeviceError("Scale", slave.getId()); + } catch (Exception e){ +// log.error("e:"+e.getMessage()); + } } catch (Exception e) { socket = null; - log.error("纾呯Г杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// log.error("纾呯Г杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); +// deviceErrorService.addDeviceError("scale", slave.getId(), "纾呯Г杩炴帴澶辫触"); + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.deleteDeviceError("Scale", slave.getId()); + } catch (Exception e1){ +// log.error("e:"+e1.getMessage()); + } return false; } return true; -- Gitblit v1.9.1