From 0819312988ae6e041360fd354ef57a73633b7354 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期六, 07 九月 2024 16:16:12 +0800
Subject: [PATCH] 二厂数字化工况预警与停机报警提交
---
src/main/java/com/ard/alarm/radar/controller/RadarController.java | 49 +++++++++++++++++++++++++++++++------------------
1 files changed, 31 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/ard/alarm/radar/controller/RadarController.java b/src/main/java/com/ard/alarm/radar/controller/RadarController.java
index e4dfbad..cf4c7e4 100644
--- a/src/main/java/com/ard/alarm/radar/controller/RadarController.java
+++ b/src/main/java/com/ard/alarm/radar/controller/RadarController.java
@@ -4,17 +4,21 @@
import com.ard.alarm.radar.domain.GuideInfo;
import com.ard.alarm.radar.service.IArdEquipRadarService;
import com.ard.utils.http.AjaxResult;
-import com.ard.utils.other.ByteUtils;
-import com.ard.utils.other.GisUtils;
-import com.ard.utils.tcp.ClientInitialize;
+import com.ard.utils.util.ByteUtils;
+import com.ard.utils.util.GisUtils;
+import com.ard.utils.netty.tcp.RadarNettyTcpClient;
import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
+import io.netty.channel.ChannelFuture;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
/**
* @Description: 闆疯揪鎺ュ彛
@@ -24,6 +28,7 @@
**/
@RestController
@RequestMapping("/radar")
+@Slf4j(topic = "netty")
public class RadarController {
@Resource
@@ -39,41 +44,49 @@
if (ardEquipRadar == null) {
return AjaxResult.error("闆疯揪涓嶅瓨鍦�");
}
- Channel channel = (Channel)ClientInitialize.SuccessConnectMap.get(ardEquipRadar.getId());
- if (channel==null)
- {
+ Channel channel= RadarNettyTcpClient.SERVER_MAP.get(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort());
+ if (channel == null) {
return AjaxResult.error("闆疯揪鏈繛鎺�");
}
Double longitude = ardEquipRadar.getLongitude();//闆疯揪缁忓害
Double latitude = ardEquipRadar.getLatitude();//闆疯揪绾害
Double altitude = ardEquipRadar.getAltitude();//闆疯揪楂樺害
//璁$畻姘村钩瑙掑害
- float p = (float)GisUtils.getNorthAngle(longitude, latitude, targetPosition[0], targetPosition[1]);
+ float p = (float) GisUtils.getNorthAngle(longitude, latitude, targetPosition[0], targetPosition[1]);
//璁$畻鍨傜洿瑙掑害
double[] radarPosition = new double[2];
radarPosition[0] = longitude;
radarPosition[1] = latitude;
double distance = GisUtils.getDistance(radarPosition, targetPosition);
- float angleInRadians = (float)Math.atan(distance / altitude);
- float t = 90-(float)Math.toDegrees(angleInRadians);
-
+ float angleInRadians = (float) Math.atan(distance / altitude);
+ float t = (90 - (float) Math.toDegrees(angleInRadians)) * -1;
+ log.debug("distance锛�" + distance);
+ log.debug("p锛�" + p);
+ log.debug("t锛�" + t);
//鍙戦�佸憡璀﹀墠绔殑瑙掑害鎻愮ず
byte[] header = {0x01, 0x02, 0x01};//鍖呭ご
- byte[] payloadHeader = {0x10, 0x03, 0x40, 0x00};//璐熻浇澶�
- byte[] distanceBytes = ByteUtils.decimalToBytes((int)distance);
+ byte[] payloadHeader = {0x10, 0x03, 0x20, 0x00};//璐熻浇澶�
+ byte[] distanceBytes = ByteUtils.decimalToBytes((int) distance);
+ distanceBytes = ByteUtils.toLittleEndian(distanceBytes);
byte[] pBytes = ByteUtils.floatToBytes(p);
+ pBytes = ByteUtils.toLittleEndian(pBytes);
byte[] tBytes = ByteUtils.floatToBytes(t);
- byte[] resBytes=new byte[20];
- byte[] payloadBody = ByteUtils.appendArrays(distanceBytes,pBytes,tBytes,resBytes);//璐熻浇
+ tBytes = ByteUtils.toLittleEndian(tBytes);
+ byte[] resBytes = new byte[20];
+ byte[] payloadBody = ByteUtils.appendArrays(distanceBytes, pBytes, tBytes, resBytes);//璐熻浇
- byte[] payload = ByteUtils.appendArrays(payloadHeader,payloadBody);//璐熻浇澶�+璐熻浇
+ byte[] payload = ByteUtils.appendArrays(payloadHeader, payloadBody);//璐熻浇澶�+璐熻浇
byte[] payloadCrc32 = ByteUtils.parseCrc32(payload);//璐熻浇澶�+璐熻浇鐨刢rc32鏍¢獙
byte[] footer = {0x01, 0x02, 0x00};//鍖呭熬
byte[] data = ByteUtils.appendArrays(header, payload, payloadCrc32, footer);
- System.out.println(ByteUtils.printHexBinary(data));
+
ByteBuf message = channel.alloc().buffer();
message.writeBytes(data);
channel.writeAndFlush(message);
- return AjaxResult.success();
+ Map<String,Object> map = new HashMap<>();
+ map.put("distance",distance);
+ map.put("p",p);
+ map.put("t",t);
+ return AjaxResult.success(map);
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.3