lisai17@sina.com 2021-02-21 21:19:37 +08:00
parent 62118f2240
commit b46e2c49fe
5 changed files with 113 additions and 41 deletions

View File

@ -16,7 +16,10 @@ import com.jfinal.plugin.activerecord.Record;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
public class DeviceThread extends Thread { public class DeviceThread extends Thread {
@ -168,8 +171,11 @@ public class DeviceThread extends Thread {
String which = device.getString("which"); String which = device.getString("which");
String plcRod1Up = device.getString("plcRod1Up"); String plcRod1Up = device.getString("plcRod1Up");
String plcRod2Up = device.getString("plcRod2Up");
String plcSensor1Reset = device.getString("plcSensor1Reset"); String plcSensor1Reset = device.getString("plcSensor1Reset");
String plcSensor2Reset = device.getString("plcSensor2Reset");
String plcSensor1 = device.getString("plcSensor1"); String plcSensor1 = device.getString("plcSensor1");
String plcSensor2 = device.getString("plcSensor2");
Integer scale_wait_time = device.getInteger("scale_wait_time"); Integer scale_wait_time = device.getInteger("scale_wait_time");
JSONObject cameraconf = device.getJSONObject("camera"); JSONObject cameraconf = device.getJSONObject("camera");
JSONObject scaleconf = device.getJSONObject("scale"); JSONObject scaleconf = device.getJSONObject("scale");
@ -223,9 +229,9 @@ public class DeviceThread extends Thread {
} }
if (which.startsWith(Enums.CtrlFlowEnum.R.name())) { if (which.startsWith(Enums.CtrlFlowEnum.R.name())) {
controller = new InController(which, camera, scale, led, plc, scale_wait_time, plcRod1Up, plcSensor1Reset, plcSensor1); controller = new InController(which, camera, scale, led, plc, scale_wait_time, plcRod1Up, plcRod2Up, plcSensor1Reset, plcSensor2Reset, plcSensor1, plcSensor2);
} else if (which.startsWith(Enums.CtrlFlowEnum.C.name())) { } else if (which.startsWith(Enums.CtrlFlowEnum.C.name())) {
controller = new OutController(which, camera, scale, led, plc, scale_wait_time, plcRod1Up, plcSensor1Reset, plcSensor1); controller = new OutController(which, camera, scale, led, plc, scale_wait_time, plcRod1Up, plcRod2Up, plcSensor1Reset, plcSensor2Reset, plcSensor1, plcSensor2);
} else { } else {
log.error("which 值设置错误 %s ", config); log.error("which 值设置错误 %s ", config);
return; return;

View File

@ -1,9 +1,11 @@
package com.cowr.local.ssjygl.devicectrl.controllers; package com.cowr.local.ssjygl.devicectrl.controllers;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cowr.local.ssjygl.devicectrl.device.*; import com.cowr.local.ssjygl.devicectrl.device.AbsScale;
import com.cowr.local.ssjygl.devicectrl.device.Camera;
import com.cowr.local.ssjygl.devicectrl.device.LEDThread;
import com.cowr.local.ssjygl.devicectrl.device.PLC;
import com.cowr.local.ssjygl.devicectrl.utils.LicenseJPGPair; import com.cowr.local.ssjygl.devicectrl.utils.LicenseJPGPair;
import com.cowr.local.ssjygl.main.CliCacheData;
import com.cowr.local.ssjygl.transport.TransportDeviceService; import com.cowr.local.ssjygl.transport.TransportDeviceService;
import com.cowr.local.ssjygl.transport.TransportSyncService; import com.cowr.local.ssjygl.transport.TransportSyncService;
import com.cowr.model.PostLicenseResult; import com.cowr.model.PostLicenseResult;
@ -37,8 +39,11 @@ public abstract class Controller implements Runnable {
// plc 指令 // plc 指令
private String rod1Up; // 抬前闸 private String rod1Up; // 抬前闸
private String rod2Up; // 抬后闸
private String sensor1Reset; // 重置前地感状态 private String sensor1Reset; // 重置前地感状态
private String sensor1; // 读地感状态 private String sensor2Reset; // 重置后地感状态
private String sensor1; // 读前地感状态
private String sensor2; // 读后地感状态
private ReentrantLock ctrllock; // 同进同出互斥锁 private ReentrantLock ctrllock; // 同进同出互斥锁
@ -60,7 +65,7 @@ public abstract class Controller implements Runnable {
this.scaleWaitTime = scaleWaitTime; this.scaleWaitTime = scaleWaitTime;
} }
public Controller(String which, Camera camera, AbsScale scale, LEDThread led, PLC plc, int scaleWaitTime, String rod1Up, String sensor1Reset, String sensor1) { public Controller(String which, Camera camera, AbsScale scale, LEDThread led, PLC plc, int scaleWaitTime, String rod1Up, String rod2Up, String sensor1Reset, String sensor2Reset, String sensor1, String sensor2) {
log.info("%s 流程上磅等待时间 %s", which, scaleWaitTime); log.info("%s 流程上磅等待时间 %s", which, scaleWaitTime);
this.which = which; this.which = which;
@ -73,12 +78,21 @@ public abstract class Controller implements Runnable {
if (StrKit.notBlank(rod1Up)) { if (StrKit.notBlank(rod1Up)) {
this.rod1Up = rod1Up; this.rod1Up = rod1Up;
} }
if (StrKit.notBlank(rod2Up)) {
this.rod2Up = rod2Up;
}
if (StrKit.notBlank(sensor1Reset)) { if (StrKit.notBlank(sensor1Reset)) {
this.sensor1Reset = sensor1Reset; this.sensor1Reset = sensor1Reset;
} }
if (StrKit.notBlank(sensor2Reset)) {
this.sensor2Reset = sensor2Reset;
}
if (StrKit.notBlank(sensor1)) { if (StrKit.notBlank(sensor1)) {
this.sensor1 = sensor1; this.sensor1 = sensor1;
} }
if (StrKit.notBlank(sensor2)) {
this.sensor2 = sensor2;
}
} }
public void onLicenseResult(String license, File file, boolean head, boolean delete) { public void onLicenseResult(String license, File file, boolean head, boolean delete) {
@ -307,6 +321,30 @@ public abstract class Controller implements Runnable {
this.sensor1 = sensor1; this.sensor1 = sensor1;
} }
public String getRod2Up() {
return rod2Up;
}
public void setRod2Up(String rod2Up) {
this.rod2Up = rod2Up;
}
public String getSensor2Reset() {
return sensor2Reset;
}
public void setSensor2Reset(String sensor2Reset) {
this.sensor2Reset = sensor2Reset;
}
public String getSensor2() {
return sensor2;
}
public void setSensor2(String sensor2) {
this.sensor2 = sensor2;
}
public ReentrantLock getCtrllock() { public ReentrantLock getCtrllock() {
return ctrllock; return ctrllock;
} }

View File

@ -1,9 +1,11 @@
package com.cowr.local.ssjygl.devicectrl.controllers; package com.cowr.local.ssjygl.devicectrl.controllers;
import com.cowr.local.ssjygl.devicectrl.device.*; import com.cowr.local.ssjygl.devicectrl.device.AbsScale;
import com.cowr.local.ssjygl.devicectrl.device.Camera;
import com.cowr.local.ssjygl.devicectrl.device.LEDThread;
import com.cowr.local.ssjygl.devicectrl.device.PLC;
import com.cowr.local.ssjygl.devicectrl.utils.LicenseJPGPair; import com.cowr.local.ssjygl.devicectrl.utils.LicenseJPGPair;
import com.cowr.local.ssjygl.main.CliCacheData; import com.cowr.local.ssjygl.main.CliCacheData;
import com.cowr.local.ssjygl.main.Config;
import com.cowr.model.PostLicenseResult; import com.cowr.model.PostLicenseResult;
import com.jfinal.kit.StrKit; import com.jfinal.kit.StrKit;
import com.jfinal.log.Log; import com.jfinal.log.Log;
@ -17,22 +19,34 @@ public class InController extends Controller implements Runnable {
super(which, camera, scale, led, plc, scaleWaitTime); super(which, camera, scale, led, plc, scaleWaitTime);
setRod1Up("rodIn1Up"); setRod1Up("rodIn1Up");
setRod2Up("rodIn2Up");
setSensor1Reset("sensorIn1Reset"); setSensor1Reset("sensorIn1Reset");
setSensor2Reset("sensorIn2Reset");
setSensor1("sensorIn1"); setSensor1("sensorIn1");
setSensor2("sensorIn2");
} }
public InController(String which, Camera camera, AbsScale scale, LEDThread led, PLC plc, int scaleWaitTime, String rod1Up, String sensor1Reset, String sensor1) { public InController(String which, Camera camera, AbsScale scale, LEDThread led, PLC plc, int scaleWaitTime, String rod1Up, String rod2Up, String sensor1Reset, String sensor2Reset, String sensor1, String sensor2) {
super(which, camera, scale, led, plc, scaleWaitTime, rod1Up, sensor1Reset, sensor1); super(which, camera, scale, led, plc, scaleWaitTime, rod1Up, rod2Up, sensor1Reset, sensor2Reset, sensor1, sensor2);
if (StrKit.isBlank(rod1Up)) { if (StrKit.isBlank(rod1Up)) {
setRod1Up("rodIn1Up"); setRod1Up("rodIn1Up");
} }
if (StrKit.isBlank(rod2Up)) {
setRod1Up("rodIn2Up");
}
if (StrKit.isBlank(sensor1Reset)) { if (StrKit.isBlank(sensor1Reset)) {
setSensor1Reset("sensorIn1Reset"); setSensor1Reset("sensorIn1Reset");
} }
if (StrKit.isBlank(sensor2Reset)) {
setSensor1Reset("sensorIn2Reset");
}
if (StrKit.isBlank(sensor1)) { if (StrKit.isBlank(sensor1)) {
setSensor1("sensorIn1"); setSensor1("sensorIn1");
} }
if (StrKit.isBlank(sensor2)) {
setSensor2("sensorIn2");
}
} }
public void run() { public void run() {
@ -44,7 +58,7 @@ public class InController extends Controller implements Runnable {
// 出现错位等情况时,需要重置流程,重新开始 // 出现错位等情况时,需要重置流程,重新开始
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -70,7 +84,7 @@ public class InController extends Controller implements Runnable {
log.debug("%s 【%s】 重置流程", getWhich(), getCurrentLicense()); log.debug("%s 【%s】 重置流程", getWhich(), getCurrentLicense());
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -137,7 +151,7 @@ public class InController extends Controller implements Runnable {
log.debug("%s 【%s】上磅抬前闸", getWhich(), pair.license); log.debug("%s 【%s】上磅抬前闸", getWhich(), pair.license);
try { try {
getPlc().write(getRod1Up()); // 抬 getPlc().write(getRod1Up()); // 抬
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -145,7 +159,7 @@ public class InController extends Controller implements Runnable {
log.debug("%s 【%s】上磅重置地感线圈状态", getWhich(), pair.license); log.debug("%s 【%s】上磅重置地感线圈状态", getWhich(), pair.license);
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license); log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -154,7 +168,7 @@ public class InController extends Controller implements Runnable {
log.debug("%s 【%s】上磅等待地感线圈状态", getWhich(), pair.license); log.debug("%s 【%s】上磅等待地感线圈状态", getWhich(), pair.license);
try { try {
while (!getResetFlow()) { // 流程没有被重置,就一直等待地感线圈状态 while (!getResetFlow()) { // 流程没有被重置,就一直等待地感线圈状态
if (getPlc().read(getSensor1())) { // 读取地感状态 if (getPlc().read(getSensor1())) { // 读取地感状态
break; break;
} }
} }
@ -166,7 +180,7 @@ public class InController extends Controller implements Runnable {
// 重置流程,这个位置要重置地感线圈状态 // 重置流程,这个位置要重置地感线圈状态
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -218,7 +232,7 @@ public class InController extends Controller implements Runnable {
// 重置流程 // 重置流程
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -262,7 +276,7 @@ public class InController extends Controller implements Runnable {
if (weightPosted != null && weightPosted) { if (weightPosted != null && weightPosted) {
log.debug("%s 【%s】抬入场后闸", getWhich(), pair.license); log.debug("%s 【%s】抬入场后闸", getWhich(), pair.license);
try { try {
getPlc().write("rodIn2Up"); getPlc().write(getRod2Up()); // 抬后闸
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
log.debug("%s 【%s】入场后闸PLC连接失败", getWhich(), pair.license); log.debug("%s 【%s】入场后闸PLC连接失败", getWhich(), pair.license);
@ -273,7 +287,7 @@ public class InController extends Controller implements Runnable {
} }
try { try {
getPlc().write("sensorIn2Reset"); getPlc().write(getSensor2Reset()); // 重置后地感状态
} catch (IOException e) { } catch (IOException e) {
log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license); log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -282,7 +296,7 @@ public class InController extends Controller implements Runnable {
log.debug("%s 【%s】下磅等待地感线圈状态", getWhich(), pair.license); log.debug("%s 【%s】下磅等待地感线圈状态", getWhich(), pair.license);
try { try {
while (!getResetFlow()) { // 流程没有被重置,就一直等待地感线圈状态 while (!getResetFlow()) { // 流程没有被重置,就一直等待地感线圈状态
if (getPlc().read("sensorIn2")) { if (getPlc().read(getSensor2())) { // 读取后地感状态
break; break;
} }
} }
@ -293,7 +307,7 @@ public class InController extends Controller implements Runnable {
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write("sensorIn2Reset"); getPlc().write(getSensor2Reset()); // 重置后地感状态
} catch (IOException e) { } catch (IOException e) {
log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license); log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -308,7 +322,7 @@ public class InController extends Controller implements Runnable {
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write("sensorIn2Reset"); getPlc().write(getSensor2Reset()); // 重置后地感状态
} catch (IOException e) { } catch (IOException e) {
log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license); log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -318,7 +332,7 @@ public class InController extends Controller implements Runnable {
continue; continue;
} }
} finally { } finally {
if (getCtrllock() != null) { if (getCtrllock() != null && getCtrllock().isLocked()) {
getCtrllock().unlock(); getCtrllock().unlock();
log.debug("完成 %s 流程,释放资源", getWhich()); log.debug("完成 %s 流程,释放资源", getWhich());

View File

@ -1,6 +1,9 @@
package com.cowr.local.ssjygl.devicectrl.controllers; package com.cowr.local.ssjygl.devicectrl.controllers;
import com.cowr.local.ssjygl.devicectrl.device.*; import com.cowr.local.ssjygl.devicectrl.device.AbsScale;
import com.cowr.local.ssjygl.devicectrl.device.Camera;
import com.cowr.local.ssjygl.devicectrl.device.LEDThread;
import com.cowr.local.ssjygl.devicectrl.device.PLC;
import com.cowr.local.ssjygl.devicectrl.utils.LicenseJPGPair; import com.cowr.local.ssjygl.devicectrl.utils.LicenseJPGPair;
import com.cowr.local.ssjygl.main.CliCacheData; import com.cowr.local.ssjygl.main.CliCacheData;
import com.cowr.model.PostLicenseResult; import com.cowr.model.PostLicenseResult;
@ -18,22 +21,34 @@ public class OutController extends Controller implements Runnable {
super(which, camera, scale, led, plc, scaleWaitTime); super(which, camera, scale, led, plc, scaleWaitTime);
setRod1Up("rodOut1Up"); setRod1Up("rodOut1Up");
setRod2Up("rodOut2Up");
setSensor1Reset("sensorOut1Reset"); setSensor1Reset("sensorOut1Reset");
setSensor2Reset("sensorOut2Reset");
setSensor1("sensorOut1"); setSensor1("sensorOut1");
setSensor2("sensorOut2");
} }
public OutController(String which, Camera camera, AbsScale scale, LEDThread led, PLC plc, int scaleWaitTime, String rod1Up, String sensor1Reset, String sensor1) { public OutController(String which, Camera camera, AbsScale scale, LEDThread led, PLC plc, int scaleWaitTime, String rod1Up, String rod2Up, String sensor1Reset, String sensor2Reset, String sensor1, String sensor2) {
super(which, camera, scale, led, plc, scaleWaitTime, rod1Up, sensor1Reset, sensor1); super(which, camera, scale, led, plc, scaleWaitTime, rod1Up, rod2Up, sensor1Reset, sensor2Reset, sensor1, sensor2);
if (StrKit.isBlank(rod1Up)) { if (StrKit.isBlank(rod1Up)) {
setRod1Up("rodOut1Up"); setRod1Up("rodOut1Up");
} }
if (StrKit.isBlank(rod2Up)) {
setRod2Up("rodOut2Up");
}
if (StrKit.isBlank(sensor1Reset)) { if (StrKit.isBlank(sensor1Reset)) {
setSensor1Reset("sensorOut1Reset"); setSensor1Reset("sensorOut1Reset");
} }
if (StrKit.isBlank(sensor2Reset)) {
setSensor2Reset("sensorOut2Reset");
}
if (StrKit.isBlank(sensor1)) { if (StrKit.isBlank(sensor1)) {
setSensor1("sensorOut1"); setSensor1("sensorOut1");
} }
if (StrKit.isBlank(sensor2)) {
setSensor1("sensorOut2");
}
} }
public void run() { public void run() {
@ -45,7 +60,7 @@ public class OutController extends Controller implements Runnable {
// 出现错位等情况时,需要重置流程,重新开始 // 出现错位等情况时,需要重置流程,重新开始
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -71,7 +86,7 @@ public class OutController extends Controller implements Runnable {
log.debug("%s 【%s】 重置流程", getWhich(), getCurrentLicense()); log.debug("%s 【%s】 重置流程", getWhich(), getCurrentLicense());
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -106,7 +121,6 @@ public class OutController extends Controller implements Runnable {
} }
try { try {
PostLicenseResult postLicenseResult = postLicense(CliCacheData.SUP.getId(), pair.license, pair.file, getWhich()); PostLicenseResult postLicenseResult = postLicense(CliCacheData.SUP.getId(), pair.license, pair.file, getWhich());
if (postLicenseResult.isUploaded()) { if (postLicenseResult.isUploaded()) {
@ -139,7 +153,7 @@ public class OutController extends Controller implements Runnable {
log.debug("%s 【%s】上磅抬前闸", getWhich(), pair.license); log.debug("%s 【%s】上磅抬前闸", getWhich(), pair.license);
try { try {
getPlc().write(getRod1Up()); // 抬 getPlc().write(getRod1Up()); // 抬
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -147,7 +161,7 @@ public class OutController extends Controller implements Runnable {
log.debug("%s 【%s】上磅重置地感线圈状态", getWhich(), pair.license); log.debug("%s 【%s】上磅重置地感线圈状态", getWhich(), pair.license);
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license); log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -156,7 +170,7 @@ public class OutController extends Controller implements Runnable {
log.debug("%s 【%s】上磅等待地感线圈状态", getWhich(), pair.license); log.debug("%s 【%s】上磅等待地感线圈状态", getWhich(), pair.license);
try { try {
while (!getResetFlow()) { // 流程没有被重置,就一直等待地感线圈状态 while (!getResetFlow()) { // 流程没有被重置,就一直等待地感线圈状态
if (getPlc().read(getSensor1())) { // 读地感状态 if (getPlc().read(getSensor1())) { // 读取前地感状态
break; break;
} }
} }
@ -168,7 +182,7 @@ public class OutController extends Controller implements Runnable {
// 重置流程,这个位置要重置地感线圈状态 // 重置流程,这个位置要重置地感线圈状态
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -220,7 +234,7 @@ public class OutController extends Controller implements Runnable {
// 重置流程 // 重置流程
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write(getSensor1Reset()); // 重置地感状态 getPlc().write(getSensor1Reset()); // 重置地感状态
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
@ -275,7 +289,7 @@ public class OutController extends Controller implements Runnable {
} }
try { try {
getPlc().write("sensorOut2Reset"); getPlc().write(getSensor2Reset()); // 重置后地感状态
} catch (IOException e) { } catch (IOException e) {
log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license); log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -284,7 +298,7 @@ public class OutController extends Controller implements Runnable {
log.debug("%s 【%s】下磅等待地感线圈状态", getWhich(), pair.license); log.debug("%s 【%s】下磅等待地感线圈状态", getWhich(), pair.license);
try { try {
while (!getResetFlow()) { // 流程没有被重置,就一直等待地感线圈状态 while (!getResetFlow()) { // 流程没有被重置,就一直等待地感线圈状态
if (getPlc().read("sensorOut2")) { if (getPlc().read(getSensor2())) { // 读取后地感状态
break; break;
} }
} }
@ -295,7 +309,7 @@ public class OutController extends Controller implements Runnable {
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write("sensorOut2Reset"); getPlc().write(getSensor2Reset()); // 重置后地感状态
} catch (IOException e) { } catch (IOException e) {
log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license); log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -310,7 +324,7 @@ public class OutController extends Controller implements Runnable {
if (getResetFlow()) { if (getResetFlow()) {
try { try {
getPlc().write("sensorOut2Reset"); getPlc().write(getSensor2Reset()); // 重置后地感状态
} catch (IOException e) { } catch (IOException e) {
log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license); log.debug("%s 【%s】 重置地感线圈状态失败", getWhich(), pair.license);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -320,7 +334,7 @@ public class OutController extends Controller implements Runnable {
continue; continue;
} }
} finally { } finally {
if (getCtrllock() != null) { if (getCtrllock() != null && getCtrllock().isLocked()) {
getCtrllock().unlock(); getCtrllock().unlock();
log.debug("完成 %s 流程,释放资源", getWhich()); log.debug("完成 %s 流程,释放资源", getWhich());

View File

@ -95,7 +95,7 @@ public class Config extends JFinalConfig {
public static DeviceThread deviceThread = new DeviceThread(); public static DeviceThread deviceThread = new DeviceThread();
public static SocketIOService socketio = null; public static SocketIOService socketio = null;
private static boolean client_run = true; private static boolean client_run = true;
public static final String CLINET_VERSION = "20210201"; public static final String CLINET_VERSION = "20210221";
public static String getRootPath() { public static String getRootPath() {
return PathKit.getWebRootPath() return PathKit.getWebRootPath()