Commit 56478f97 authored by wanghao's avatar wanghao

1 指令指令完成,但是 没有检测到机械臂完成。

parent 20ea5ebf
...@@ -95,47 +95,48 @@ public abstract class BaseDeviceCommJob implements Job { ...@@ -95,47 +95,48 @@ public abstract class BaseDeviceCommJob implements Job {
// 保存JobKey和TriggerKey,用于后续清理 // 保存JobKey和TriggerKey,用于后续清理
JobKey jobKey = context.getJobDetail().getKey(); JobKey jobKey = context.getJobDetail().getKey();
TriggerKey triggerKey = context.getTrigger().getKey(); TriggerKey triggerKey = context.getTrigger().getKey();
log.info("单设备任务开始:port={}, deviceId={}", getFixedPort(), deviceId);
try {
log.info("单设备任务开始:port={}, deviceId={}, storeyId={}", // try {
getFixedPort(), deviceId, storeyIdStr); // log.info("单设备任务开始:port={}, deviceId={}, storeyId={}",
// getFixedPort(), deviceId, storeyIdStr);
// 1. 校验基础参数(设备信息、IP、端口) //
storeyInfo = validateBaseParams(storeyIdStr); // // 1. 校验基础参数(设备信息、IP、端口)
// storeyInfo = validateBaseParams(storeyIdStr);
if(storeyInfo == null) { //
log.info("设备不存在:fStoreyId={}", storeyIdStr); // if(storeyInfo == null) {
return; // log.info("设备不存在:fStoreyId={}", storeyIdStr);
} // return;
String deviceIp = storeyInfo.getfIp(); // }
int port = getFixedPort(); // String deviceIp = storeyInfo.getfIp();
// int port = getFixedPort();
// 2. 执行单设备Modbus通信(带超时+重试) //
int[] modbusResult = executeModbusWithTimeout(deviceIp, port, deviceId); // // 2. 执行单设备Modbus通信(带超时+重试)
// int[] modbusResult = executeModbusWithTimeout(deviceIp, port, deviceId);
// 3. 处理Modbus结果(非必须,为空则跳过) //
if (resultHandler != null && modbusResult != null) { // // 3. 处理Modbus结果(非必须,为空则跳过)
resultHandler.accept(new DeviceStatusReaderDto(deviceIp, port, deviceId, modbusResult)); // if (resultHandler != null && modbusResult != null) {
} else { // resultHandler.accept(new DeviceStatusReaderDto(deviceIp, port, deviceId, modbusResult));
updateDeviceError(storeyInfo.getfIp()); // } else {
} // updateDeviceError(storeyInfo.getfIp());
// }
log.info("单设备任务成功:port={}, deviceId={}, storeyId={},耗时={}ms", //
port, deviceId, storeyIdStr, System.currentTimeMillis() - taskStartTime); // log.info("单设备任务成功:port={}, deviceId={}, storeyId={},耗时={}ms",
// port, deviceId, storeyIdStr, System.currentTimeMillis() - taskStartTime);
} catch (Throwable e) { //
// 单设备异常直接捕获,记录告警并抛出让Quartz感知 // } catch (Throwable e) {
String errMsg = String.format("单设备任务失败:port=%d, deviceId=%d, storeyId=%s", // // 单设备异常直接捕获,记录告警并抛出让Quartz感知
getFixedPort(), deviceId, storeyIdStr); // String errMsg = String.format("单设备任务失败:port=%d, deviceId=%d, storeyId=%s",
log.info(errMsg, e); // getFixedPort(), deviceId, storeyIdStr);
if(storeyInfo != null) { // log.info(errMsg, e);
updateDeviceError(storeyInfo.getfIp()); // if(storeyInfo != null) {
} // updateDeviceError(storeyInfo.getfIp());
recordAlarm(storeyInfo, storeyIdStr, errMsg + ":" + e.getMessage()); // }
} finally { // recordAlarm(storeyInfo, storeyIdStr, errMsg + ":" + e.getMessage());
// 核心:任务执行完成后,清理Job和Trigger(无论成功/失败) // } finally {
cleanJobAndTrigger(jobKey, triggerKey); // // 核心:任务执行完成后,清理Job和Trigger(无论成功/失败)
} // cleanJobAndTrigger(jobKey, triggerKey);
// }
} }
/** /**
* 清理Job和Trigger,避免元数据残留 * 清理Job和Trigger,避免元数据残留
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment