From b2658337c8b37a745415e672074c86f43ca09d5e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 11 八月 2020 13:39:32 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/enums/CrnTaskModeType.java | 42 +++++++++++++++++++++
src/main/java/com/zy/core/model/command/CrnCommand.java | 13 ++++++
src/main/java/com/zy/core/thread/CrnThread.java | 29 ++++++++++++--
src/main/java/com/zy/core/model/Task.java | 6 +-
src/main/resources/application.yml | 2
5 files changed, 84 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/core/enums/CrnTaskModeType.java b/src/main/java/com/zy/core/enums/CrnTaskModeType.java
new file mode 100644
index 0000000..c6fca8a
--- /dev/null
+++ b/src/main/java/com/zy/core/enums/CrnTaskModeType.java
@@ -0,0 +1,42 @@
+package com.zy.core.enums;
+
+public enum CrnTaskModeType {
+
+ NONE(0), // 鏃�
+ PAKIN(1), // 鍏ュ簱
+ PAKOUT(2), // 鍑哄簱
+ LOC_MOVE(3), // 搴撲綅绉昏浆
+ SITE_MOVE(4), // 绔欎綅绉昏浆
+ ORIGIN(5), // 鍥炲師鐐�
+ ;
+
+ public Integer id;
+ CrnTaskModeType(Integer id) {
+ this.id = id;
+ }
+
+ public static CrnTaskModeType get(Short id) {
+ if (null == id) {
+ return null;
+ }
+ for (CrnTaskModeType type : CrnTaskModeType.values()) {
+ if (type.id.equals(id.intValue())) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ public static CrnTaskModeType get(CrnTaskModeType type) {
+ if (null == type) {
+ return null;
+ }
+ for (CrnTaskModeType crnTaskModeType : CrnTaskModeType.values()) {
+ if (crnTaskModeType == type) {
+ return crnTaskModeType;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/zy/core/model/Task.java b/src/main/java/com/zy/core/model/Task.java
index c337aed..c3cf784 100644
--- a/src/main/java/com/zy/core/model/Task.java
+++ b/src/main/java/com/zy/core/model/Task.java
@@ -6,16 +6,16 @@
* Created by vincent on 2020/8/5
*/
@Data
-public class Task<T> {
+public class Task {
private Integer step;
- private T data;
+ private Object data;
public Task() {
}
- public Task(Integer step, T data) {
+ public Task(Integer step, Object data) {
this.step = step;
this.data = data;
}
diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java
index 3b89cb4..dc97b19 100644
--- a/src/main/java/com/zy/core/model/command/CrnCommand.java
+++ b/src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -1,5 +1,6 @@
package com.zy.core.model.command;
+import com.zy.core.enums.CrnTaskModeType;
import lombok.Data;
/**
@@ -31,6 +32,8 @@
*/
private Short taskMode;
+ private CrnTaskModeType taskModeType;
+
// 婧愪綅缃帓鍙�
private Short sourcePosX;
@@ -49,4 +52,14 @@
// 鐩爣浣嶇疆灞傚彿
private Short destinationPosZ;
+ public void setTaskMode(Short taskMode){
+ this.taskMode = taskMode;
+ this.taskModeType = CrnTaskModeType.get(taskModeType);
+ }
+
+ public void setTaskMode(CrnTaskModeType type) {
+ this.taskModeType = type;
+ this.taskMode = CrnTaskModeType.get(type).id.shortValue();
+ }
+
}
diff --git a/src/main/java/com/zy/core/thread/CrnThread.java b/src/main/java/com/zy/core/thread/CrnThread.java
index 6545d5b..4839c5b 100644
--- a/src/main/java/com/zy/core/thread/CrnThread.java
+++ b/src/main/java/com/zy/core/thread/CrnThread.java
@@ -44,10 +44,11 @@
switch (step) {
// 璇绘暟鎹�
case 1:
- readStatus(); // 璇诲彇鐘舵��
+ readStatus();
break;
+ // 鍐欏叆鏁版嵁
case 2:
- CrnCommand command = (CrnCommand) task.getData();
+ write((CrnCommand) task.getData());
break;
case 3:
break;
@@ -86,7 +87,7 @@
* 璇诲彇鐘舵��
*/
private void readStatus(){
- OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 10);
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 46);
if (result.IsSuccess) {
if (null == crnProtocol) {
crnProtocol = new CrnProtocol();
@@ -120,7 +121,27 @@
* 鍐欏叆鏁版嵁
*/
private void write(CrnCommand command){
-
+ if (null == command) {
+ log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+ return;
+ }
+ command.setCrnNo(slave.getId());
+ short[] array = new short[9];
+ array[0] = command.getAckFinish();
+ array[1] = command.getTaskNo();
+ array[2] = command.getTaskMode();
+ array[3] = command.getSourcePosX();
+ array[4] = command.getSourcePosY();
+ array[5] = command.getSourcePosZ();
+ array[6] = command.getDestinationPosX();
+ array[7] = command.getDestinationPosY();
+ array[8] = command.getDestinationPosZ();
+ OperateResult result = siemensNet.Write("DB8.0", array);
+ if (result.IsSuccess) {
+ readStatus();
+ } else {
+ log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ }
}
@Override
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 85a7adb..61553ea 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -38,7 +38,7 @@
# 鍫嗗灈鏈�
crn[0]:
id: 1
- ip: 192.168.6.1
+ ip: 192.168.6.10
port: 102
rack: 0
slot: 2
--
Gitblit v1.9.1