From fb02f04ec63f00398e343e4b43eda00cce75c56e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 17 八月 2020 14:18:18 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java | 28 ++------------
src/main/java/com/zy/core/cache/MessageQueue.java | 20 ++++++++++
src/main/java/com/zy/asrs/controller/CrnController.java | 28 ++++++++++---
src/main/java/com/zy/core/thread/CrnThread.java | 18 ++++----
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 6 +-
5 files changed, 57 insertions(+), 43 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 3be82ea..f4914b9 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -1,5 +1,6 @@
package com.zy.asrs.controller;
+import com.alibaba.fastjson.JSON;
import com.core.annotations.ManagerAuth;
import com.core.common.R;
import com.zy.asrs.domain.enums.CrnStatusType;
@@ -9,11 +10,14 @@
import com.zy.asrs.domain.vo.CrnStateTableVo;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
+import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.CrnModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.CrnThread;
@@ -25,7 +29,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -46,12 +49,25 @@
@PostMapping("/command/ongoing")
public R ongoingCommand(){
List<CommandLogVo> list = new ArrayList<>();
- for (int i=1;i<=4;i++){
+ for (CrnSlave crn : slaveProperties.getCrn()) {
CommandLogVo vo = new CommandLogVo();
- vo.setCrnNo(String.valueOf(i));
- vo.setStatus(1);
- vo.setCommand(UUID.randomUUID().toString());
+ vo.setCrnNo(crn.getId()); // 鍫嗗灈鏈哄彿
+ vo.setStatus(0); // 鐘舵��
list.add(vo);
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ if (crnThread == null) {
+ continue;
+ }
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ continue;
+ }
+ vo.setStatus(1); // 鐘舵��
+ Task task = MessageQueue.peek(SlaveType.Crn, crn.getId());
+ if (task != null) {
+ vo.setCommand(JSON.toJSONString((CrnCommand)task.getData()));
+ }
}
return R.ok().add(list);
}
@@ -104,12 +120,10 @@
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
if (crnThread == null) {
- log.error("{}鍙峰爢鍨涙満杩炴帴澶辫触", crn.getId());
continue;
}
CrnProtocol crnProtocol = crnThread.getCrnProtocol();
if (crnProtocol == null) {
- log.error("{}鍙峰爢鍨涙満杩炴帴澶辫触", crn.getId());
continue;
}
// 琛ㄦ牸琛�
diff --git a/src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java b/src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java
index 9673fc4..37fa9c0 100644
--- a/src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/CommandLogVo.java
@@ -1,12 +1,15 @@
package com.zy.asrs.domain.vo;
+import lombok.Data;
+
/**
* Created by vincent on 2020-06-02
*/
+@Data
public class CommandLogVo {
// 鍫嗗灈鏈虹紪鍙�
- private String crnNo;
+ private Integer crnNo;
// 鐘舵��
private Integer status;
@@ -14,27 +17,4 @@
// 鍛戒护鎶ユ枃
private String command;
- public String getCrnNo() {
- return crnNo;
- }
-
- public void setCrnNo(String crnNo) {
- this.crnNo = crnNo;
- }
-
- public Integer getStatus() {
- return status;
- }
-
- public void setStatus(Integer status) {
- this.status = status;
- }
-
- public String getCommand() {
- return command;
- }
-
- public void setCommand(String command) {
- this.command = command;
- }
}
diff --git a/src/main/java/com/zy/core/cache/MessageQueue.java b/src/main/java/com/zy/core/cache/MessageQueue.java
index deb09e8..f2c92ad 100644
--- a/src/main/java/com/zy/core/cache/MessageQueue.java
+++ b/src/main/java/com/zy/core/cache/MessageQueue.java
@@ -92,4 +92,24 @@
}
}
+ /**
+ * 鍙栧嚭鍏冪礌锛屽苟涓嶅垹闄�.
+ */
+ public static Task peek(SlaveType type, Integer id) {
+ switch (type) {
+ case Crn:
+ return CRN_EXCHANGE.get(id).peek();
+ case Devp:
+ return DEVP_EXCHANGE.get(id).peek();
+ case Barcode:
+ return BARCODE_EXCHANGE.get(id).peek();
+ case Led:
+ return LED_EXCHANGE.get(id).peek();
+ case Scale:
+ return SCALE_EXCHANGE.get(id).peek();
+ default:
+ return null;
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index 5383a34..13c51ed 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -129,17 +129,17 @@
/**
* X琛岃蛋绾块�熷害m/min
*/
- private Short xSpeed;
+ private Float xSpeed;
/**
* Y琛岃蛋绾块�熷害m/min
*/
- private Short ySpeed;
+ private Float ySpeed;
/**
* Z琛岃蛋绾块�熷害m/min
*/
- private Short zSpeed;
+ private Float zSpeed;
/**
* 鍫嗗灈鏈虹疮璁¤蛋琛岃窛绂籯m
diff --git a/src/main/java/com/zy/core/thread/CrnThread.java b/src/main/java/com/zy/core/thread/CrnThread.java
index d6b9786..c16717e 100644
--- a/src/main/java/com/zy/core/thread/CrnThread.java
+++ b/src/main/java/com/zy/core/thread/CrnThread.java
@@ -67,7 +67,7 @@
command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
command.setTaskNo((short) 0); // 宸ヤ綔鍙�
command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣�
- command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
command.setSourcePosX((short)0); // 婧愬簱浣嶆帓
command.setSourcePosY((short)0); // 婧愬簱浣嶅垪
command.setSourcePosZ((short)0); // 婧愬簱浣嶅眰
@@ -110,7 +110,7 @@
* 璇诲彇鐘舵��
*/
private void readStatus(){
- OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 46);
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 56);
if (result.IsSuccess) {
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
if (null == crnProtocol) {
@@ -131,13 +131,13 @@
crnProtocol.setError1(siemensNet.getByteTransform().TransBool(result.Content, 22, 2));
crnProtocol.setError2(siemensNet.getByteTransform().TransBool(result.Content, 24, 2));
crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 26));
- crnProtocol.setXSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
- crnProtocol.setYSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 30));
- crnProtocol.setZSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32));
- crnProtocol.setXDistance(siemensNet.getByteTransform().TransSingle(result.Content, 34));
- crnProtocol.setYDistance(siemensNet.getByteTransform().TransSingle(result.Content, 38));
- crnProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 42));
- crnProtocol.setYDuration(siemensNet.getByteTransform().TransSingle(result.Content, 46));
+ crnProtocol.setXSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 28));
+ crnProtocol.setYSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 32));
+ crnProtocol.setZSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 36));
+ crnProtocol.setXDistance(siemensNet.getByteTransform().TransSingle(result.Content, 40));
+ crnProtocol.setYDistance(siemensNet.getByteTransform().TransSingle(result.Content, 44));
+ crnProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 48));
+ crnProtocol.setYDuration(siemensNet.getByteTransform().TransSingle(result.Content, 52));
} else {
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
--
Gitblit v1.9.1