| | |
| | | import com.ard.tianyu.model.dto.BoxHistoryDTO; |
| | | import com.ard.tianyu.model.dto.BoxPhotosDTO; |
| | | import com.ard.tianyu.model.dto.BoxSettingsDTO; |
| | | import com.ard.tianyu.model.dto.camera.CapturePicDto; |
| | | import com.ard.tianyu.model.dto.camera.RecordDto; |
| | | import com.ard.tianyu.model.dto.control.AbsAngleControlDto; |
| | | import com.ard.tianyu.model.dto.control.AngleControlDto; |
| | | import com.ard.tianyu.model.dto.control.SpeedControlDto; |
| | | import com.ard.tianyu.model.dto.camera.CameraModeDTO; |
| | | import com.ard.tianyu.model.dto.camera.CapturePicDTO; |
| | | import com.ard.tianyu.model.dto.camera.RecordDTO; |
| | | import com.ard.tianyu.model.dto.control.AbsAngleControlDTO; |
| | | import com.ard.tianyu.model.dto.control.AngleControlDTO; |
| | | import com.ard.tianyu.model.dto.control.SpeedControlDTO; |
| | | import com.ard.tianyu.model.dto.converter.UavSignalInfoConverter; |
| | | import com.ard.tianyu.model.dto.converter.UavStateConverter; |
| | | import com.ard.tianyu.model.dto.converter.UavTelemetryDataConverter; |
| | |
| | | import io.netty.channel.Channel; |
| | | import io.netty.channel.ChannelFuture; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.poi.hssf.record.Record; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | * 云台控制基于角度 |
| | | */ |
| | | @Override |
| | | public void angleControl(AngleControlDto angleControlDto) { |
| | | public void angleControl(AngleControlDTO angleControlDto) { |
| | | AngleControlCommand controlAngleCommand = new AngleControlCommand(angleControlDto); |
| | | this.sendMessage(tyConfiguration.getIpPort(), controlAngleCommand); |
| | | } |
| | |
| | | * 云台绝对值控制(基于角度) |
| | | */ |
| | | @Override |
| | | public void absAngleControl(AbsAngleControlDto absAngleControlDto) { |
| | | public void absAngleControl(AbsAngleControlDTO absAngleControlDto) { |
| | | AbsAngleControlCommand absAngleControlCommand = new AbsAngleControlCommand(absAngleControlDto); |
| | | this.sendMessage(tyConfiguration.getIpPort(), absAngleControlCommand); |
| | | } |
| | |
| | | * 云台转动(基于速度) |
| | | */ |
| | | @Override |
| | | public void speedControl(SpeedControlDto speedControlDto) { |
| | | public void speedControl(SpeedControlDTO speedControlDto) { |
| | | SpeedControlCommand speedControlCommand = new SpeedControlCommand(speedControlDto); |
| | | this.sendMessage(tyConfiguration.getIpPort(), speedControlCommand); |
| | | } |
| | | |
| | | /** |
| | | * 设置相机模式 |
| | | */ |
| | | @Override |
| | | public void updateCameraMode(CameraModeDTO cameraModeDTO) { |
| | | CameraModeCommand cameraModeCommand = new CameraModeCommand(cameraModeDTO); |
| | | this.sendMessage(tyConfiguration.getIpPort(), cameraModeCommand); |
| | | } |
| | | |
| | | /** |
| | | * 拍照 |
| | | */ |
| | | @Override |
| | | public void capturePic(CapturePicDto capturePicDto) { |
| | | public void capturePic(CapturePicDTO capturePicDto) { |
| | | updateCameraMode(CameraModeDTO.builder().boxSn(capturePicDto.getBoxSn()).actionParam((byte)0x01).build()); |
| | | CapturePicCommand capturePicCommand = new CapturePicCommand(capturePicDto); |
| | | this.sendMessage(tyConfiguration.getIpPort(), capturePicCommand); |
| | | } |
| | |
| | | * 录像 |
| | | */ |
| | | @Override |
| | | public void record(RecordDto recordDto) { |
| | | public void record(RecordDTO recordDto) { |
| | | BaseCommand baseCommand; |
| | | if (recordDto.getIsRecord()) { |
| | | updateCameraMode(CameraModeDTO.builder().boxSn(recordDto.getBoxSn()).actionParam((byte)0x02).build()); |
| | | baseCommand = new RecordStartCommand(recordDto); |
| | | } else { |
| | | baseCommand = new RecordStopCommand(recordDto); |
| | |
| | | log.info("收到无人机初始化详情-回复防止再次发送"); |
| | | } |
| | | } |
| | | if (tyCommand instanceof CameraModeReplyCommand) { |
| | | CameraModeReplyCommand cameraModeReplyCommand = (CameraModeReplyCommand) tyCommand; |
| | | if (cameraModeReplyCommand.getActionCode() == (byte) 0x22) { |
| | | log.info("收到无人机设置相机模式回复:{} 错误码:{}", String.format("0x%02X", cameraModeReplyCommand.getResult() & 0xFF), cameraModeReplyCommand.getErrorCode()); |
| | | } |
| | | } |
| | | |
| | | if (tyCommand instanceof CapturePicReplyCommand) { |
| | | CapturePicReplyCommand capturePicReplyCommand = (CapturePicReplyCommand) tyCommand; |
| | | if (capturePicReplyCommand.getActionCode() == (byte) 0x23) { |