Getting started!!

現在、mCnはAndroid開発環境に対応しています。

Android

mCnはUSB、シリアルからの入力に対応しています。
そのため、Android studioにUSB Serialのライブラリをインポートする必要があります。
ライブラリは以下のものを使用することをお勧めします。
Github : https://github.com/mik3y/usb-serial-for-android
実装例 : https://github.com/Hizuki1030/mCn-Template

クイックガイド

mCn-templateを利用してオリジナルのアプリを作成してみましょう。

CO2センサーの値を表示してみましょう!!

    4.MainActivity.javaを編集する。
70行目:TextView Co2MsgView = findViewById(R.id.Co2_View);
143行目:String Co2  = N1.getString("Co2");
144行目:runOnUiThread(() -> {Co2MsgView.setText(Co2);});

 5.ビルド!!

コード解説

Baseとの接続処理

 「UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);」
・USBサービスのマネージャーの作成

「List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager);」
availableDriversに登録されているかつ、接続されているSerialデバイスを取得する

「UsbSerialDriver driver = availableDrivers.get(0);」
・availableDriverに入るデバイスは1つ(Baseだけ)なので1番目のドライバーを選択する

「UsbDeviceConnection connection = manager.openDevice(driver.getDevice());」

・見つかったデバイスに接続する

「mPort = driver.getPorts().get(0);」
・シリアルの1ポート目を取得

「mPort.open(connection);
 mPort.setParameters(115200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE);」
・ポートを開き、通信速度、データー長さ、ストップビットの有無、パリティビットの有無を設定する。

「mPort.setDTR(true);」
・DTR信号をBaseに送ります。

上記のような処理をしてBaseとの通信を確立します。

受信処理

「public void onNewData(byte[] data)」
・シリアルからのデータが受信された時に呼び出されます。

「  String DataString = new String(data);
      SerialDataBuffer += DataString;
      if(SerialDataBuffer.indexOf("\n") > 0)
{//データ処理}

・シリアルから受信したデータをBufferに溜めておき、改行文字を受信したらJSONデータが1パケット受信したと判断します。