打造自己的HelloDrone 無人機APP過程《0》

2020-09-30 12:00:44

目錄

摘要


本節主要記錄開發自己的HelloDrone無人機的過程,本節是第一節歡迎批評指正!


參考資料:
部落格參考
dronekit-android原始碼
Tower原始碼
usb-serial-for-android庫

1.專案設定


1.設定一個基本的Android Studio專案

1.建立一個空白的專案
在這裡插入圖片描述
2.建立專案名稱及儲存位置
在這裡插入圖片描述
3.最後點選完成
在這裡插入圖片描述


2.新增使用者端庫


1.開啟build.gradle(Module:app),在依賴關係部分,新增下方庫並同步:

implementation 'com.o3dr.android:dronekit-android:3.0.2'

在這裡插入圖片描述
最後同步下來的資料:

在這裡插入圖片描述

3.實現TowerListener的監聽事件

在這裡插入圖片描述

public class MainActivity extends AppCompatActivity implements TowerListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public void onTowerConnected() {
    
}

@Override
public void onTowerDisconnected() {

}
}

4.初始化ControlTower 並繫結activity的生命週期

package com.example.dzuav_hellodrone;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.o3dr.android.client.ControlTower;
import com.o3dr.android.client.interfaces.TowerListener;

public class MainActivity extends AppCompatActivity implements TowerListener {
    //定義私有的Tower APP控制
    private ControlTower controlTower;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //建立私有物件
        this.controlTower = new ControlTower(getApplicationContext());
    }
    @Override
    protected void onStart() {
        super.onStart();
        //實現連線
        this.controlTower.connect(this);
    }

    @Override
    protected void onStop() {
        super.onStop();
        this.controlTower.disconnect();
    }
    @Override
    public void onTowerConnected() {
        Log.i("LXW","onTowerConnected");
    }
    @Override
    public void onTowerDisconnected() {
        Log.i("LXW","onTowerDisconnected");
    }
}

在這裡插入圖片描述

5.實現無人機監聽事件

    public class MainActivity extends ActionBarActivity implements DroneListener, TowerListener {
    @Override
    public void onDroneEvent(String event, Bundle extras) {//連線成功的回撥

    }

    @Override
    public void onDroneServiceInterrupted(String errorMsg) {//連線失敗的回撥

    }
    ...
    }

6.無人機範例化並在tower上註冊

在這裡插入圖片描述
到這裡基本就完成了一個簡單的呼叫3DR庫的無人機連線過程,但是由於呼叫的庫內容是不可以修改的,很不方便我們的學習,因此,我們可以參考官網提供的DEMO去學習,拿到原始碼進行實現自己的無人機APP。
官網提供的原始碼可以修改的地址:dronekit-android demo
下面是自己呼叫3DR的DEMO進行修改得到的原始碼圖片
在這裡插入圖片描述
最終實現的介面是:
在這裡插入圖片描述