ランタイムでの機能の変更

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

メッセージ グループ名
デバイス情報イベント 0x03
メッセージ コード名
ファームウェア リビジョン 0x09

ファームウェアのリビジョン コードを取得したら、シーカーはキャッシュに保存されているコードと照合する必要があります。ファームウェア リビジョンが変更されている場合、シーカーはキャッシュのファームウェア リビジョンを更新し、メッセージ ストリームを介して機能をクエリします。

また、プロバイダがリクエストなしでシーカーに機能を直接プッシュすることも許可されています。これは、将来、より高度なデバイス(Android ベースなど)が、同じファームウェア リビジョンのフラグに基づいて動的構成を行うことを想定しているためです。

そのため、新しいメッセージ グループとメッセージ コードを以下に追加します。

メッセージ グループ名
デバイスの機能の同期イベント 0x06
メッセージ コード名
リクエストの機能の更新(求職者から送信) 0x01
FHN トラッキング 0x03

0x0601 を受信すると、

  • プロバイダが FHN トラッキングを有効にしている場合は、次のように応答する必要があります。
オクテット データ型 説明
0 uint8 デバイスの機能の同期イベント 0x06
1 uint8 FHN トラッキング 0x03
2 ~ 3 uint16 追加データの長さ 0x0007
4 uint8 FHN のプロビジョニング ステータス プロビジョニングされていない場合は 0x00、任意のアカウントによってプロビジョニングされている場合は 0x01
5~10 uint8[] デバイスの現在の BLE MAC アドレス 変動あり