From 9683dfc8a9ec5a4dd4e872f653196de1a06bd846 Mon Sep 17 00:00:00 2001 From: weidong Date: Wed, 20 Nov 2024 23:35:53 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E5=8F=91=E9=80=81=E9=80=9A=E9=81=93=E9=80=89=E6=8B=A9=202?= =?UTF-8?q?=E3=80=81d3f0=E5=9B=9E=E5=BA=94=E7=AD=94d3f1=203=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0d3f0=E6=96=B0=E5=AD=97=E6=AE=B5=EF=BC=88?= =?UTF-8?q?=E4=B8=B2=E5=8F=A3=E5=BC=82=E5=B8=B8=E7=BB=9F=E8=AE=A1=EF=BC=89?= =?UTF-8?q?=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/imdroid/secapi/client/RtcmClient.java | 3 +++ .../D3F0SelfCheckMessageExecutor.java | 13 +++++++++ .../message/D3F0SelfCheckMessage.java | 23 ++++++++++++++++ .../imdroid/sideslope/web/ApiController.java | 27 +++++++++++++++++++ .../beidou/controller/CmdLineController.java | 8 ++++-- .../resources/templates/page/cmd_line.html | 9 +++++++ 6 files changed, 81 insertions(+), 2 deletions(-) diff --git a/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java b/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java index 7212ee59..2781e2b0 100644 --- a/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java +++ b/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java @@ -9,6 +9,9 @@ public interface RtcmClient { @PostMapping("/config") HttpResp config(@RequestParam(name = "deviceId") String deviceId, @RequestParam(name = "configuration") String configData); + @PostMapping("/config_by_udp") + HttpResp configByUdp(@RequestParam(name = "deviceId") String deviceId, @RequestParam(name = "configuration") String configData); + @PostMapping("/device_param_changed") HttpResp deviceParamChanged(@RequestParam(name = "deviceId") String deviceId,@RequestParam(name = "oldParentId") String oldParentId); diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java index 22f7c6b8..aad86465 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java @@ -49,6 +49,9 @@ public class D3F0SelfCheckMessageExecutor implements Executor=14){ + int uart1Exception = src.readUnsignedShort(); + int uart2Exception = src.readUnsignedShort(); + int dtuException = src.readUnsignedShort(); + long lastDtuErrDate = src.readUnsignedInt(); + long lastDtuErrTime = src.readUnsignedInt(); + if(uart1Exception>0) { + auxInfo = auxInfo + " uart1 err: "+uart1Exception; + } + if(uart2Exception>0) { + auxInfo = auxInfo + " uart2 err: "+uart2Exception; + } + if(lastDtuErrDate!=0){ + auxInfo = auxInfo + " last dtu err state: "+dtuException; + short year = (short) ((lastDtuErrDate>>16)&0xFF); + short month = (short) ((lastDtuErrDate>>8)&0xFF); + short day = (short) (lastDtuErrDate&0xFF); + byte hour = (byte) (lastDtuErrTime/3600); + byte munite = (byte) (lastDtuErrTime/60 - hour*60); + auxInfo = auxInfo + " time: "+ + year+"-"+month+"-"+day+" "+hour+":"+munite; + } + } // read 会移动 bytebuf 的指针,所以保存原始码流需要将此指针挑拨回开始处 src.readerIndex(0); diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java index 33c5a929..5fbc2585 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java @@ -70,6 +70,33 @@ public class ApiController { return resp; } + @PostMapping(value = "/config_by_udp") + public HttpResp configByUdp(String deviceId, String configuration) { + Map status = new HashMap<>(); + HttpResp resp = new HttpResp(); + DeviceChannel deviceChannel = OnlineChannels.INSTANCE.getDataChannel(deviceId); + + if(deviceChannel!=null){ + status.put("status", "Online"); + // send command + ByteBuf buf = Unpooled.buffer(); + byte[] data = getBinaryData(ConfigDataTypeEnum.HEX, configuration); + logger.info("send command:{}", configuration); + buf.writeBytes(data); + deviceChannel.writeAndFlush(buf); + } + + if (status.isEmpty()) { + status.put("status", "Offline"); + resp.setCode(HttpResp.HTTP_RSP_FAILED); + resp.setResponseMessage("Offline."); + } else { + resp.setResponseMessage("Command sent."); + } + resp.setResponseObject(status); + return resp; + } + @PostMapping("/device_param_changed") public HttpResp deviceParamChanged(String deviceId, String oldParentId) { // 更新设备缓存 diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/CmdLineController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/CmdLineController.java index 2ab43766..35c97520 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/CmdLineController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/CmdLineController.java @@ -60,7 +60,8 @@ public class CmdLineController extends BasicController{ public HttpResult configCmd(HttpSession session, @RequestParam("tx_win") String cmd, @RequestParam("device_id") String deviceId, - @RequestParam("cmd_type") int cmdType) { + @RequestParam("cmd_type") int cmdType, + @RequestParam("send_channel") int sendChannel) { String sendCmd = cmd.replaceAll(" +",""); short len = 0; int msgType = 0xD310 + cmdType; @@ -75,7 +76,10 @@ public class CmdLineController extends BasicController{ sendCmd = Integer.toHexString(msgType) + HexUtil.Short2HexString(len)+ HexUtil.Int2HexString(Integer.parseInt(deviceId))+sendCmd; } - HttpResp> rsp = rtcmClient.config(deviceId,sendCmd); + HttpResp> rsp; + if(sendChannel == 0) + rsp = rtcmClient.config(deviceId,sendCmd); + else rsp = rtcmClient.configByUdp(deviceId,sendCmd); String txInfo = "TX "+ dateFormat.format(System.currentTimeMillis())+ " "+deviceId+" "+sendCmd; diff --git a/sec-beidou/src/main/resources/templates/page/cmd_line.html b/sec-beidou/src/main/resources/templates/page/cmd_line.html index 2e1eef13..95c25382 100644 --- a/sec-beidou/src/main/resources/templates/page/cmd_line.html +++ b/sec-beidou/src/main/resources/templates/page/cmd_line.html @@ -53,6 +53,15 @@ +
+ +
+ +
+