ctu agv callback接口返回处理逻辑

This commit is contained in:
liuhanqing
2025-07-08 11:22:10 +08:00
parent e6b5bd67ba
commit b8e80af9b7
16 changed files with 482 additions and 129 deletions

View File

@@ -6,7 +6,11 @@ import com.ruoyi.schedule.plcRead.ssj.domain.PlcConnectInfo;
import com.ruoyi.schedule.plcRead.ssj.PlcRead;
import com.ruoyi.schedule.plcRead.ssj.domain.CustomThread;
import com.ruoyi.schedule.scheduleTask.ssj.bs.BsInSsjThread;
import com.ruoyi.schedule.scheduleTask.ssj.bs.BsOutSsjThread;
import com.ruoyi.schedule.scheduleTask.ssj.bs.BsPickSsjTread;
import com.ruoyi.schedule.scheduleTask.ssj.js.JsInSsjThread;
import com.ruoyi.schedule.scheduleTask.ssj.js.JsOutSsjThread;
import com.ruoyi.schedule.scheduleTask.ssj.js.JsPickSsjTread;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -23,6 +27,10 @@ public class ScheduleThread {
public CustomThread bsInSsjThread;
public CustomThread jsInSsjThread;
public CustomThread bsOutSsjThread;
public CustomThread jsOutSsjThread;
public CustomThread bsPickSsjThread;
public CustomThread jsPickSsjThread;
/**
* 项目初始化启动
@@ -39,6 +47,7 @@ public class ScheduleThread {
list.put(deviceSsj.getDeviceCode(),deviceSsj);
}
//plc读取线程
PlcRead plcRead = new PlcRead(list,ssjPlcConnectInfo);
Thread plcReadThread = new Thread(plcRead);
customThread = new CustomThread(plcReadThread, plcRead);
@@ -48,6 +57,14 @@ public class ScheduleThread {
bsInSsjThread = new CustomThread(new Thread(bsInSsjThread1),bsInSsjThread1);
JsInSsjThread jsInSsjThread1 = new JsInSsjThread();
jsInSsjThread = new CustomThread(new Thread(jsInSsjThread1),bsInSsjThread1);
BsOutSsjThread bsOutSsjThread1 = new BsOutSsjThread();
bsOutSsjThread = new CustomThread(new Thread(bsOutSsjThread1),bsOutSsjThread1);
JsOutSsjThread jsOutSsjThread1 = new JsOutSsjThread();
jsOutSsjThread = new CustomThread(new Thread(jsOutSsjThread1),jsOutSsjThread1);
BsPickSsjTread bsPickSsjTread1 = new BsPickSsjTread();
bsPickSsjThread = new CustomThread(new Thread(bsPickSsjTread1),bsPickSsjTread1);
JsPickSsjTread jsPickSsjTread1 = new JsPickSsjTread();
jsPickSsjThread = new CustomThread(new Thread(jsPickSsjTread1),jsPickSsjTread1);
}
/**
@@ -58,8 +75,18 @@ public class ScheduleThread {
}
public void startAllThread2() {
//臂式入库线程调度
bsInSsjThread.getThread().start();
//剪式入库线程调度
jsInSsjThread.getThread().start();
//臂式出库线程调度
bsOutSsjThread.getThread().start();
//剪式出库线程调度
jsOutSsjThread.getThread().start();
//臂式出库到位线程调度-wms电子屏交互
bsPickSsjThread.getThread().start();
//剪上出库到位线程调度-wms电子屏交互
jsPickSsjThread.getThread().start();
}
/**
@@ -69,18 +96,20 @@ public class ScheduleThread {
stopThread(customThread);
}
public void stopAllThread2() {
stopThread(bsInSsjThread);
stopThread(jsInSsjThread);
stopThread(bsOutSsjThread);
stopThread(jsOutSsjThread);
stopThread(bsPickSsjThread);
stopThread(jsPickSsjThread);
}
/**
* 停止线程
*/
private void stopThread(CustomThread customThread) {
if (customThread.getThread() != null && customThread.getThread().isAlive()) {
((PlcRead)customThread.getRunnable()).stopReading();
try {
customThread.getThread().join(); // 等待线程结束
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}