実行時に機能を変更する

新しい機能(動的バッファサイズ設定など)は、プロバイダのファームウェアをアップグレードすることで有効にできるため、実行時にプロバイダの機能を取得する方法を提供します。機能の繰り返しクエリを回避するため、プロバイダはまず、接続時にメッセージ ストリームを介してファームウェア リビジョンをシーカーに送信する必要があります。そのため、既存のメッセージ グループであるデバイス情報イベントに新しいメッセージ コードを追加します。

メッセージ グループ名
デバイス情報イベント 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 アドレス 場合によって異なる