From 13b93182b70c276996b2d00de9497eb6843b072e Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期三, 19 七月 2023 08:37:37 +0800 Subject: [PATCH] command write --- src/main/java/com/zy/core/thread/LiftThread.java | 68 +++++++++++++++++++++++++--------- 1 files changed, 50 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java index a399c9e..ecc4c64 100644 --- a/src/main/java/com/zy/core/thread/LiftThread.java +++ b/src/main/java/com/zy/core/thread/LiftThread.java @@ -244,6 +244,51 @@ } command.setLiftNo(slave.getId().shortValue()); + short[] array = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃 + + try { + Thread.sleep(1000);//鍛戒护涓嬪彂鍓嶄紤鐪�1s + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + OperateResult result = modbusTcpNet.Write("41088", array); + if (result != null && result.IsSuccess) { + News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); + OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); + + try { + Thread.sleep(1000);//鍛戒护涓嬪彂鍚庝紤鐪� + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + for (int i = 0; i < 5; i++) { + readStatus();//閲嶆柊璇诲彇鐘舵�� + if (liftProtocol.getRunning()) { + break; + } + + //鍒ゆ柇鏄惁杩愯涓紝濡備笉杩愯锛岄噸鏂颁笅鍙戝懡浠� + result = modbusTcpNet.Write("41088", array); + News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {},娆℃暟锛歿}", slave.getId(), JSON.toJSON(command), i); + OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2},娆℃暟锛歿}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command), i)); + try { + Thread.sleep(3000);//鍛戒护涓嬪彂鍚庝紤鐪� + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + return true; + } else { + OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); + News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + return false; + } + } + + //鑾峰彇鍛戒护鎶ユ枃 + private short[] getCommandArr(LiftCommand command) { // 寮�濮嬩换鍔� short[] array = new short[30]; //寮�濮嬭繍琛� @@ -284,23 +329,7 @@ tmp[1] = array[1]; array = tmp; } - - try { - Thread.sleep(1000);//鍛戒护涓嬪彂鍓嶄紤鐪�1s - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - - OperateResult result = modbusTcpNet.Write("41088", array);; - if (result != null && result.IsSuccess) { - News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); - OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); - return true; - } else { - OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - return false; - } + return array; } //鍒嗛厤浠诲姟 @@ -448,6 +477,7 @@ //淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘� BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class); if (liftOptService != null) { + short[] commandArr = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃 BasLiftOpt opt = new BasLiftOpt( redisCommand.getWrkNo().intValue(), redisCommand.getLiftNo().intValue(), @@ -455,7 +485,8 @@ null, null, null, - JSON.toJSONString(command) + JSON.toJSONString(command), + JSON.toJSONString(commandArr) ); liftOptService.insert(opt); } @@ -595,6 +626,7 @@ * 鍒濆鍖栨彁鍗囨満 */ private void initLift() { + this.connect(); if (null == liftProtocol) { liftProtocol = new LiftProtocol(); } -- Gitblit v1.9.1