Browse Source

添加测试数据

master
sige 2 years ago
parent
commit
326b4aba48
  1. 6
      src/main/java/com/dreamworks/boditech/controller/DeviceController.java
  2. 29
      src/main/java/com/dreamworks/boditech/controller/TmpController.java
  3. 2
      src/main/java/com/dreamworks/boditech/driver/Device.java
  4. 2
      src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardBox.java
  5. 37
      src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardManager.java
  6. 45
      src/main/java/com/dreamworks/boditech/service/WebsocketServerService.java
  7. 50
      src/main/java/com/dreamworks/boditech/utils/MyWsServerConnection.java

6
src/main/java/com/dreamworks/boditech/controller/DeviceController.java

@ -181,6 +181,12 @@ public class DeviceController extends BaseController {
}
@ResponseBody
@PostMapping("/api/device/load")
public ApiResponse load() {
return this.success();
}
@ResponseBody
@PostMapping("/api/device/unload")
public ApiResponse unload() {
return this.success();

29
src/main/java/com/dreamworks/boditech/controller/TmpController.java

@ -1,2 +1,29 @@
package com.dreamworks.boditech.controller;public class TmpController {
package com.dreamworks.boditech.controller;
import com.dreamworks.boditech.controller.entity.ApiResponse;
import com.dreamworks.boditech.service.WebsocketServerService;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Map;
@Controller
public class TmpController extends BaseController {
@Resource
private WebsocketServerService wsServer;
@ResponseBody
@PostMapping("/api/tmp/trigger-event")
public ApiResponse triggerEvent(@RequestBody Map<String,Object> params ) {
this.wsServer.send("{\"type\":\"event\",\"name\":\"" + params.get("name") + "\"}");
return this.success();
}
@ResponseBody
@PostMapping("/api/tmp/trigger-error")
public ApiResponse triggerError(@RequestBody Map<String,Object> params ) {
this.wsServer.send("{\"type\":\"error\",\"name\":\"" + params.get("name") + "\",\"message\":\"DEMO_ERROR_MESSAGE\"}");
return this.success();
}
}

2
src/main/java/com/dreamworks/boditech/driver/Device.java

@ -187,6 +187,6 @@ public class Device {
public void errorAlert(String code) {
WebsocketServerMessageErrorEvent event = new WebsocketServerMessageErrorEvent();
event.code = code;
this.websocketServerService.send(event);
// this.websocketServerService.send(event);
}
}

2
src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardBox.java

@ -7,6 +7,8 @@ public class CsmTestCardBox {
public Integer projectId;
public String projectName;
public String projectColor="red";
public String lotCode;
public Integer cardAmount = 0;

37
src/main/java/com/dreamworks/boditech/driver/consumable/CsmTestCardManager.java

@ -8,9 +8,6 @@ import java.util.List;
public class CsmTestCardManager {
// device instance
private final Device device;
// @TODO : 删除下面这个属性使用box代替
// list of test cards
private final List<CsmTestCard> testCards = new ArrayList<>();
// list of test card boxes
private final List<CsmTestCardBox> testCardBoxes = new ArrayList<>();
@ -86,8 +83,9 @@ public class CsmTestCardManager {
// @TODO : 删除下面这个属性使用box代替
// list of test cards
private final List<CsmTestCard> testCards = new ArrayList<>();
@ -116,33 +114,4 @@ public class CsmTestCardManager {
}
return null;
}
/**
* append test card by box code
* @param position position of test card in cell
* @param code box code string
*/
// public void appendByBoxCode( Integer position, String code ) {
// // code example : 1||CAGGB66U||2024.03.26||1279||06
// // code format : projectCodeNum||batchNumber||manufacturingDate||unknown||unknown
// String[] parts = code.split("\\|\\|");
// if (parts.length != 5) {
// throw new RuntimeException("invalid test card box code");
// }
//
// // as default, we have 25 test cards in one box
// for ( int i=0; i<25; i++ ) {
// CsmTestCard testCard = new CsmTestCard(this);
// Integer projectCodeNum = Integer.parseInt(parts[0]);
// Project project = this.device.projectService.findByCodeNum(projectCodeNum);
// testCard.projectId = project.id;
// testCard.projectName = project.name;
// testCard.batchNumber = parts[1];
// testCard.manufacturingDate = parts[2];
// testCard.position = position;
// this.testCards.add(testCard);
// }
// }
}

45
src/main/java/com/dreamworks/boditech/service/WebsocketServerService.java

@ -1,44 +1,27 @@
package com.dreamworks.boditech.service;
import jakarta.websocket.*;
import jakarta.websocket.server.ServerEndpoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.dreamworks.boditech.utils.MyWsServerConnection;
import jakarta.annotation.PostConstruct;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@ServerEndpoint("/ws")
public class WebsocketServerService {
private static final Logger LOG = LoggerFactory.getLogger(WebsocketServerService.class);
// connections
private List<MyWsServerConnection> connections;
// only one session is all we need
private Session session;
@OnOpen
public void onOpen(Session session) {
this.session = session;
LOG.info("ws server : on open");
}
@OnClose
public void onClose() {
LOG.info("ws server : on close");
}
@OnMessage
public void onMessage(String message) {
LOG.info("ws server : on message > " + message);
@PostConstruct
public void init() {
this.connections = new ArrayList<>();
}
@OnError
public void onError(Session session, Throwable error) {
LOG.info("ws server : on error");
public void appendConnection(MyWsServerConnection connection) {
this.connections.add(connection);
}
// send message to client
public void send(Object message) {
try {
this.session.getBasicRemote().sendObject(message);
} catch (Exception e) {
LOG.error("ws server : send error", e);
public void send(String message) {
for (MyWsServerConnection connection : this.connections) {
connection.send(message);
}
}
}

50
src/main/java/com/dreamworks/boditech/utils/MyWsServerConnection.java

@ -0,0 +1,50 @@
package com.dreamworks.boditech.utils;
import com.dreamworks.boditech.service.WebsocketServerService;
import jakarta.websocket.*;
import jakarta.websocket.server.ServerEndpoint;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
@ServerEndpoint("/ws")
public class MyWsServerConnection implements ApplicationContextAware {
// spring application context
private static ApplicationContext applicationContext;
// websocket server service
private WebsocketServerService wsServer;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
MyWsServerConnection.applicationContext = applicationContext;
}
// only one session is all we need
private Session session;
@OnOpen
public void onOpen(Session session) {
this.session = session;
this.wsServer = MyWsServerConnection.applicationContext.getBean(WebsocketServerService.class);
this.wsServer.appendConnection(this);
}
@OnClose
public void onClose() {
System.out.println("ws server : on close");
}
@OnMessage
public void onMessage(String message) {
System.out.println("ws server : on message");
}
@OnError
public void onError(Session session, Throwable error) {
System.out.println("ws server : on error");
}
public void send( String text ) {
this.session.getAsyncRemote().sendText(text);
}
}
Loading…
Cancel
Save