😸
リモートID(日本版ドローンID)をnrf52840(arduino)で作れるかな検討編
のクローンというか別実装というかをやっていこうと思います。
使うのは MDBT50Q でarduinoでできたらいいな。
環境セットアップは下記記事で
AdafruitのAPIになってしまうが致し方なし。BLEのサンプルが充実していた。
日本版の仕様書は下記(以下RID仕様書と略す)
一部でなんでこんな仕様にと騒がれていたが、友人が多くない私でも「マンションの外でドローンがこっち向いてた」と女性から相談されることがあったので、警察さんは切実だろう。私は怠惰なのでいるところだけやりたい。
アドバタイズパケットに乗せるメッセージパック周りは海外で誰か作るだろうから
日本オリジナルなところから手を付ける。
C++の実装は下記にある。日本版と並びが違うのでそのままは無理そうだけどメッセージパックだけはもってこれるだろうか。
Basic Messageが2つあるのとAuthentication MessageのAuth Typeが3と指定があり、互換性のある実装あるか不明
RID仕様書の原文は下記
RID仕様書に定義されている必要なGATT周りの一覧はこれ…。
valueが交差する表は中々しびれますけど、まぁ必要なことは、ある程度読み取れるので深くは突っ込まない。
ざっとまとめると
Service は 一つで UUID f9ed6165-faa8-4f2d-8b82-dc67d3444b0f のサービスの中に下記の表のキャラクタリスティックをもっていること。
Description | UUID | Properties | Permission |
---|---|---|---|
RID Auth | aacf388f-0e69-4802-8067-3508b1b50c3a | Write | Encryption Write |
RID Command | 2d67083e-5291-4dfa-a357-8ae4317413f5 | Write | Encryption Write |
RID Response | d98c42d8-3013-462e-8d35-2b5b61eea94d | NOTIFY | Encryption Read/Write |
大きく分けて作業は
- bluefruitで拡張アドバタイズが出せるか
- bluefruitでLong rangeの設定できるか
- どれか実機で実装詳細の確認
- アドバタイズに乗せるメッセージパックのうち日本オリジナルのやつの実装
- GATのコマンドとレスポンスの実装
GATTの雛形までは作っておいたが続きをいつやるかなぁ…。
Discussion
Long Rangeが微妙そう
修正できるか?
参考 ここで下記のように設定している
long rangeにはならないけど拡張アドバタイズにはなった。
sparkfanのドキュメントも貼っておこう。
このへんでmesssage packを作っている。これをRID仕様に合わせてアドバタイズに載せてやれば良さそう。