Browse Source

----

master
sige 1 year ago
parent
commit
d4b4127507
  1. 2
      src/main/java/com/dreamworks/boditech/MyApplication.java
  2. 16
      src/main/java/com/dreamworks/boditech/controller/TestController.java
  3. 25
      src/main/java/com/dreamworks/boditech/driver/connection/ComWebsocketClient.java

2
src/main/java/com/dreamworks/boditech/MyApplication.java

@ -52,7 +52,7 @@ public class MyApplication implements ApplicationRunner, ApplicationContextAware
// analysisScanMotor.reset();
this.analysis();
// this.analysis();
}
private void analysis() {

16
src/main/java/com/dreamworks/boditech/controller/TestController.java

@ -5,6 +5,7 @@ import com.dreamworks.boditech.entity.parameter.ParamBatchDeleteById;
import com.dreamworks.boditech.entity.parameter.ParamEmergencyTaskSave;
import com.dreamworks.boditech.entity.parameter.ParamTestSearch;
import com.dreamworks.boditech.entity.parameter.ParamTestTubeRackTaskSave;
import com.dreamworks.boditech.service.DeviceService;
import com.dreamworks.boditech.service.ProjectService;
import com.dreamworks.boditech.service.TestService;
import com.dreamworks.boditech.utils.MyCommon;
@ -20,6 +21,9 @@ import java.util.Map;
@Controller
public class TestController extends BaseController {
@Resource
private DeviceService deviceService;
@Resource
private TestService testService;
@Resource
private ProjectService projectService;
@ -122,6 +126,18 @@ public class TestController extends BaseController {
@ResponseBody
@PostMapping("/api/test/emergency-task-append")
public ApiResponse testEmergencyAppend( @RequestBody List<ParamEmergencyTaskSave> param) {
if ( !this.deviceService.isExecutorRunning() ) {
return this.error("设备未就绪,无法添加任务");
}
var hasEnabledSlot = false;
for ( ParamEmergencyTaskSave item : param ) {
hasEnabledSlot = hasEnabledSlot || item.enable;
}
if ( !hasEnabledSlot ) {
return this.error("未找到可用的急诊位信息,无法添加任务");
}
for ( ParamEmergencyTaskSave item : param ) {
this.testService.emergencyTaskSave(item);
}

25
src/main/java/com/dreamworks/boditech/driver/connection/ComWebsocketClient.java

@ -5,6 +5,8 @@ import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.ConnectException;
import java.net.URI;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
@ -154,13 +156,32 @@ public class ComWebsocketClient extends WebSocketClient {
@Override
public void onClose(int i, String s, boolean b) {
LOG.info("close");
throw new RuntimeException("device connection closed");
LOG.info("device connection closed : ({}) {}", i, s);
this.tryReconnect();
}
@Override
public void onError(Exception e) {
if ( e instanceof ConnectException ) {
LOG.warn("device connection error : {}", e.getMessage());
this.tryReconnect();
return ;
}
LOG.error("error", e);
throw new RuntimeException(e);
}
// 尝试重连
private void tryReconnect() {
var thread = new Thread(() -> {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
this.reconnect();
});
thread.start();
}
}
Loading…
Cancel
Save