Commit 20aa86c8 authored by wanghao's avatar wanghao

1 写自检后 判断下 是否写成功

parent 5759184c
......@@ -10,7 +10,7 @@ import com.zehong.common.core.domain.BaseEntity;
/**
* 托盘绑定的设备列对象 t_pallet_device_binding
*
*
* @author zehong
* @date 2025-06-29
*/
......@@ -150,32 +150,32 @@ public class PalletDeviceBinding extends BaseEntity
/**
* 写自检状态 空 是没写 0-失败;1-成功
*/
private Integer writeSelfCheckStatus;
private int writeSelfCheckStatus;
/**
* 继电器状态 0:初始 1:动作
*/
private Integer relayStatus;
private int relayStatus;
/**
* 脉冲状态 0:初始 1:动作
*/
private Integer pulseStatus;
private int pulseStatus;
/**
* 模块状态 0:异常 1:正常
*/
private Integer moduleStatus;
private int moduleStatus;
/**
* SIM卡状态 0:异常 1:正常
*/
private Integer simCardStatus;
private int simCardStatus;
/**
* 网络状态 0:异常 1:正常
*/
private Integer networkStatus;
private int networkStatus;
public String getStatus() {
return status;
......@@ -190,47 +190,47 @@ public class PalletDeviceBinding extends BaseEntity
this.palletDeviceBindingId = palletDeviceBindingId;
}
public Long getPalletDeviceBindingId()
public Long getPalletDeviceBindingId()
{
return palletDeviceBindingId;
}
public void setTrayId(Long trayId)
public void setTrayId(Long trayId)
{
this.trayId = trayId;
}
public Long getTrayId()
public Long getTrayId()
{
return trayId;
}
public void setDeviceCode(String deviceCode)
public void setDeviceCode(String deviceCode)
{
this.deviceCode = deviceCode;
}
public String getDeviceCode()
public String getDeviceCode()
{
return deviceCode;
}
public void setRow(Integer row)
public void setRow(Integer row)
{
this.row = row;
}
public Integer getRow()
public Integer getRow()
{
return row;
}
public void setCol(Integer col)
public void setCol(Integer col)
{
this.col = col;
}
public Integer getCol()
public Integer getCol()
{
return col;
}
public void setBindingTime(Date bindingTime)
public void setBindingTime(Date bindingTime)
{
this.bindingTime = bindingTime;
}
......@@ -247,12 +247,12 @@ public class PalletDeviceBinding extends BaseEntity
{
return bindingTime;
}
public void setUnbindingTime(Date unbindingTime)
public void setUnbindingTime(Date unbindingTime)
{
this.unbindingTime = unbindingTime;
}
public Date getUnbindingTime()
public Date getUnbindingTime()
{
return unbindingTime;
}
......@@ -401,51 +401,51 @@ public class PalletDeviceBinding extends BaseEntity
this.calibrationConcentrationStatus = calibrationConcentrationStatus;
}
public Integer getWriteSelfCheckStatus() {
public int getWriteSelfCheckStatus() {
return writeSelfCheckStatus;
}
public void setWriteSelfCheckStatus(Integer writeSelfCheckStatus) {
public void setWriteSelfCheckStatus(int writeSelfCheckStatus) {
this.writeSelfCheckStatus = writeSelfCheckStatus;
}
public Integer getRelayStatus() {
public int getRelayStatus() {
return relayStatus;
}
public void setRelayStatus(Integer relayStatus) {
public void setRelayStatus(int relayStatus) {
this.relayStatus = relayStatus;
}
public Integer getPulseStatus() {
public int getPulseStatus() {
return pulseStatus;
}
public void setPulseStatus(Integer pulseStatus) {
public void setPulseStatus(int pulseStatus) {
this.pulseStatus = pulseStatus;
}
public Integer getModuleStatus() {
public int getModuleStatus() {
return moduleStatus;
}
public void setModuleStatus(Integer moduleStatus) {
public void setModuleStatus(int moduleStatus) {
this.moduleStatus = moduleStatus;
}
public Integer getSimCardStatus() {
public int getSimCardStatus() {
return simCardStatus;
}
public void setSimCardStatus(Integer simCardStatus) {
public void setSimCardStatus(int simCardStatus) {
this.simCardStatus = simCardStatus;
}
public Integer getNetworkStatus() {
public int getNetworkStatus() {
return networkStatus;
}
public void setNetworkStatus(Integer networkStatus) {
public void setNetworkStatus(int networkStatus) {
this.networkStatus = networkStatus;
}
......
......@@ -1062,6 +1062,23 @@ public class Modbus4jUtils {
}
return lastResult;
}
public static int writeSelfCheckStatus(ModbusMaster master, int deviceId) {
// 20251206 写完时间写自检,写自检就在时间后边写就行,不管时间写不写成功
try {
Modbus4jUtils.writeRegister(master, deviceId, 15, (short) 1);
Thread.sleep(2000);
int[] ints = Modbus4jUtils.readDeviceRegisters(master, deviceId);
if (ints[15] == 1) {
return 1;
} else {
return 0;
}
} catch (Exception e) {
return 0;
}
}
/**
* 读取设备寄存器(线程安全版)
*/
......
......@@ -179,7 +179,8 @@ public class AgingStageOneProcessJob implements Job {
}
}
// 5. 写入自检让设备开始自检,跟 上面的状态没关系
writeSelfCheckStatus(master, deviceId, binding);
int i = Modbus4jUtils.writeSelfCheckStatus(master, deviceId);
binding.setWriteSelfCheckStatus(i);
// 6. 更新数据库
palletDeviceBindingMapper.updatePalletDeviceBinding(binding);
......@@ -232,20 +233,6 @@ public class AgingStageOneProcessJob implements Job {
}
}
/**
* 写入自检状态 让设备开始自检
*/
private void writeSelfCheckStatus(ModbusMaster master, int deviceId,
PalletDeviceBinding binding){
// 20251206 写完时间写自检,写自检就在时间后边写就行,不管时间写不写成功
try {
Modbus4jUtils.writeRegister(master, deviceId, 15, (short) 1);
binding.setWriteSelfCheckStatus(1);
} catch (Exception e) {
binding.setWriteSelfCheckStatus(0);
}
}
/**
* 写入当前时间到设备
*/
......
......@@ -207,12 +207,13 @@ public class AgingStageTwoProcessJob implements Job {
binding.setNetworkStatus(result[14]);
// 重用之前的master连接进行写操作
master = Modbus4jUtils.createModbusMaster(ip, port);
writeSelfCheckStatus(master, deviceId, binding);
int i = Modbus4jUtils.writeSelfCheckStatus(master, deviceId);
binding.setWriteSelfCheckStatus(i);
// 5. 更新数据库
palletDeviceBindingMapper.updatePalletDeviceBinding(binding);
log.debug("设备{}处理完成: ip={}, port={}, status={}", deviceId, ip, port, result[1]);
log.info("设备{}处理完成: ip={}, port={}, status={}", deviceId, ip, port, result[1]);
return true;
} catch (Exception e) {
......@@ -224,19 +225,6 @@ public class AgingStageTwoProcessJob implements Job {
}
}, GLOBAL_DEVICE_EXECUTOR);
}
/**
* 写入自检状态 让设备开始自检
*/
private void writeSelfCheckStatus(ModbusMaster master, int deviceId,
PalletDeviceBinding binding){
// 20251206 写完时间写自检,写自检就在时间后边写就行,不管时间写不写成功
try {
Modbus4jUtils.writeRegister(master, deviceId, 15, (short) 1);
binding.setWriteSelfCheckStatus(1);
} catch (Exception e) {
binding.setWriteSelfCheckStatus(0);
}
}
/**
* 记录告警(兼容设备信息为空的场景)
......
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