2016-05-17 23 views
0

Ich habe einige Befehle gefunden, um ein Beacon zu simulieren, und sie funktionieren gut, aber ich verstehe sie nicht wirklich.In welchem ​​Format sind die Bluez-Befehle?

sudo hciconfig hci0 up 
sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 00 
sudo hcitool -i hci0 cmd 0x08 0x0006 A0 00 A0 00 03 00 00 00 00 00 00 00 00 07 00 
sudo hcitool -i hci0 cmd 0x08 0x000a 01 

Wie sind diese NUCER codiert? Wenn ich einen String legen möchte, z. 9c4fca50-1c13-11e6-bdf4-0800200c9a66 als UUID in welcher Form soll ich es umwandeln, um diese paar 'Bit' zu erhalten?

Antwort

1

Die Befehle geben Datenbytes im Hexadezimalformat an, die durch Leerzeichen getrennt sind. Wenn Sie ein Feld in dieses Format konvertieren möchten, müssen Sie auch wissen, ob es "Big Endian" (höchstwertiges Byte zuerst) oder "Little Endian" (niedrigstwertiges Byte zuerst) ausgedrückt werden muss. Verschiedene Felder haben unterschiedliche Endianz. Die meisten Beacon-Felder (wie Proximity-UUID) sind Big-Endian, aber einige untergeordnete Bluetooth-LE-Felder sind Little Endian.

Eine Proximity-UUID kann leicht in das von BlueZ verwendete Format konvertiert werden, da der Textausdruck auch in hexadezimaler Form vorliegt und die wichtigsten Teile zuerst angezeigt werden. Um sie in Big-Endian-Bytes umzuwandeln, müssen Sie einfach die Bindestriche entfernen und Leerzeichen hinzufügen. So folgt aus:

9c4fca50-1c13-11e6-bdf4-0800200c9a66 

Wird dies:

9c 4f ca 50 1c 13 11 e6 bd f4 08 00 20 0c 9a 66 
+0

Danke, aber was ist die Art der Min- und Max-Intervallwerte? Was sollen die Werte sein, wenn ich zum Beispiel die Übertragung bei 5Hz einstellen möchte? – user3235881

+0

Zur Konfiguration der Werberate, siehe meine Antwort hier: http://stackoverflow.com/a/21126744/1461050 Die Min- und Max-Werte werden nicht von BlueZ angegeben, sondern sind die Grenzen Ihres zugrunde liegenden Bluetooth LE-Chips auf Ihrem System. – davidgyoung