Przeglądaj źródła

拼写带CRC16校验的命令,但是不发送。

tom 2 miesięcy temu
rodzic
commit
c0b5289775

+ 6 - 6
ruoyi-sim/src/main/java/com/ruoyi/sim/controller/HardwareCommDebugController.java

@@ -136,7 +136,7 @@ public class HardwareCommDebugController extends BaseController {
     }
 
     @GetMapping(value = "/buildMsg/")
-    @ApiOperation("拼写带CRC16校验的命令")
+    @ApiOperation("拼写带CRC16校验的命令,但是不发送")
     public AjaxResult buildSendMsg(@RequestParam final String simNum,
                                    @RequestParam final String orn,
                                    @RequestParam final String cmd,
@@ -145,15 +145,15 @@ public class HardwareCommDebugController extends BaseController {
         return commBuildService.buildSendMsgAR(simNum, orn, cmd, cmdId, data);
     }
 
-    @GetMapping(value = "/buildMsgAndSend/")
-    @ApiOperation("拼写带CRC16校验的命令并发送")
-    public AjaxResult buildMsgAndSend(@RequestParam final String simNum,
+    @GetMapping(value = "/buildMsgAndSend/{seatId}")
+    @ApiOperation("拼写带CRC16校验的命令,并发送,返回响应结果")
+    public AjaxResult buildMsgAndSend(@PathVariable("seatId") final Long seatId,
+                                      @RequestParam final String simNum,
                                       @RequestParam final String orn,
                                       @RequestParam final String cmd,
                                       @RequestParam final String cmdId,
                                       @RequestParam final String data) {
-        // todo:
-        return commBuildService.buildSendMsgAR(simNum, orn, cmd, cmdId, data);
+        return commBuildService.buildSendMsgAndSendAR(seatId, simNum, orn, cmd, cmdId, data);
     }
 
     /**

+ 36 - 2
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/CommBuildService.java

@@ -2,6 +2,8 @@ package com.ruoyi.sim.service.impl;
 
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.sim.constant.CommConst;
+import com.ruoyi.sim.domain.Seat;
+import com.ruoyi.sim.domain.Sim;
 import com.ruoyi.sim.domain.SimMsg;
 import com.ruoyi.sim.util.CRC16Modbus;
 import org.apache.commons.lang3.StringUtils;
@@ -29,6 +31,10 @@ public class CommBuildService {
 
     @Autowired
     private SnowflakeIdService idService;
+    @Autowired
+    private CommSendService commSendService;
+    @Autowired
+    private SeatService seatService;
 
     /**
      * 读取设备序列号
@@ -145,8 +151,36 @@ public class CommBuildService {
         return smS;
     }
 
+    /**
+     * 拼写带CRC16校验的命令,但是不发送
+     *
+     * @param simNum
+     * @param orn
+     * @param cmd
+     * @param cmdId
+     * @param data
+     * @return
+     */
     public AjaxResult buildSendMsgAR(final String simNum, final String orn, final String cmd, final String cmdId, final String data) {
-        final SimMsg sm = buildSendMsg(simNum, orn, cmd, cmdId, data);
-        return AjaxResult.success(sm);
+        SimMsg smS = buildSendMsg(simNum, orn, cmd, cmdId, data);
+        return AjaxResult.success(smS);
+    }
+
+    /**
+     * 拼写带CRC16校验的命令,但是不发送
+     *
+     * @param simNum
+     * @param orn
+     * @param cmd
+     * @param cmdId
+     * @param data
+     * @return
+     */
+    public AjaxResult buildSendMsgAndSendAR(final Long seatId, final String simNum, final String orn, final String cmd, final String cmdId, final String data) {
+        SimMsg smS = buildSendMsg(simNum, orn, cmd, cmdId, data);
+        Seat seat = seatService.selectSeatBySeatId(seatId);
+        Sim sim = commSendService.getSimBySeatIdNewVer(seatId);
+        SimMsg smR = commSendService.send(smS, seat, sim, 0, 1000L);
+        return AjaxResult.success(smR);
     }
 }

+ 1 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/CommSendService.java

@@ -1036,6 +1036,7 @@ public class CommSendService {
 
     /**
      * checkOneSeatState 包装调用。
+     * seatId映射到Sim对象。
      *
      * @param seatId
      * @return 可能为空