BluetoothベースステーションでBluetoothデバイスをスキャンする方法

Kumquat Bluetoothベースステーションは、デフォルトで常時オンのBluetoothスキャンに設定されています。KumquatACserverは、ベースステーションのBluetoothスキャン機能をオフにできます。KumquatBluetoothベースステーションは、主にビーコンデバイス(アンカーデバイス)、キンカンポジショニングデバイス(ロケーション)の4種類のデバイスをスキャンして送信します。カード、ポジショニングブレスレット、アセットポジショニングなど)、一般的なBluetooth放送機器およびリレー。サードパーティのBluetoothデバイスとのユーザードッキングは一般的なBluetoothブロードキャストデバイスです。特定の種類のデータについては、データをスキャンして透過的に送信するようにしてください。複数の種類のデータを透過的に送信できるようにする場合は、ベースステーションのノード数を減らしてください。KumquatACserverのベースステーションパラメータを次のように構成します。の指示:

ブロードキャスト透過伝送機能

ベースステーションは、サードパーティのBluetoothデバイスなどの一般的なBluetoothブロードキャストデータを透過的に送信します。ユーザーがサードパーティのデバイスからデータを透過的に送信する必要がある場合は、この機能をオンにする必要があります。この機能は、他のいくつかのパラメーターと一緒に使用する必要があります。次のパラメーターは、サードパーティのBluetoothデバイスに接続する方法を説明します。

ベンダーデータの透過的な送信

メーカーデータは、Bluetooth規格の0xFFセグメントデータです。Bluetooth規格でメーカーが定義したデータはこのデータセグメントに配置されるため、ほとんどの標準Bluetoothデバイスは、メーカーの部分データ(デバイスメーカーに関連)のみを必要とします。たとえば、携帯電話でBluetoothデバイスを見つけましょう。

BluetoothベースステーションでBluetoothデバイスをスキャンする方法
Apple Bluetoothデバイスのように見えます。ブロードキャスト形式を見てみましょう:
BluetoothベースステーションでBluetoothデバイスをスキャンする方法

他のセグメントデータについて心配する必要はありません。このデータには0xFFセグメントデータが含まれていることがわかり、ベースステーションのブロードキャスト透過送信機能をオンにし、フィルタリングを一時的にオフにし(アドレスフィルタリングを参照)、KumquatBluetoothベースステーションを次のように設定します。

BluetoothベースステーションでBluetoothデバイスをスキャンする方法

透過的に送信されたデータを見てみましょう。フィルタリングが有効になっていないため、スキャンされたすべてのBluetoothデータが透過的にフィルタリングされ、より多くのデータがあります。

{ 
    "Gateway": "10000060", 
    "NodeId": "00000000", 
    "SystemId": "10990145", 
    "Type": "ble_station_online", 
    "online": [ 
        { 
            "addr": "8C34DC964241", 
            "adv": "07,0F,00,02,20,41,42,96,DC,34,8C,F5,64,E4,58,09,00", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -73
        }, 
        { 
            "addr": "76E1DAB29237", 
            "adv": "01,09,20,02,39,F9,C5,F7,28,AE,6A,A6,05,DA,BB,98,04,F3,A5,EC,E6,91,EE,3B,C3,3E,3C", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -48
        }, 
        { 
            "addr": "100000054342", 
            "adv": "03,10,00,00,60,EA,02,3B,10", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -22
        }, 
        { 
            "addr": "297D1285EC5F", 
            "adv": "10,05,41,1C,61,98,20", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -48
        }, 
        { 
            "addr": "DD0E5AAD62EA", 
            "adv": "02,15,B5,B1,82,C7,EA,B1,49,88,AA,99,B5,C1,51,70,08,D9,00,01,DD,0E,C5", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -61
        }, 
        { 
            "addr": "DCB951E05C48", 
            "adv": "10,05,03,1C,B1,22,85", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -70
        }, 
        { 
            "addr": "EBB6CA6BD71D", 
            "adv": "01,09,20,02,9D,90,CA,D0,D9,5F,85,DA,CE,49,0E,AE,B4,8C,15,AF,20,8D,FF,82,CC,A8,70", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -75
        }, 
        { 
            "addr": "E48B86593B18", 
            "adv": "01,09,20,02,84,42,8C,BD,D4,81,77,18,DB,66,3D,AF,C9,F3,8C,1A,A7,0E,65,6D,4B,F4,7D", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -77
        }, 
        { 
            "addr": "E20D237D282D", 
            "adv": "01,09,20,02,A6,82,56,06,7B,BE,0C,90,98,E9,A2,9D,E6,B3,1B,0C,FF,6A,AE,D4,F5,25,D0", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -66
        }, 
        { 
            "addr": "E60BF9204B5A", 
            "adv": "10,05,13,1C,DE,96,FF", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -69
        }, 
        { 
            "addr": "A97F4F3FF742", 
            "adv": "10,06,17,1E,57,BD,E5,E8", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -72
        }, 
        { 
            "addr": "3137F8BA387F", 
            "adv": "10,05,54,1C,95,76,94", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -68
        }, 
        { 
            "addr": "8B55C7C37A79", 
            "adv": "10,05,13,18,B0,B5,D6", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -83
        }
    ]
}

41:42:96:DC:34:8Cのデバイスのみを考慮します。ベースステーションの解決アドレスは、携帯電話のアドレスとは逆のリトルエンディアン順であるため、アドレス8c34dc964241のデバイスを探しています。

{ 
            "addr": "8C34DC964241", 
            "adv": "07,0F,00,02,20,41,42,96,DC,34,8C,F5,64,E4,58,09,00", 
            "advType": "adv", 
            "nodeType": "node", 
            "rssi": -73
        },

デバイスによってブロードキャストされたデータが上の写真の電話上のメーカーのデータと一致しているというadvフィールドを見てみましょう。

メーカーコードを含む

前の例では、透過的に送信したデータに2つのメーカーコード0x4c00が含まれていませんでした。一般的に、これら2つのビットは固定されており、メーカーのコードであるため、データに含まれていません。ベースステーションの設定を開くとこの関数にはメーカーコードを含めることができます。たとえば、ベースステーションを次のように設定します。

BluetoothベースステーションでBluetoothデバイスをスキャンする方法
透過データをもう一度見てみましょう。41:42:96:DC:34:8Cデバイスのみを確認します。

{ 
    "addr": "8C34DC964241", 
    "adv": "4C,00,07,0F,00,02,20,41,42,96,DC,34,8C,F5,18,E4,4A,09,00", 
    "advType": "adv", 
    "nodeType": "node", 
    "rssi": -72
}

送信されるデータには、0xFF(メーカーデータ)セグメントデータ全体である4C00が含まれます。
なお、メーカーコードのON / OFFは、メーカーデータの透過送信機能をONにした場合のみ有効です。メーカーデータ機能をOFFにした場合、この機能をONまたはONしても無効になります。

Bluetoothデータを完全に透過的に送信する

メーカーデータの透過送信をオフにすると、Bluetoothブロードキャストパケット全体が透過的に送信されます。まず、携帯電話のBluetoothデバイスのデータを見てみましょう。ここでランダムにデバイスを見つけます
BluetoothベースステーションでBluetoothデバイスをスキャンする方法
。Bluetoothベースステーションを次のように設定し
BluetoothベースステーションでBluetoothデバイスをスキャンする方法
ます。ブロードキャストデータを見てみましょう。 :

{ 
    "addr": "C789AF11577B", 
    "adv": "02,01,06,0A,FF,4C,00,10,05,07,1C,22,81,34", 
    "advType": "adv", 
    "nodeType": "node", 
    "rssi": -71
}

それは携帯電話で見られる元の放送パッケージと一致しています。
Bluetoothブロードキャストの標準の生データ形式は、セグメント長+セグメントタイプ+セグメントデータです。上記の例のように、02は長さ、01はタイプ(ブロードキャストフラグ)、06はデータ、さらに0Aは長さ、FFはタイプ(メーカー)です。データ)の後に10バイトのデータが続きます。

おすすめ

転載: blog.51cto.com/14958685/2541638