diff --git a/app/src/main/java/com/aros/apron/callback/MqttCallBack.java b/app/src/main/java/com/aros/apron/callback/MqttCallBack.java index 98d03191..9293eb2b 100644 --- a/app/src/main/java/com/aros/apron/callback/MqttCallBack.java +++ b/app/src/main/java/com/aros/apron/callback/MqttCallBack.java @@ -190,8 +190,9 @@ public class MqttCallBack extends BaseManager implements MqttCallbackExtended { //设置modecode Movement.getInstance().setMode_code(1); sendFlightTaskProgress2Server(); - //设置标志为 + //设置标志为指令飞行 Movement.getInstance().setFlightmode(2); + TakeOffToPointManager.getInstance().taskExecute(message); break; case Constant.FLY_TO_POINT: diff --git a/app/src/main/java/com/aros/apron/entity/Movement.java b/app/src/main/java/com/aros/apron/entity/Movement.java index e96f4133..c96f83dd 100644 --- a/app/src/main/java/com/aros/apron/entity/Movement.java +++ b/app/src/main/java/com/aros/apron/entity/Movement.java @@ -411,9 +411,18 @@ public class Movement { } //用来判断是什么起飞type - private int flightmode=0; //0代表没有操作 1代表航线飞行 2代表指令飞行 + private int flightmode=0; //0代表没有操作 1代表航线飞行 2代表指令飞行(一键和flyto) + private boolean takeofftopoint; private boolean opendrc=false; //true 是开启 false 是关闭 + public boolean isTakeofftopoint() { + return takeofftopoint; + } + + public void setTakeofftopoint(boolean takeofftopoint) { + this.takeofftopoint = takeofftopoint; + } + public boolean isOpendrc() { return opendrc; } diff --git a/app/src/main/java/com/aros/apron/manager/CameraManager.java b/app/src/main/java/com/aros/apron/manager/CameraManager.java index 8ca68f2b..b7634e22 100644 --- a/app/src/main/java/com/aros/apron/manager/CameraManager.java +++ b/app/src/main/java/com/aros/apron/manager/CameraManager.java @@ -376,21 +376,6 @@ public void initCameraInfo() { } } }); - //剩余录像时间 - KeyManager.getInstance().listen(KeyTools.createKey(CameraKey. - KeyIsRecording, ComponentIndexType.PORT_1), this, new CommonCallbacks.KeyListener() { - @Override - public void onValueChange(@Nullable Boolean aBoolean, @Nullable Boolean t1) { - if(t1!=null){ - if(t1==true){ - Integer recordingTime = KeyManager.getInstance().getValue( - KeyTools.createKey(CameraKey.KeySSDAvailableRecordingTimeInSeconds, ComponentIndexType.PORT_1) - ); - LogUtil.log(TAG,"录像时间"+recordingTime); - } - } - } - }); //视频录制时长 KeyManager.getInstance().listen(KeyTools.createKey(CameraKey.KeyRecordingTime, ComponentIndexType.PORT_1), this, new CommonCallbacks.KeyListener() { @@ -627,14 +612,16 @@ public void initCameraInfo() { @Override public void onValueChange(@Nullable CameraStorageInfos cameraStorageInfos, @Nullable CameraStorageInfos t1) { if (t1 != null) { + // LogUtil.log(TAG,"剩余时间"+t1.getCurrentCameraStorageInfo().getAvailableVideoDuration()); + //剩余录像时间 + Movement.getInstance().setRemain_record_duration(t1.getCurrentCameraStorageInfo().getAvailableVideoDuration()); + CameraStorageInfo cameraStorageInfoByLocation = t1.getCameraStorageInfoByLocation(CameraStorageLocation.SDCARD); if (cameraStorageInfoByLocation != null) { - // //剩余可以拍照张数 // int pitcurenum = cameraStorageInfoByLocation.getAvailablePhotoCount(); // Movement.getInstance().setRemain_photo_num(pitcurenum); // LogUtil.log(TAG, "//剩余可以拍照张数" + pitcurenum); - Movement.getInstance().setTotal(cameraStorageInfoByLocation.getStorageCapacity() * 1024); Movement.getInstance().setUsed((cameraStorageInfoByLocation.getStorageCapacity() * 1024) - (cameraStorageInfoByLocation.getStorageLeftCapacity())); diff --git a/app/src/main/java/com/aros/apron/manager/GimbalManager.java b/app/src/main/java/com/aros/apron/manager/GimbalManager.java index 8402fd32..1bb9eab0 100644 --- a/app/src/main/java/com/aros/apron/manager/GimbalManager.java +++ b/app/src/main/java/com/aros/apron/manager/GimbalManager.java @@ -279,7 +279,7 @@ public class GimbalManager extends BaseManager { @Override public void onFailure(@NonNull IDJIError error) { - LogUtil.log(TAG,"看向目标点失败"); + LogUtil.log(TAG,"看向目标点失败"+error); sendFailMsg2Server(message, "看向目标点失败:" + getIDJIErrorMsg(error)); } } diff --git a/app/src/main/java/com/aros/apron/manager/MissionV3Manager.java b/app/src/main/java/com/aros/apron/manager/MissionV3Manager.java index fcfc901e..c29b741e 100644 --- a/app/src/main/java/com/aros/apron/manager/MissionV3Manager.java +++ b/app/src/main/java/com/aros/apron/manager/MissionV3Manager.java @@ -161,7 +161,14 @@ public class MissionV3Manager extends BaseManager { sendFlightTaskProgress2Server(); //航线飞行 - Movement.getInstance().setMode_code(5); + if(Movement.getInstance().getFlightmode()==1){ + + Movement.getInstance().setMode_code(5); + }else if(Movement.getInstance().getFlightmode()==2){ + //指令飞行 + Movement.getInstance().setMode_code(17); + } + break; case EXECUTING: sendEvent2Server("任务状态:航线任务执行中", 1); diff --git a/app/src/main/java/com/aros/apron/manager/StickManager.java b/app/src/main/java/com/aros/apron/manager/StickManager.java index 620ab6d6..36a1c92a 100644 --- a/app/src/main/java/com/aros/apron/manager/StickManager.java +++ b/app/src/main/java/com/aros/apron/manager/StickManager.java @@ -124,11 +124,13 @@ public class StickManager extends BaseManager { public void onSuccess() { if (message != null) { sendMsg2Server(message); + if(Movement.getInstance().getFlightmode()==1){ Movement.getInstance().setMode_code(5); }else if(Movement.getInstance().getFlightmode()==2){ Movement.getInstance().setMode_code(17); } + Movement.getInstance().setOpendrc(false); } LogUtil.log(TAG, "控制权已取消"); diff --git a/app/src/main/java/com/aros/apron/manager/TakeOffToPointManager.java b/app/src/main/java/com/aros/apron/manager/TakeOffToPointManager.java index 9ebe1e15..da2a2494 100644 --- a/app/src/main/java/com/aros/apron/manager/TakeOffToPointManager.java +++ b/app/src/main/java/com/aros/apron/manager/TakeOffToPointManager.java @@ -94,7 +94,7 @@ public class TakeOffToPointManager extends BaseManager { boolean statusOk = verifyAircraftStatus(message); //4.信号收敛(等待GPS搜星) if (statusOk) { - LogUtil.log(TAG,"verifyGpsAndMissionState(message)执行了"); + // LogUtil.log(TAG,"verifyGpsAndMissionState(message)执行了"); verifyGpsAndMissionState(message); } @@ -170,16 +170,20 @@ public class TakeOffToPointManager extends BaseManager { int missionStateCode = Movement.getInstance().getMissionStateCode(); String planeMessage = Movement.getInstance().getPlaneMessage(); int quality = Movement.getInstance().getQuality(); + int GPSSatelliteCount=Movement.getInstance().getGPSSatelliteCount(); + boolean isMissionStateValid = (missionStateCode == 2 || missionStateCode == 0 || missionStateCode == 7); boolean isPlaneMessageValid = !TextUtils.isEmpty(planeMessage) && !planeMessage.equals("无法起飞"); boolean isGpsQualityValid = (quality == 4 || quality == 5 || quality == 10); + boolean GPSSatelliteCountValid=GPSSatelliteCount>15; + LogUtil.log(TAG,"isMissionStateValid"+isMissionStateValid+"isPlaneMessageValid"+isPlaneMessageValid+"isGpsQualityValid"+isGpsQualityValid); // if (isMissionStateValid && isPlaneMessageValid && isGpsQualityValid) { - if (isPlaneMessageValid && isGpsQualityValid) { + if (GPSSatelliteCountValid||isGpsQualityValid) { //5.生成航线 - LogUtil.log(TAG,"执行toGenerateKMZFile"); + //LogUtil.log(TAG,"执行toGenerateKMZFile"); toGenerateKMZFile(message); verifyGpsAndMissionStateSuccess = true; } else { @@ -269,7 +273,9 @@ public class TakeOffToPointManager extends BaseManager { List waypoints = waylines.get(0).getWaypoints(); if (waypoints != null && waypoints.size() > 0) { //将航点列表保存在本地 + Movement.getInstance().setSpeed(configParseInfo.getGlobalTransitionalSpeed()); + CurrentWayline.getInstance().setWaypoints(waypoints); LogUtil.log(TAG, "该航线有" + waypoints.size() + "个航点"); } else { @@ -374,6 +380,7 @@ public class TakeOffToPointManager extends BaseManager { CommonCallbacks.CompletionCallback callback = new CommonCallbacks.CompletionCallback() { @Override public void onSuccess() { + isMissionStart = true; LogUtil.log(TAG, "航线第" + startMissionFailTimes + "次开始成功"); Movement.getInstance().setTask_status("in_progress");