41 lines
1.1 KiB
Java
41 lines
1.1 KiB
Java
package com.ruoyi.schedule.plc;
|
|
|
|
import com.ruoyi.schedule.plc.domain.SsjDevice;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
public class PlcRead implements Runnable{
|
|
|
|
private final Map<String, SsjDevice> deviceMap;
|
|
private volatile boolean running = true;
|
|
|
|
public PlcRead(ConcurrentHashMap<String, SsjDevice> deviceMap) {
|
|
this.deviceMap = deviceMap;
|
|
}
|
|
|
|
@Override
|
|
public void run() {
|
|
while (running && !Thread.currentThread().isInterrupted()) {
|
|
try {
|
|
// 模拟PLC读取操作
|
|
Thread.sleep(1000); // 模拟睡眠
|
|
// TODO: 实际读取PLC设备数据逻辑
|
|
} catch (InterruptedException e) {
|
|
// 捕获中断异常,退出循环
|
|
Thread.currentThread().interrupt(); // 重新设置中断标志
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
public void stopReading() {
|
|
running = false;
|
|
Thread.currentThread().interrupt(); // 主动中断线程
|
|
}
|
|
|
|
}
|