package com.dji.sdk.sample.demo.flightcontroller; import android.content.Context; import android.support.annotation.NonNull; import android.util.Log; import com.dji.sdk.sample.R; import com.dji.sdk.sample.internal.controller.DJISampleApplication; import com.dji.sdk.sample.internal.utils.ModuleVerificationUtil; import com.dji.sdk.sample.internal.view.BaseThreeBtnView; import dji.common.flightcontroller.ObstacleDetectionSector; import dji.common.flightcontroller.VisionDetectionState; import dji.sdk.flightcontroller.FlightAssistant; import dji.sdk.flightcontroller.FlightController; import dji.sdk.products.Aircraft; /** * Class that retrieves the push data for Intelligent Flight Assistant */ public class FlightAssistantPushDataView extends BaseThreeBtnView { public FlightAssistantPushDataView(Context context) { super(context); } @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); if (ModuleVerificationUtil.isFlightControllerAvailable()) { FlightController flightController = ((Aircraft) DJISampleApplication.getProductInstance()).getFlightController(); FlightAssistant intelligentFlightAssistant = flightController.getFlightAssistant(); if (intelligentFlightAssistant != null) { intelligentFlightAssistant.setVisionDetectionStateUpdatedCallback(new VisionDetectionState.Callback() { @Override public void onUpdate(@NonNull VisionDetectionState visionDetectionState) { StringBuilder stringBuilder = new StringBuilder(); ObstacleDetectionSector[] visionDetectionSectorArray = visionDetectionState.getDetectionSectors(); for (ObstacleDetectionSector visionDetectionSector : visionDetectionSectorArray) { visionDetectionSector.getObstacleDistanceInMeters(); visionDetectionSector.getWarningLevel(); stringBuilder.append("Obstacle distance: ") .append(visionDetectionSector.getObstacleDistanceInMeters()) .append("\n"); stringBuilder.append("Distance warning: ") .append(visionDetectionSector.getWarningLevel()) .append("\n"); } stringBuilder.append("WarningLevel: ") .append(visionDetectionState.getSystemWarning().name()) .append("\n"); stringBuilder.append("Sensor state: ") .append(visionDetectionState.isSensorBeingUsed()) .append("\n"); changeDescription(stringBuilder.toString()); } }); } } else { Log.i(DJISampleApplication.TAG, "onAttachedToWindow FC NOT Available"); } } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); } @Override protected int getDescriptionResourceId() { return R.string.intelligent_flight_assistant_description; } @Override protected void handleRightBtnClick() { } @Override protected void handleMiddleBtnClick() { } @Override protected int getMiddleBtnTextResourceId() { return DISABLE; } @Override protected int getRightBtnTextResourceId() { return DISABLE; } @Override protected int getLeftBtnTextResourceId() { return DISABLE; } @Override protected void handleLeftBtnClick() { } @Override public int getDescription() { return R.string.flight_controller_listview_intelligent_flight_assistant; } }