Android-【CSRMeshブルートゥース開発】CSRMesh 1.3開発
3262 ワード
最近、会社はブルートゥースデバイスの開発を始めました.csrのチップ開発を使っています.私は入社したばかりなので、会社のiOSエンジニアが早く入社したので、iOSバージョンのアプリはすでに開発準備が完了してオンラインになっています.Androidの開発時間が急いでいます.ちょうど受け取って、CSRのドキュメントはすべて英语のため、私のこの当时の大学入试の英语の不合格の人を譲って、読むのはとても骨が折れるので、ネット上で“子非鱼”のブログを探し当ててCSRのdemoに対していくつか绍介があって、しかし彼は照明器具だけに対して、私达はまだ彼の电器をコントロールしなければならないため、私にとても大きい助けをあげましたが、初日に开発して、やはり少し触ることができなくて、最后に自分で2日研究しました.このdemoとドキュメントをあまり整理していないので、記録したいので、まとめましょう.まず統合の面では、demo関連のツールクラスを直接コピーしました.ここで注意しなければならないのは、リストファイルにmeshServiceに登録し、関連権限を追加する必要があることです.次の登録コード:
その後、開発はMainActivityから始まり、最初のステップはonCreateでサービス接続を作成することです.
ここでは、サービスのコールバックとしてmServiceConnectionをバインドします.このサービスをバインドすると、スタックを初期化し、CSRmeshブリッジデバイスを接続し、自動的にスキャンし、ブリッジする方法が呼び出されます.
ここではonDestroyでHandlerとcallBackのバインドをログアウトしてリソースを解放することに注意してください(ログアウト方法は1.3 demoを表示できます).MeshServiceについてもっと详しく绍介します.英语が上手なら、ドキュメントを见たり、「子非鱼」の翻訳を见たりすることができます.!ここは翻訳していません.スキャンブリッジが完了すると、HandlerはMESSAGE_を送信します.LE_CONNECTED信号は、demoのsetSecurityとsetTTLFormMCPsの2つの方法に注意してください.ここでは、ネットワークパスワードを読み取り、uuidHash、ネットワークキーを設定します.これは非常に重要な場所です.
最後にAPPがデバイスに送信するAPIを見て、CSR Demoの中には特定の照明器具に対して制御されているので、一部のAPIは使用されていません.ここではドキュメントを見て他のAPIを探す必要があります.その中にはDataModelApiクラスがあります.中にはsendDataメソッドがあります.一般的に設定されているコマンドはこの方法で送信できます.ここには3つのパラメータがあります.deviceId-デバイスIDです.私は放送の形式で送信したので、だから0を出せばいいです.data-送信するコマンドは、ここで10バイトを超えてはいけないことに注意してください.acknowledged-データブロック転送、デフォルトfalse;また、ここではMeshHandlerのMeshServicesを追加します.MESSAGE_RECEIVE_BLOCK_DATA、これはスマートデバイスがAPPにデータを送信する際にHandlerがデータを受信するフラグ信号で、APPがクエリーコマンドを発行すると、デバイスはデータを返し、このIDの下で取得します.一般的にBluetoothは一度に10バイトしか送信できないので、byte配列で直接16進数データを取得します.
基本的な呼び出しの流れは大体そうですが、読者が間違ったところを見たら、突っ込みを歓迎します.
<service
android:name="com.csr.mesh.MeshService"
android:enabled="true"
android:exported="false" >
service>
その後、開発はMainActivityから始まり、最初のステップはonCreateでサービス接続を作成することです.
// service
Intent bindIntent = new Intent(this, MeshService.class);
bindService(bindIntent, mServiceConnection, Context.BIND_AUTO_CREATE);
ここでは、サービスのコールバックとしてmServiceConnectionをバインドします.このサービスをバインドすると、スタックを初期化し、CSRmeshブリッジデバイスを接続し、自動的にスキャンし、ブリッジする方法が呼び出されます.
mService.setHandler(mMeshHandler);// Handler, CSRmesh 。
mService.setLeScanCallback(mScanCallBack);//
mService.setMeshListeningMode(true, true);
mService.autoConnect(1, 15000, 0, 2);
ここではonDestroyでHandlerとcallBackのバインドをログアウトしてリソースを解放することに注意してください(ログアウト方法は1.3 demoを表示できます).MeshServiceについてもっと详しく绍介します.英语が上手なら、ドキュメントを见たり、「子非鱼」の翻訳を见たりすることができます.!ここは翻訳していません.スキャンブリッジが完了すると、HandlerはMESSAGE_を送信します.LE_CONNECTED信号は、demoのsetSecurityとsetTTLFormMCPsの2つの方法に注意してください.ここでは、ネットワークパスワードを読み取り、uuidHash、ネットワークキーを設定します.これは非常に重要な場所です.
最後にAPPがデバイスに送信するAPIを見て、CSR Demoの中には特定の照明器具に対して制御されているので、一部のAPIは使用されていません.ここではドキュメントを見て他のAPIを探す必要があります.その中にはDataModelApiクラスがあります.中にはsendDataメソッドがあります.一般的に設定されているコマンドはこの方法で送信できます.ここには3つのパラメータがあります.deviceId-デバイスIDです.私は放送の形式で送信したので、だから0を出せばいいです.data-送信するコマンドは、ここで10バイトを超えてはいけないことに注意してください.acknowledged-データブロック転送、デフォルトfalse;また、ここではMeshHandlerのMeshServicesを追加します.MESSAGE_RECEIVE_BLOCK_DATA、これはスマートデバイスがAPPにデータを送信する際にHandlerがデータを受信するフラグ信号で、APPがクエリーコマンドを発行すると、デバイスはデータを返し、このIDの下で取得します.一般的にBluetoothは一度に10バイトしか送信できないので、byte配列で直接16進数データを取得します.
byte [] data = msg.getData().getByteArray(MeshService.EXTRA_DATA);
基本的な呼び出しの流れは大体そうですが、読者が間違ったところを見たら、突っ込みを歓迎します.