| | |
| | | package com.ard.tianyu.service.impl; |
| | | |
| | | import com.ard.common.utils.ByteUtils; |
| | | import com.ard.tianyu.aspect.annotation.CheckControlAuthority; |
| | | import com.ard.tianyu.aspect.annotation.RequireUavControl; |
| | | import com.ard.tianyu.config.TyConfiguration; |
| | | import com.ard.tianyu.http.TyClient; |
| | | import com.ard.tianyu.model.cache.TyTcpServerCache; |
| | | import com.ard.tianyu.model.cache.UavSignalInfoCache; |
| | | import com.ard.tianyu.model.cache.UavStateCache; |
| | | import com.ard.tianyu.model.cache.UavTelemetryDataCache; |
| | | 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.*; |
| | | 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.realdata.UavSignalInfoConverter; |
| | | import com.ard.tianyu.model.dto.converter.realdata.UavStateConverter; |
| | | import com.ard.tianyu.model.dto.converter.realdata.UavTelemetryDataConverter; |
| | | import com.ard.tianyu.model.dto.converter.wayline.PlanLineDataConverter; |
| | | import com.ard.tianyu.model.dto.manual.*; |
| | | import com.ard.tianyu.model.dto.settings.ReturnHeightSettingDTO; |
| | | import com.ard.tianyu.model.dto.settings.ReturnPointSettingDTO; |
| | | import com.ard.tianyu.model.dto.settings.VideoStreamSettingDTO; |
| | | import com.ard.tianyu.model.dto.signal.SignalInfo; |
| | | import com.ard.tianyu.model.dto.speaker.*; |
| | | import com.ard.tianyu.model.dto.state.UavState; |
| | | import com.ard.tianyu.model.dto.telemetry.TelemetryData; |
| | | import com.ard.tianyu.model.dto.wayline.*; |
| | | import com.ard.tianyu.model.receiver.*; |
| | | import com.ard.tianyu.domain.dto.camera.*; |
| | | import com.ard.tianyu.domain.dto.manual.*; |
| | | import com.ard.tianyu.domain.dto.speaker.*; |
| | | import com.ard.tianyu.domain.dto.wayline.*; |
| | | import com.ard.tianyu.domain.receiver.*; |
| | | import com.ard.tianyu.forest.TyClient; |
| | | import com.ard.tianyu.domain.cache.TyTcpServerCache; |
| | | import com.ard.tianyu.domain.cache.UavSignalInfoCache; |
| | | import com.ard.tianyu.domain.cache.UavStateCache; |
| | | import com.ard.tianyu.domain.cache.UavTelemetryDataCache; |
| | | import com.ard.tianyu.domain.dto.BoxHistoryDTO; |
| | | import com.ard.tianyu.domain.dto.BoxPhotosDTO; |
| | | import com.ard.tianyu.domain.dto.BoxSettingsDTO; |
| | | import com.ard.tianyu.domain.dto.control.AbsAngleControlDTO; |
| | | import com.ard.tianyu.domain.dto.control.AngleControlDTO; |
| | | import com.ard.tianyu.domain.dto.control.SpeedControlDTO; |
| | | import com.ard.tianyu.domain.dto.converter.wayline.PlanLineDataConverter; |
| | | import com.ard.tianyu.domain.dto.settings.ReturnHeightSettingDTO; |
| | | import com.ard.tianyu.domain.dto.settings.ReturnPointSettingDTO; |
| | | import com.ard.tianyu.domain.dto.settings.VideoStreamSettingDTO; |
| | | import com.ard.tianyu.domain.dto.signal.SignalInfo; |
| | | import com.ard.tianyu.domain.dto.state.UavState; |
| | | import com.ard.tianyu.domain.dto.telemetry.TelemetryData; |
| | | import com.ard.tianyu.netty.command.*; |
| | | import com.ard.tianyu.netty.TyNettyTcpClient; |
| | | import com.ard.tianyu.netty.command.camera.*; |
| | |
| | | import com.ard.tianyu.netty.handler.ErrorCodeEnum; |
| | | import com.ard.tianyu.netty.protobuf.TelemetryDataPB; |
| | | import com.ard.tianyu.service.ITyService; |
| | | import com.ard.tianyu.websocket.domain.UavControlType; |
| | | import com.ard.tianyu.websocket.utils.WebSocketUtil; |
| | | import com.ard.vtdu.domain.ArdVtdu; |
| | | import com.ard.vtdu.service.IMediaService; |
| | | import io.netty.channel.Channel; |
| | | import io.netty.channel.ChannelFuture; |
| | |
| | | /** |
| | | * 云台控制基于角度 |
| | | */ |
| | | @RequireUavControl(UavControlType.PAYLOAD) |
| | | @Override |
| | | public Boolean angleControl(AngleControlDTO angleControlDto) { |
| | | AngleControlCmd controlAngleCommand = new AngleControlCmd(angleControlDto); |
| | |
| | | /** |
| | | * 云台绝对值控制(基于角度) |
| | | */ |
| | | @RequireUavControl(UavControlType.PAYLOAD) |
| | | @Override |
| | | public Boolean absAngleControl(AbsAngleControlDTO absAngleControlDto) { |
| | | AbsAngleControlCmd absAngleControlCommand = new AbsAngleControlCmd(absAngleControlDto); |
| | |
| | | /** |
| | | * 云台转动(基于速度) |
| | | */ |
| | | @RequireUavControl(UavControlType.PAYLOAD) |
| | | @Override |
| | | public Boolean speedControl(SpeedControlDTO speedControlDto) { |
| | | SpeedControlCmd speedControlCommand = new SpeedControlCmd(speedControlDto); |
| | |
| | | /** |
| | | * 起飞 |
| | | */ |
| | | @CheckControlAuthority |
| | | @RequireUavControl(UavControlType.FLY) |
| | | @Override |
| | | public Boolean takeOff(TakeOffDTO takeOffDTO) { |
| | | TakeOffCmd takeOffCmd = new TakeOffCmd(takeOffDTO); |
| | |
| | | public void wayLineEnd(WayLineEndDTO wayLineEndDTO) { |
| | | WayLineEndCmd wayLineEndCmd = new WayLineEndCmd(wayLineEndDTO); |
| | | this.sendMessage(tyConfiguration.getIpPort(), wayLineEndCmd); |
| | | } |
| | | |
| | | /** |
| | | * 点播 |
| | | */ |
| | | @Override |
| | | public ArdVtdu play(String boxSn) { |
| | | BoxStreamUrlReceiver boxLiveUrl = getBoxLiveUrl(boxSn); |
| | | if(boxLiveUrl == null||boxLiveUrl.getRtsp() == null) { |
| | | return null; |
| | | } |
| | | ArdVtdu ardVtdu = ArdVtdu.builder().name(boxSn).rtspSource(boxLiveUrl.getRtsp()).build(); |
| | | ardVtdu = mediaService.addPath(ardVtdu); |
| | | return ardVtdu; |
| | | } |
| | | |
| | | /** |