| | |
| | | package com.ard.work.component.netty.handler;// MessageProtocolDecoder.java |
| | | |
| | | import com.ard.common.utils.ByteUtils; |
| | | import com.ard.work.component.netty.command.camera.*; |
| | | import com.ard.work.component.netty.command.manual.*; |
| | | import com.ard.work.component.netty.command.wayline.*; |
| | | import com.ard.work.domain.dto.converter.realdata.UavSignalInfoConverter; |
| | |
| | | import com.ard.work.domain.dto.state.UavState; |
| | | import com.ard.work.domain.dto.telemetry.TelemetryData; |
| | | import com.ard.work.component.netty.command.BaseCmd; |
| | | import com.ard.work.component.netty.command.camera.CameraModeReplyCmd; |
| | | import com.ard.work.component.netty.command.camera.CapturePicReplyCmd; |
| | | import com.ard.work.component.netty.command.camera.RecordStartReplyCmd; |
| | | import com.ard.work.component.netty.command.camera.RecordStopReplyCmd; |
| | | import com.ard.work.component.netty.command.notice.BoxPowerStatusReplyCmd; |
| | | import com.ard.work.component.netty.command.notice.FlyWayEndReplyCmd; |
| | | import com.ard.work.component.netty.command.camera.PicUploadCompletedReplyCmd; |
| | | import com.ard.work.component.netty.command.notice.WayLineFinishedReplyCmd; |
| | | import com.ard.work.component.netty.command.notice.UavReadyReplyCmd; |
| | | import com.ard.work.component.netty.command.real.SignalInfoCmd; |
| | | import com.ard.work.component.netty.command.real.UavStateCmd; |
| | |
| | | import io.netty.handler.codec.ByteToMessageDecoder; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.List; |
| | | |
| | | @Slf4j |
| | |
| | | in.readBytes(boxSn);// 读取boxSn |
| | | byte[] pic = new byte[dataLength - 49]; |
| | | in.readBytes(pic);// 读取原图地址 |
| | | String picPath = new String(pic, StandardCharsets.UTF_8); |
| | | baseCmd = new PicUploadCompletedReplyCmd(longitude, latitude, timestamp, picLength, boxSn, pic); |
| | | log.debug("图片上传完成通知回复: 图片长度 {}", picLength); |
| | | log.warn("图片上传完成通知回复: 图片 {}", picPath); |
| | | break; |
| | | case 0x0A: |
| | | byte status = in.readByte(); |
| | |
| | | return new EmergencyBrakeReplyCmd(boxSn, result, errorCode); |
| | | case 0x39: |
| | | return new PointControlReachedReplyCmd(boxSn, result, errorCode); |
| | | case 0x3B: |
| | | return new FlyRoundReplyCmd(boxSn, result, errorCode); |
| | | case 0x22: |
| | | return new CameraModeReplyCmd(boxSn, result, errorCode); |
| | | case 0x23: |
| | |
| | | case 0x25: |
| | | return new RecordStopReplyCmd(boxSn, result, errorCode); |
| | | case 0x2E: |
| | | return new FlyWayEndReplyCmd(boxSn, result, errorCode); |
| | | return new WayLineFinishedReplyCmd(boxSn, result, errorCode); |
| | | // Special cases |
| | | case 0x3D: |
| | | case 0x40: |
| | | return new FormatSdCardReplyCmd(boxSn, result, errorCode); |
| | | case 0x42: |
| | | return processSpecialD1ReplyCmd(in, actionCode, boxSn); |
| | | // Add other cases... |