diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java index d5d8f28..b773321 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java @@ -231,6 +231,23 @@ /** * 航路点任务-已校验 + * 2A 帧头 + * 2B 帧长度 + * 03 帧类型 + * 02 子类型 + * 01 机器人ID + * 00 64 任务深度 + * 04 航路点个数 + * 4D A5 3B 06 经度1 + * 0C 58 17 4F 纬度1 + * 4C F2 38 5E 经度2 + * 0C 5B 20 08 纬度2 + * 4D AB 4C 78 经度3 + * 0C 5E 28 C2 纬度3 + * 4C F8 49 D1 经度4 + * 0C 61 31 7B 纬度4 + * A5 95 CRC16校验码 + * 0A 帧尾 */ public static String decodeTaskRoute(byte[] bytes) { Map taskMap = new HashMap<>(3); @@ -413,7 +430,7 @@ point.setLng(covertLngLat(lngBytes)); byte[] latBytes = new byte[4]; - System.arraycopy(targetBytes, lngBytes.length, latBytes, 0, 4); + System.arraycopy(targetBytes, i + lngBytes.length, latBytes, 0, 4); point.setLat(covertLngLat(latBytes)); pointList.add(point); @@ -435,24 +452,24 @@ point.setLng(covertLngLat(lngBytes)); byte[] latBytes = new byte[4]; - System.arraycopy(routeBytes, lngBytes.length, latBytes, 0, 4); + System.arraycopy(routeBytes, i + lngBytes.length, latBytes, 0, 4); point.setLat(covertLngLat(latBytes)); byte[] depthBytes = new byte[2]; System.arraycopy(routeBytes, - lngBytes.length + latBytes.length, + i + lngBytes.length + latBytes.length, depthBytes, 0, 2); point.setDepth(covertDepth(depthBytes)); byte[] pitchBytes = new byte[2]; System.arraycopy(routeBytes, - lngBytes.length + latBytes.length + depthBytes.length, + i + lngBytes.length + latBytes.length + depthBytes.length, pitchBytes, 0, 2); point.setPitchAngle(covertPitchAngle(pitchBytes)); byte[] headingBytes = new byte[2]; System.arraycopy(routeBytes, - lngBytes.length + latBytes.length + depthBytes.length + pitchBytes.length, + i + lngBytes.length + latBytes.length + depthBytes.length + pitchBytes.length, headingBytes, 0, 2); point.setHeadingAngle(covertHeadingAngle(headingBytes));