実行時に機能を変更する
新しい機能(動的バッファサイズ設定など)は、プロバイダのファームウェアをアップグレードすることで有効にできるため、実行時にプロバイダの機能を取得する方法を提供します。機能の繰り返しクエリを回避するため、プロバイダはまず、接続時にメッセージ ストリームを介してファームウェア リビジョンをシーカーに送信する必要があります。そのため、既存のメッセージ グループであるデバイス情報イベントに新しいメッセージ コードを追加します。
メッセージ グループ名 | 値 |
---|---|
デバイス情報イベント | 0x03 |
メッセージ コード名 | 値 |
---|---|
ファームウェアのリビジョン | 0x09 |
ファームウェアのリビジョン コードを取得すると、シーカーはそれをキャッシュに保存されたリビジョンと照合します。ファームウェア リビジョンが変更されている場合、シーカーはキャッシュのファームウェア リビジョンを更新し、Message Stream を介して機能をクエリします。
また、将来的には、より高度なデバイス(おそらく Android ベース)が、同じファームウェア リビジョンのフラグに基づいて動的構成を行うことが予想されるため、プロバイダが最初にリクエストなしでシーカーに機能を直接プッシュすることもできます。
そこで、以下に新しいメッセージ グループとメッセージ コードを追加します。
メッセージ グループ名 | 値 |
---|---|
デバイス機能同期イベント | 0x06 |
メッセージ コード名 | 値 |
---|---|
機能の更新をリクエストする(シーカーから送信) | 0x01 |
FMDN トラッキング | 0x03 |
0x0601
を受信すると、
- プロバイダが FMDN トラッキングのサポートを有効にしている場合は、次のように応答する必要があります。
オクテット | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | デバイス機能同期イベント | 0x06 |
1 | uint8 | FMDN トラッキング | 0x03 |
2 ~ 3 | uint16 | 追加データの長さ | 0x0007 |
4 | uint8 | FMDN プロビジョニングの状態 | 未プロビジョニングの場合は 0x00、いずれかのアカウントによるプロビジョニングの場合は 0x01 |
5~10 | uint8[] | デバイスの現在の BLE MAC アドレス | 場合によって異なる |