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