DIY

NXS Systemの通信仕様まとめ(途中)

頭の中の整理のためのメモ書きです。

・システム構成は
-Android Central
-Quantum Peripheral兼Central…Androidアプリと接続するときはPeripheral
-BlakBullet Peripheral

確認済み

・Quantumは制御のために以下のサービス内に以下のキャラクタリスティック2つを持つ。
サービス…a5c1c000-cc20-ba91-0c1a-ef3f9e643d79
キャラクタリスティック(認証用)…”a5c1cc02-cc20-ba91-0c1a-ef3f9e643d79″
キャラクタリスティック(制御用)…”a5c1cc01-cc20-ba91-0c1a-ef3f9e643d79″

・キャラクタリスティック(認証用)のハンドル値は0x11
・キャラクタリスティック(制御用)のハンドル値は0x0d

・QuantumをPeriferalとして通信確立して、一定時間以内(30sぐらい?)以内にキャラクタリスティック(認証用)にパスコード(Androidアプリで設定した4桁)を送信しないと通信が切れる。
・キャラクタリスティック(認証用)にパスコードを送信するときのデータ長は4バイト(アプリで1111を設定した場合、0x01,0x01,0x01,0x01)

・BlakBulletも上記のサービスとキャラクタリスティック(制御用)も持っている。

・キャラクタリスティック(制御用)にシフトアップ/ダウンのコマンドを送信するときのデータ長は8バイト
・コマンドのフォーマットは↓
シフトアップ{0x10,0x00,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX}
シフトダウン{0x11,0x00,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX}
0xXXは、対象のQuantumのmacアドレス(リトルエンディアン)

・コマンドの一覧は↓のURL参照(各コマンドごとにパケットのサイズはフォーマットは変わる)
https://www.nxswireless.com/community/main-category-nxs-api/nxs-api-commands/

確認中

・アプリでQuantumにBlakBulletのmacアドレスを登録すると、Quantumは該当のmacアドレスのデバイスとbondingありで通信確立するよう。
・アプリはアドバタイズパケットに上記のサービスUUIDを含むデバイスをサーチして表示しているようだ。(add device時)
・BlakBulletはQuantumにスイッチの押下をNotifyで通知しているようだ