From 342e32254a9e21eca8612b2651f0fa125e083c0a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 16 五月 2023 12:39:17 +0800
Subject: [PATCH] realtimeWatch pipeline
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 96 +++++++++++++++++++++++++++++++++++++++---------
1 files changed, 78 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index ffa25f4..3664661 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -45,6 +45,7 @@
@Override
@SuppressWarnings("InfiniteLoopStatement")
public void run() {
+ initCrnProtocol();
this.connect();
while (true) {
try {
@@ -91,6 +92,22 @@
}
}
+ /**
+ * 鍒濆鍖栧爢鍨涙満
+ */
+ private void initCrnProtocol(){
+ crnProtocol = new CrnProtocol();
+ crnProtocol.setMode((short) 0);
+ crnProtocol.setStatus((short) 0);
+ crnProtocol.setTaskNo((short) 0);
+ crnProtocol.setTaskFinish((short) 0);
+ crnProtocol.setValid((short) 0);
+ crnProtocol.setBay((short) 0);
+ crnProtocol.setLevel((short) 0);
+ crnProtocol.setRow((short) 0);
+ crnProtocol.setLane((short) 0);
+ }
+
@Override
public boolean connect() {
boolean result = false;
@@ -131,6 +148,10 @@
crnProtocol.setLane(siemensNet.getByteTransform().TransInt16(result.Content, 20)); // 22
// 寮傚父
+ crnProtocol.setAlarm1(0);
+ crnProtocol.setAlarm2(0);
+ crnProtocol.setAlarm3(0);
+ crnProtocol.setAlarm4(0);
boolean[] err1 = siemensNet.getByteTransform().TransBool(result.Content, 28, 1); // 30
if (err1[0]) { crnProtocol.setAlarm1(1); }
if (err1[1]) { crnProtocol.setAlarm1(2); }
@@ -219,11 +240,6 @@
if (err15[4]) { crnProtocol.setAlarm4(71); }
if (err15[5]) { crnProtocol.setAlarm4(72); }
if (err15[6]) { crnProtocol.setAlarm4(73); }
-
-// crnProtocol.setAlarm1(siemensNet.getByteTransform().TransInt32(result.Content, 28)); // 30
-// crnProtocol.setAlarm2(siemensNet.getByteTransform().TransInt32(result.Content, 32)); // 34
-// crnProtocol.setAlarm3(siemensNet.getByteTransform().TransInt32(result.Content, 36)); // 38
-// crnProtocol.setAlarm4(siemensNet.getByteTransform().TransInt32(result.Content, 40)); // 42
boolean[] bool1 = siemensNet.getByteTransform().TransBool(result.Content, 60, 1); // 62
crnProtocol.setConnStatus(bool1[0]);
@@ -314,6 +330,7 @@
BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
BasCrnp basCrnp = new BasCrnp();
basCrnp.setCrnNo(slave.getId());
+ basCrnp.setCrnSts((int)crnProtocol.getMode());
if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
@@ -343,25 +360,69 @@
} else {
array[0] = 0;
}
- array[1] = command.getSourcePosZ();
- array[2] = command.getSourcePosY();
- array[3] = command.getSourcePosX();
- array[4] = command.getDestinationPosZ();
- array[5] = command.getDestinationPosY();
- array[6] = command.getDestinationPosX();
- array[7] = command.getSourceStaNo();
- array[8] = command.getDestinationStaNo();
+
+ if (command.getSourcePosZ()==(short)1 && command.getSourcePosY()==(short)1){
+ array[1] = (short)0;
+ array[2] = (short)0;
+ }else if (command.getSourcePosZ()==(short)1 && command.getSourcePosY()==(short)41){
+ array[1] = (short)0;
+ array[2] = (short)42;
+ }else {
+ array[1] = command.getSourcePosZ();
+ array[2] = command.getSourcePosY();
+ }
+
+ if (command.getSourcePosX()==(short)3){
+ array[3] = (short)1;
+ }else if (command.getSourcePosX()==(short)4){
+ array[3] = (short)2;
+ }else {
+ array[3] = command.getSourcePosX();
+ }
+
+ if (command.getDestinationPosZ()==(short)1 && command.getDestinationPosY()==(short)1){
+ array[4] = (short)0;
+ array[5] = (short)0;
+ }else if (command.getDestinationPosZ()==(short)1 && command.getDestinationPosY()==(short)41){
+ array[4] = (short)0;
+ array[5] = (short)42;
+ }else {
+ array[4] = command.getDestinationPosZ();
+ array[5] = command.getDestinationPosY();
+ }
+
+ if (command.getDestinationPosX()==(short)3){
+ array[6] = (short)1;
+ }else if (command.getDestinationPosX()==(short)4){
+ array[6] = (short)2;
+ }else {
+ array[6] = command.getDestinationPosX();
+ }
+ if ((array[1]==(short)0 && array[2] == (short)0) || (array[1]==(short)0 && array[2] == (short)42)){
+ array[7]=(short)1;
+ }else {
+ array[7]=(short)0;
+ }
+// array[7] = command.getSourceStaNo();
+
+ if ((array[4]==(short)0 && array[5] == (short)0) || (array[4]==(short)0 && array[5] == (short)42)){
+ array[8]=(short)1;
+ }else {
+ array[8]=(short)0;
+ }
+// array[8] = command.getDestinationStaNo();
+
// 浣滀笟淇℃伅
- OperateResult result = siemensNet.Write("DB1000.0", array);
+ OperateResult result = siemensNet.Write("DB10.0", array);
// 浠诲姟鍙� + 瀹屾垚浣�
short[] array2 = new short[2];
array2[0] = command.getTaskNo();
array2[1] = command.getAckFinish();
- OperateResult result1 = siemensNet.Write("DB1000.24", array2);
+ OperateResult result1 = siemensNet.Write("DB10.24", array2);
// 缁撴潫浣�
if (command.getAckFinish() == 0) {
- OperateResult result2 = siemensNet.Write("DB1000.28.1", true);
+ OperateResult result2 = siemensNet.Write("DB10.28.1", true);
}
// 鏃ュ織璁板綍
@@ -390,8 +451,7 @@
} catch (Exception ignore) {}
if (result.IsSuccess && result1.IsSuccess) {
-
- log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+ log.warn("鍫嗗灈鏈哄懡浠や笅鍙慬id:{},鏃堕棿锛歿}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
return true;
} else {
--
Gitblit v1.9.1