From 52cbfeb0c93770530965955ca861f3d0a2bedd66 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期一, 12 一月 2026 11:01:27 +0800
Subject: [PATCH] 添加重量信息
---
src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java | 149 +++++++++++++++++++++++--------------------------
1 files changed, 69 insertions(+), 80 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java b/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
index a29d75a..6909386 100644
--- a/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
@@ -30,10 +30,6 @@
import java.text.MessageFormat;
import java.util.Date;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.TimeUnit;
/**
* 鍫嗗灈鏈虹嚎绋�
@@ -47,10 +43,6 @@
private ZyCrnConnectDriver zyCrnConnectDriver;
private CrnProtocol crnProtocol;
private int deviceLogCollectTime = 200;
- private boolean resetFlag = false;
- private volatile boolean closed = false;
- private ScheduledExecutorService readExecutor;
- private ScheduledExecutorService processExecutor;
public ZySiemensCrnThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
this.deviceConfig = deviceConfig;
@@ -62,53 +54,39 @@
public void run() {
this.connect();
this.initCrn();
- readExecutor = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
- @Override
- public Thread newThread(Runnable r) {
- Thread t = new Thread(r);
- t.setName("CrnReader-" + deviceConfig.getDeviceNo());
- t.setDaemon(true);
- return t;
- }
- });
- readExecutor.scheduleAtFixedRate(() -> {
- if (closed || Thread.currentThread().isInterrupted()) {
- return;
- }
- try {
- deviceLogCollectTime = Utils.getDeviceLogCollectTime();
- readStatus();
- } catch (Exception e) {
- log.error("CrnThread Fail", e);
- }
- }, 0, 200, TimeUnit.MILLISECONDS);
- processExecutor = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
- @Override
- public Thread newThread(Runnable r) {
- Thread t = new Thread(r);
- t.setName("CrnWriter-" + deviceConfig.getDeviceNo());
- t.setDaemon(true);
- return t;
+ Thread readThread = new Thread(() -> {
+ while (true) {
+ try {
+ deviceLogCollectTime = Utils.getDeviceLogCollectTime();
+ readStatus();
+ Thread.sleep(100);
+ } catch (Exception e) {
+ log.error("CrnThread Fail", e);
+ }
}
});
- processExecutor.scheduleAtFixedRate(() -> {
- if (closed || Thread.currentThread().isInterrupted()) {
- return;
- }
- try {
- int step = 1;
- Task task = MessageQueue.poll(SlaveType.Crn, deviceConfig.getDeviceNo());
- if (task != null) {
- step = task.getStep();
+ readThread.start();
+
+ Thread processThread = new Thread(() -> {
+ while (true) {
+ try {
+ int step = 1;
+ Task task = MessageQueue.poll(SlaveType.Crn, deviceConfig.getDeviceNo());
+ if (task != null) {
+ step = task.getStep();
+ }
+ if (step == 2) {
+ sendCommand((CrnCommand) task.getData());
+ }
+
+ Thread.sleep(100);
+ } catch (Exception e) {
+ log.error("CrnProcess Fail", e);
}
- if (step == 2 && task != null) {
- sendCommand((CrnCommand) task.getData());
- }
- } catch (Exception e) {
- e.printStackTrace();
}
- }, 0, 200, TimeUnit.MILLISECONDS);
+ });
+ processThread.start();
}
/**
@@ -129,13 +107,13 @@
crnProtocol.setWalkPos(0);
crnProtocol.setLoaded(0);
crnProtocol.setAlarm(0);
- crnProtocol.setXSpeed(0);
- crnProtocol.setYSpeed(0);
- crnProtocol.setZSpeed(0);
- crnProtocol.setXDistance(0);
- crnProtocol.setYDistance(0);
- crnProtocol.setXDuration(0);
- crnProtocol.setYDuration(0);
+ crnProtocol.setXSpeed(0D);
+ crnProtocol.setYSpeed(0D);
+ crnProtocol.setZSpeed(0D);
+ crnProtocol.setXDistance(0D);
+ crnProtocol.setYDistance(0D);
+ crnProtocol.setXDuration(0D);
+ crnProtocol.setYDuration(0D);
}
@Override
@@ -179,20 +157,6 @@
crnProtocol.setYDuration(crnStatus.getYDuration());
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), deviceConfig.getDeviceNo()));
-
-// // 澶嶄綅淇″彿
-// if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
-// if (resetFlag) {
-// if(crnProtocol.getTaskNo()==9999){
-// backHpFlag = false;
-// }
-// CrnCommand crnCommand = new CrnCommand();
-// crnCommand.setAckFinish((short)1);
-// if (write(crnCommand)) {
-// resetFlag = false;
-// }
-// }
-// }
if (crnProtocol.getAlarm() > 0) {
crnProtocol.setLastCommandTime(-1L);
@@ -240,15 +204,6 @@
@Override
public void close() {
- closed = true;
- ScheduledExecutorService ex = readExecutor;
- if (ex != null) {
- try { ex.shutdownNow(); } catch (Exception ignore) {}
- }
- ScheduledExecutorService px = processExecutor;
- if (px != null) {
- try { px.shutdownNow(); } catch (Exception ignore) {}
- }
if (zyCrnConnectDriver != null) {
zyCrnConnectDriver.close();
}
@@ -275,6 +230,40 @@
return crnCommand;
}
+ //鍏ュ簱
+ @Override
+ public CrnCommand getPickCommand(String sourceLocNo, String targetLocNo, Integer taskNo, Integer crnNo) {
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(taskNo.shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setTaskMode(CrnTaskModeType.PAKOUT.id.shortValue()); // 浠诲姟妯″紡: 閽堝浜挎棩杩涜淇敼
+ crnCommand.setSourcePosX((short) Utils.getRow(sourceLocNo)); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) Utils.getBay(sourceLocNo)); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short) Utils.getLev(sourceLocNo)); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
+ crnCommand.setCommand((short) 1); // 浠诲姟纭
+ return crnCommand;
+ }
+
+ //鍑哄簱
+ @Override
+ public CrnCommand getPutCommand(String sourceLocNo, String targetLocNo, Integer taskNo, Integer crnNo) {
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(taskNo.shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setTaskMode(CrnTaskModeType.PAKIN.id.shortValue()); // 浠诲姟妯″紡: 閽堝浜挎棩杩涜淇敼
+ crnCommand.setSourcePosX((short) Utils.getRow(sourceLocNo)); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short) Utils.getBay(sourceLocNo)); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short) Utils.getLev(sourceLocNo)); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
+ crnCommand.setCommand((short) 1); // 浠诲姟纭
+ return crnCommand;
+ }
+
@Override
public CrnCommand getMoveCommand(String targetLocNo, Integer taskNo, Integer crnNo) {
CrnCommand crnCommand = new CrnCommand();
--
Gitblit v1.9.1