From 75d0daa4f8dc2010ec92f35cac08a19d240ca45d Mon Sep 17 00:00:00 2001 From: ynhfasrs <ynhfasrs@qq.com> Date: 星期五, 27 六月 2025 14:23:37 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 41 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index ae1efa9..962a319 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -37,6 +37,9 @@ private CrnProtocol crnProtocol; private boolean resetFlag = false; + //鍘熷璁惧鏁版嵁 + private Object originDeviceData; + public SiemensCrnThread(CrnSlave slave) { this.slave = slave; } @@ -141,7 +144,9 @@ private void readStatus(){ OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56); + OperateResultExOne<byte[]> result2 = siemensNet.Read("DB25.0", (short) 20); if (result.IsSuccess) { + this.originDeviceData = result.Content; if (null == crnProtocol) { crnProtocol = new CrnProtocol(); } @@ -167,8 +172,6 @@ crnProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 48)); crnProtocol.setYDuration(siemensNet.getByteTransform().TransSingle(result.Content, 52)); - - OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); // 澶嶄綅淇″彿 @@ -182,6 +185,40 @@ } } + List<boolean[]> errorPointList = new ArrayList<>(); + if (result2.IsSuccess) { + for (int i = 0; i < result2.Content.length; i++) { + boolean[] valList = siemensNet.getByteTransform().TransBool(result2.Content, i, 1); + errorPointList.add(valList); + } + } + + if (System.currentTimeMillis() - crnProtocol.getDeviceDataLog() > 1000 * 5) { + if (this.originDeviceData != null) { + //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰� + //淇濆瓨鏁版嵁璁板綍 + DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class); + if (deviceDataLogService == null) { + return; + } + + HashMap<String, Object> originData = new HashMap<>(); + originData.put("readStatus", this.originDeviceData); + originData.put("errorPoints", errorPointList); + + DeviceDataLog deviceDataLog = new DeviceDataLog(); + deviceDataLog.setOriginData(JSON.toJSONString(originData)); + deviceDataLog.setWcsData(JSON.toJSONString(crnProtocol)); + deviceDataLog.setType(String.valueOf(SlaveType.Crn)); + deviceDataLog.setDeviceNo(slave.getId()); + deviceDataLog.setCreateTime(new Date()); + deviceDataLogService.insert(deviceDataLog); + + //鏇存柊閲囬泦鏃堕棿 + crnProtocol.setDeviceDataLog(System.currentTimeMillis()); + } + } + try { // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class); -- Gitblit v1.9.1