From 98d58d2b1e29432457213e4a9874fef537f68e6c Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期一, 11 三月 2024 09:38:01 +0800 Subject: [PATCH] 优化角度引导信息反馈 --- src/main/java/com/ard/alarm/radar/controller/RadarController.java | 51 +++++++++++++++++++++++++++------------------------ 1 files changed, 27 insertions(+), 24 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 72f02fb..f98b87e 100644 --- a/src/main/java/com/ard/alarm/radar/controller/RadarController.java +++ b/src/main/java/com/ard/alarm/radar/controller/RadarController.java @@ -4,9 +4,9 @@ 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.ClientInitialize; import io.netty.buffer.ByteBuf; import io.netty.channel.Channel; import lombok.extern.slf4j.Slf4j; @@ -16,8 +16,8 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; - -import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; +import java.util.HashMap; +import java.util.Map; /** * @Description: 闆疯揪鎺ュ彛 @@ -43,46 +43,49 @@ if (ardEquipRadar == null) { return AjaxResult.error("闆疯揪涓嶅瓨鍦�"); } - Channel channel = (Channel)ClientInitialize.SuccessConnectMap.get(ardEquipRadar.getId()); - if (channel==null) - { + Channel channel = ClientInitialize.SucChannelMap.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))*-1; - log.debug("distance锛�"+distance); - log.debug("p锛�"+p); - log.debug("t锛�"+t); + 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, 0x20, 0x00};//璐熻浇澶� - byte[] distanceBytes = ByteUtils.decimalToBytes((int)distance); - distanceBytes=ByteUtils.toLittleEndian(distanceBytes); + byte[] distanceBytes = ByteUtils.decimalToBytes((int) distance); + distanceBytes = ByteUtils.toLittleEndian(distanceBytes); byte[] pBytes = ByteUtils.floatToBytes(p); - pBytes=ByteUtils.toLittleEndian(pBytes); + pBytes = ByteUtils.toLittleEndian(pBytes); byte[] tBytes = ByteUtils.floatToBytes(t); - tBytes=ByteUtils.toLittleEndian(tBytes); - 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