This commit is contained in:
tangzh 2025-07-22 13:40:25 +08:00
parent 11d429148f
commit d551bc8071
4 changed files with 36 additions and 14 deletions

View File

@ -22,9 +22,12 @@ public enum CurrentStatusEnum {
SDCP_MACHINE_STATUS_DEFAULT(-1, "默认/断开"),
SDCP_MACHINE_STATUS_IDLE(0, "空闲"),
SDCP_MACHINE_STATUS_PRINTING(1, "执行打印任务中"),
SDCP_MACHINE_STATUS_PRINTING(1, "打印任务执行"),
SDCP_MACHINE_STATUS_PREPARE(2, "打印准备过程中"), //
SDCP_MACHINE_STATUS_SPADE(3, "铲件过程中"),
SDCP_MACHINE_STATUS_PAUSED(4, "暂停"),
SDCP_MACHINE_STATUS_COMPLETE(5, "打印完成"),
SDCP_MACHINE_STATUS_ALARM(6, "报警"),
;
private Integer code;

View File

@ -149,9 +149,11 @@ public class WebSocketSdcpServiceImpl extends WebSocketService {
log.info("<<< 用户【{}】已退出连接,忽略", userId);
return;
}
ImageDataVo imageDataVo = imageUser.get(uSocket.session.getId());
String category = dataMap.get("Category").toString();
String mapKey = uSocket.session.getId() + "_" + category;
ImageDataVo imageDataVo = imageUser.get(mapKey);
imageDataVo.imgWrite(Base64.getDecoder().decode(img64));
imageUser.put(uSocket.session.getId(), imageDataVo);
imageUser.put(mapKey, imageDataVo);
Map<String, Object> commandResult = new HashMap<>();
commandResult.put("deviceSn", deviceSn);
commandResult.put("chunkIndex", (Integer.parseInt(dataMap.get("ChunkIndex")) + 1) + ""); // 图片当前分片数
@ -308,15 +310,18 @@ public class WebSocketSdcpServiceImpl extends WebSocketService {
return;
}
// 图片接收结束生成图片给前端推送图片链接
ImageDataVo imageDataVo = imageUser.get(uSession.getId());
String category = cData.get("Category").toString();
String mapKey = uSession.getId() + "_" + category;
ImageDataVo imageDataVo = imageUser.get(mapKey);
byte[] imageAllData = imageDataVo.getFullImageData();
String folder = "image/";
String imgDir = myFileProperties.getPath().getPath() + folder;
String imgUrl = imageDataVo.saveImage(imageAllData, imgDir);
commandResult.put("category", category);
commandResult.put("imageUrl", "/file/" + folder + imgUrl);
remark = "图片完成传输";
msgEnum = MsgEnum.INFO;
imageUser.remove(uSession.getId());
imageUser.remove(mapKey);
}
}
// 打开/关闭视频

View File

@ -162,11 +162,11 @@ public class WebSocketVueServiceImpl extends WebSocketService {
data.setData(dataParam);
data.setType(0);
}
// 打印 status = 0
// 打印 status = (0 || 5)
// {"Topic":"sdcp/request/12345678","command":"PRINT"}
else if (command.equals(CapabilitieEnum.PRINT.name())) {
BusDevice device = myDeviceService.getByDeviceCode(deviceSn);
if (!device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_IDLE.getCode())) {
if (!(device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_IDLE.getCode()) || device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_COMPLETE.getCode()))) {
Map<String, Object> commandResult = new HashMap<>();
commandResult.put("deviceSn", deviceSn);
sendVueMessage(session, JSON.toJSONString(new SocketMsg(commandResult, "当前状态无法操作打印", MsgEnum.ERROR)));
@ -195,11 +195,13 @@ public class WebSocketVueServiceImpl extends WebSocketService {
data.setData(dataParam);
data.setFrom(0);
}
// 退出 status = !(-1 || 0)
// 退出 status = !(-1 || 0 || 6)
// {"Topic":"sdcp/request/12345678","command":"EXIT"}
else if (command.equals(CapabilitieEnum.EXIT.name())) {
BusDevice device = myDeviceService.getByDeviceCode(deviceSn);
if (device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_DEFAULT.getCode()) || device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_IDLE.getCode())) {
if (device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_DEFAULT.getCode())
|| device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_IDLE.getCode())
|| device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_ALARM.getCode())) {
Map<String, Object> commandResult = new HashMap<>();
commandResult.put("deviceSn", deviceSn);
sendVueMessage(session, JSON.toJSONString(new SocketMsg(commandResult, "当前状态无法操作退出", MsgEnum.ERROR)));
@ -211,11 +213,11 @@ public class WebSocketVueServiceImpl extends WebSocketService {
data.setData(dataParam);
data.setFrom(0);
}
// 继续 status = 1 && PrintStatus = 6
// 继续 status = 4 && PrintStatus = 6
// {"Topic":"sdcp/request/12345678","command":"CONTINUE"}
else if (command.equals(CapabilitieEnum.CONTINUE.name())) {
BusDevice device = myDeviceService.getByDeviceCode(deviceSn);
if (!(device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_PRINTING.getCode()) && device.getPrintStatus().equals(PrintInfoStatusEnum.SDCP_PRINT_STATUS_PAUSED.getCode()))) {
if (!(device.getStatus().equals(CurrentStatusEnum.SDCP_MACHINE_STATUS_PAUSED.getCode()) && device.getPrintStatus().equals(PrintInfoStatusEnum.SDCP_PRINT_STATUS_PAUSED.getCode()))) {
Map<String, Object> commandResult = new HashMap<>();
commandResult.put("deviceSn", deviceSn);
sendVueMessage(session, JSON.toJSONString(new SocketMsg(commandResult, "当前状态无法操作继续", MsgEnum.ERROR)));
@ -258,15 +260,16 @@ public class WebSocketVueServiceImpl extends WebSocketService {
data.setFrom(0);
}
// 图片
// {"Topic":"sdcp/request/12345678","command":"IMAGE"}
// {"Topic":"sdcp/request/12345678","command":"IMAGE","category":"0"}
else if (command.equals(CapabilitieEnum.IMAGE.name())) {
data.setCmd(385);
Map<String, Object> dataParam = new HashMap<>();
dataParam.put("Type", 0);
dataParam.put("Category", param.getCategory());
dataParam.put("UserId", session.getId());
data.setData(dataParam);
// 记录用户获取图片
imageUser.put(session.getId(), new ImageDataVo());
String mapKey = session.getId() + "_" + param.getCategory();
imageUser.put(mapKey, new ImageDataVo());
}
// 视频
// {"Topic":"sdcp/request/12345678","command":"OPEN_VIDEO"}

View File

@ -19,6 +19,9 @@ public class WebSocketReqDTO extends WebSocketParam implements Serializable {
// 打印的文件路径
private String filename;
// 获取图片时用到0视觉图片1设备图片
private Integer category = 0;
@JSONField(name = "Data")
public WebSocketReqData getData() {
return Data;
@ -51,4 +54,12 @@ public class WebSocketReqDTO extends WebSocketParam implements Serializable {
public void setFilename(String filename) {
this.filename = filename;
}
public Integer getCategory() {
return category;
}
public void setCategory(Integer category) {
this.category = category;
}
}