Commit 56478f97 authored by wanghao's avatar wanghao

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

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