| | |
| | | package com.ard.tianyu.service.impl; |
| | | |
| | | import com.ard.common.utils.ByteUtils; |
| | | import com.ard.tianyu.aspect.annotation.RequireUavControl; |
| | | import com.ard.tianyu.aspect.annotation.CheckTakeoffAltitude; |
| | | import com.ard.tianyu.aspect.annotation.CheckControlRight; |
| | | import com.ard.tianyu.config.TyConfiguration; |
| | | import com.ard.tianyu.domain.dto.camera.*; |
| | | import com.ard.tianyu.domain.dto.manual.*; |
| | |
| | | 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.service.IMediaService; |
| | | import io.netty.channel.Channel; |
| | | import io.netty.channel.ChannelFuture; |
| | |
| | | /** |
| | | * 云台控制基于角度 |
| | | */ |
| | | @RequireUavControl(UavControlType.PAYLOAD) |
| | | @CheckControlRight(UavControlType.PAYLOAD) |
| | | @Override |
| | | public Boolean angleControl(AngleControlDTO angleControlDto) { |
| | | AngleControlCmd controlAngleCommand = new AngleControlCmd(angleControlDto); |
| | |
| | | /** |
| | | * 云台绝对值控制(基于角度) |
| | | */ |
| | | @RequireUavControl(UavControlType.PAYLOAD) |
| | | @CheckControlRight(UavControlType.PAYLOAD) |
| | | @Override |
| | | public Boolean absAngleControl(AbsAngleControlDTO absAngleControlDto) { |
| | | AbsAngleControlCmd absAngleControlCommand = new AbsAngleControlCmd(absAngleControlDto); |
| | |
| | | /** |
| | | * 云台转动(基于速度) |
| | | */ |
| | | @RequireUavControl(UavControlType.PAYLOAD) |
| | | @CheckControlRight(UavControlType.PAYLOAD) |
| | | @Override |
| | | public Boolean speedControl(SpeedControlDTO speedControlDto) { |
| | | SpeedControlCmd speedControlCommand = new SpeedControlCmd(speedControlDto); |
| | |
| | | /** |
| | | * 变倍 |
| | | */ |
| | | @CheckControlRight(UavControlType.PAYLOAD) |
| | | @Override |
| | | public Boolean zoom(ZoomDTO zoomDTO) { |
| | | ZoomCmd zoomCommand = new ZoomCmd(zoomDTO); |
| | |
| | | /** |
| | | * 变倍到指定倍数 |
| | | */ |
| | | @CheckControlRight(UavControlType.PAYLOAD) |
| | | @Override |
| | | public Boolean zoomToLevel(ZoomToLevelDTO zoomToLevelDTO) { |
| | | ZoomToLevelCmd zoomToLevelCommand = new ZoomToLevelCmd(zoomToLevelDTO); |
| | |
| | | /** |
| | | * 起飞 |
| | | */ |
| | | @RequireUavControl(UavControlType.FLY) |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public Boolean takeOff(TakeOffDTO takeOffDTO) { |
| | | TakeOffCmd takeOffCmd = new TakeOffCmd(takeOffDTO); |
| | |
| | | /** |
| | | * 返航 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public Boolean returnHome(ReturnHomeDTO returnHomeDTO) { |
| | | ReturnHomeCmd returnHomeCmd = new ReturnHomeCmd(returnHomeDTO); |
| | |
| | | /** |
| | | * 取消返航 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public Boolean returnHomeCancel(ReturnHomeCancelDTO returnHomeCancelDTO) { |
| | | ReturnHomeCancelCmd returnHomeCancelCmd = new ReturnHomeCancelCmd(returnHomeCancelDTO); |
| | |
| | | /** |
| | | * 降落 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public Boolean land(LandDTO landDTO) { |
| | | LandCmd landCmd = new LandCmd(landDTO); |
| | |
| | | /** |
| | | * 取消降落 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public Boolean landCancel(LandCancelDTO landCancelDTO) { |
| | | LandCancelCmd landCancelCmd = new LandCancelCmd(landCancelDTO); |
| | |
| | | /** |
| | | * 强制降落 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public Boolean landForced(LandForcedDTO landForcedDTO) { |
| | | LandForcedCmd landForcedCmd = new LandForcedCmd(landForcedDTO); |
| | |
| | | /** |
| | | * 方向控制 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @CheckTakeoffAltitude(minAltitude = 30.0) |
| | | @Override |
| | | public Boolean flyControl(FlyControlDTO flyControlDTO) { |
| | | FlyControlCmd flyControlCmd = new FlyControlCmd(flyControlDTO); |
| | |
| | | /** |
| | | * 指点飞行控制 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @CheckTakeoffAltitude(minAltitude = 30.0) |
| | | @Override |
| | | public Boolean flyPointControl(FlyPointControlDTO flyPointControlDTO) { |
| | | FlyPointControlCmd flyPointControlCmd = new FlyPointControlCmd(flyPointControlDTO); |
| | |
| | | /** |
| | | * 停止指点飞行控制 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public Boolean flyPointControlCancel(FlyPointControlCancelDTO flyPointControlCancelDTO) { |
| | | FlyPointControlCancelCmd flyPointControlCancelCmd = new FlyPointControlCancelCmd(flyPointControlCancelDTO); |
| | |
| | | /** |
| | | * 紧急制动 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public Boolean emeragencyBrake(EmeragencyBrakeDTO emeragencyBrakeDTO) { |
| | | EmergencyBrakeCmd emergencyBrakeCmd = new EmergencyBrakeCmd(emeragencyBrakeDTO); |
| | |
| | | /** |
| | | * 航线开始 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public void wayLineBegin(WayLineBeginDTO wayLineBeginDTO) { |
| | | WayLineBeginCmd wayLineBeginCmd = new WayLineBeginCmd(wayLineBeginDTO); |
| | |
| | | /** |
| | | * 航线暂停 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public void wayLinePause(WayLinePauseDTO wayLinePauseDTO) { |
| | | WayLinePauseCmd wayLinePauseCmd = new WayLinePauseCmd(wayLinePauseDTO); |
| | |
| | | /** |
| | | * 航线恢复 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public void wayLineResume(WayLineResumeDTO wayLineResumeDTO) { |
| | | WayLineResumeCmd wayLineResumeCmd = new WayLineResumeCmd(wayLineResumeDTO); |
| | |
| | | /** |
| | | * 航线结束 |
| | | */ |
| | | @CheckControlRight(UavControlType.FLY) |
| | | @Override |
| | | public void wayLineEnd(WayLineEndDTO wayLineEndDTO) { |
| | | WayLineEndCmd wayLineEndCmd = new WayLineEndCmd(wayLineEndDTO); |