Präfix- und Suffix-Konfiguration¶
⚠️ Achtung: Dieses Dokument beschreibt, wie man die API des SDKs verwendet, um Scan-Geräte zu bedienen, und bietet Beispielcode in C. Beachten Sie, dass die API synchron arbeitet und den Hauptthread blockieren kann.
⚠️ Achtung: Vor der Verwendung der API müssen Sie das Gerät selbst verbinden und Nachrichtenbenachrichtigungen registrieren, um Nachrichten vom Gerät zu empfangen. Die genauen Schritte finden Sie unter Nachrichtenbenachrichtigung.
1. Präfix setzen¶
1.1 Befehl schreiben¶
Um das Präfix des Scan-Geräts zu setzen, verwenden Sie die folgenden Bluetooth-Dienst- und Charakteristik-UUIDs für die write without response
-Operation:
Bluetooth | UUID |
---|---|
Dienst | 0x0000ff0000001000800000805f9b34fb |
Charakteristik | 0x0000ff0400001000800000805f9b34fb |
Verwenden Sie den folgenden Befehl, um die Daten der Schreibcharakteristik zu erhalten:
const char* result = inateck_scanner_cmd_set_prefix(prefix, prefix_length);
Die Eingabeparameter sind wie folgt:
prefix
: Präfix-String, maximale Länge 32 Bytes, das letzte Byte muss0xFF
sein. Der Zeichenbereich ist in der benutzerdefinierten Codetabelle beschrieben. Zum Beispiel, wenn das PräfixABC
ist, sollteprefix
0x41 0x42 0x43 0xFF
sein.prefix_length
: Länge des Präfixes, maximal 32 Bytes.
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"data": [0, 1, 2, 3],
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"data": [],
}
1.2 Nachrichtenanalyse¶
Nachdem das Gerät geantwortet hat, können Sie die Daten mit der folgenden Methode analysieren:
int result = inateck_scanner_cmd_check_result(data, data_length);
Das Ergebnis wird als int
-Typ zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
0
zurückgeben. Wenn der Aufruf fehlschlägt, wird result
1
zurückgeben.
1.3 Beispielcode¶
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unistd.h>
#include "inateck_scanner_ble.h"
int main() {
const char prefix[] = {0x41, 0x42, 0x43, 0xFF};
const char* result = inateck_scanner_cmd_set_prefix(prefix, sizeof(prefix));
if (result) {
// result ist im JSON-Format, Daten analysieren
const unsigned char* data = (const unsigned char*)result;
int data_length = strlen(result);
// Daten über Bluetooth senden write without response
// Hier wird angenommen, dass es eine Funktion send_data_via_bluetooth gibt, die Daten sendet
send_data_via_bluetooth(data, data_length);
// Auf die Antwort des Geräts warten, Daten empfangen
// Hier wird angenommen, dass es eine Funktion receive_data_via_bluetooth gibt, die Daten empfängt
receive_data_via_bluetooth();
const unsigned char* data = get_received_data();
int data_length = get_received_data_length();
// Daten analysieren
int result = inateck_scanner_cmd_check_result(data, data_length);
if (result == 0) {
printf("Set prefix success\n");
} else {
printf("Set prefix failed\n");
}
}
return 0;
}
2. Präfix abrufen¶
2.1 Befehl schreiben¶
Um das Präfix des Scan-Geräts abzurufen, verwenden Sie die folgenden Bluetooth-Dienst- und Charakteristik-UUIDs für die write without response
-Operation:
Bluetooth | UUID |
---|---|
Dienst | 0x0000ff0000001000800000805f9b34fb |
Charakteristik | 0x0000ff0400001000800000805f9b34fb |
Verwenden Sie den folgenden Befehl, um die Daten der Schreibcharakteristik zu erhalten:
const char* result = inateck_scanner_cmd_get_prefix();
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"data": [0, 1, 2, 3],
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"data": [],
}
2.2 Nachrichtenanalyse¶
Nachdem das Gerät geantwortet hat, können Sie die Daten mit der folgenden Methode analysieren:
const char* result = inateck_scanner_cmd_get_affix_result(data, data_length);
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"data": [0, 1, 2, 3],
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"data": [],
}
Die Rückgabeparameter sind wie folgt:
data
: Präfix-Byte-Array. Die Byte-Analyse finden Sie in der benutzerdefinierten Codetabelle.
2.3 Beispielcode¶
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unistd.h>
#include "inateck_scanner_ble.h"
int main() {
const char* result = inateck_scanner_ble_get_prefix(device_id);
if (result) {
// result ist im JSON-Format, Daten analysieren
const unsigned char* data = (const unsigned char*)result;
int data_length = strlen(result);
// Daten über Bluetooth senden write without response
// Hier wird angenommen, dass es eine Funktion send_data_via_bluetooth gibt, die Daten sendet
send_data_via_bluetooth(data, data_length);
// Auf die Antwort des Geräts warten, Daten empfangen
// Hier wird angenommen, dass es eine Funktion receive_data_via_bluetooth gibt, die Daten empfängt
receive_data_via_bluetooth();
const unsigned char* data = get_received_data();
int data_length = get_received_data_length();
// Daten analysieren
const char* result = inateck_scanner_cmd_get_affix_result(data, data_length);
if (result) {
printf("Get prefix success\n");
} else {
printf("Get prefix failed\n");
}
}
return 0;
}
3. Suffix setzen¶
3.1 Befehl schreiben¶
Um das Suffix des Scan-Geräts zu setzen, verwenden Sie die folgenden Bluetooth-Dienst- und Charakteristik-UUIDs für die write without response
-Operation:
Bluetooth | UUID |
---|---|
Dienst | 0x0000ff0000001000800000805f9b34fb |
Charakteristik | 0x0000ff0400001000800000805f9b34fb |
Verwenden Sie den folgenden Befehl, um die Daten der Schreibcharakteristik zu erhalten:
const char* result = inateck_scanner_cmd_set_suffix(suffix, suffix_length);
Die Eingabeparameter sind wie folgt:
suffix
: Suffix-String, maximale Länge 32 Bytes, das letzte Byte muss0xFF
sein. Der Zeichenbereich ist in der benutzerdefinierten Codetabelle beschrieben. Zum Beispiel, wenn das SuffixXYZ
ist, solltesuffix
0x58 0x59 0x5A 0xFF
sein.suffix_length
: Länge des Suffixes, maximal 32 Bytes.
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"data": [0, 1, 2, 3],
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"data": [],
}
3.2 Nachrichtenanalyse¶
Nachdem das Gerät geantwortet hat, können Sie die Daten mit der folgenden Methode analysieren:
int result = inateck_scanner_cmd_check_result(data, data_length);
Das Ergebnis wird als int
-Typ zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
0
zurückgeben. Wenn der Aufruf fehlschlägt, wird result
1
zurückgeben.
3.3 Beispielcode¶
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unistd.h>
#include "inateck_scanner_ble.h"
int main() {
const char suffix[] = {0x41, 0x42, 0x43, 0xFF};
const char* result = inateck_scanner_cmd_set_suffix(suffix, sizeof(suffix));
if (result) {
// result ist im JSON-Format, Daten analysieren
const unsigned char* data = (const unsigned char*)result;
int data_length = strlen(result);
// Daten über Bluetooth senden write without response
// Hier wird angenommen, dass es eine Funktion send_data_via_bluetooth gibt, die Daten sendet
send_data_via_bluetooth(data, data_length);
// Auf die Antwort des Geräts warten, Daten empfangen
// Hier wird angenommen, dass es eine Funktion receive_data_via_bluetooth gibt, die Daten empfängt
receive_data_via_bluetooth();
const unsigned char* data = get_received_data();
int data_length = get_received_data_length();
// Daten analysieren
int result = inateck_scanner_cmd_check_result(data, data_length);
if (result == 0) {
printf("Set suffix success\n");
} else {
printf("Set suffix failed\n");
}
}
return 0;
}
4. Suffix abrufen¶
4.1 Befehl schreiben¶
Um das Suffix des Scan-Geräts abzurufen, verwenden Sie die folgenden Bluetooth-Dienst- und Charakteristik-UUIDs für die write without response
-Operation:
Bluetooth | UUID |
---|---|
Dienst | 0x0000ff0000001000800000805f9b34fb |
Charakteristik | 0x0000ff0400001000800000805f9b34fb |
Verwenden Sie den folgenden Befehl, um die Daten der Schreibcharakteristik zu erhalten:
const char* result = inateck_scanner_cmd_get_suffix();
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"data": [0, 1, 2, 3],
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"data": [],
}
4.2 Nachrichtenanalyse¶
Nachdem das Gerät geantwortet hat, können Sie die Daten mit der folgenden Methode analysieren:
const char* result = inateck_scanner_cmd_get_affix_result(data, data_length);
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"data": [0, 1, 2, 3],
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"data": [],
}
Die Rückgabeparameter sind wie folgt:
* data
: Suffix-Byte-Array. Die Byte-Analyse finden Sie in der benutzerdefinierten Codetabelle.
4.3 Beispielcode¶
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unistd.h>
#include "inateck_scanner_ble.h"
int main() {
const char* result = inateck_scanner_ble_get_suffix(device_id);
if (result) {
// result ist im JSON-Format, Daten analysieren
const unsigned char* data = (const unsigned char*)result;
int data_length = strlen(result);
// Daten über Bluetooth senden write without response
// Hier wird angenommen, dass es eine Funktion send_data_via_bluetooth gibt, die Daten sendet
send_data_via_bluetooth(data, data_length);
// Auf die Antwort des Geräts warten, Daten empfangen
// Hier wird angenommen, dass es eine Funktion receive_data_via_bluetooth gibt, die Daten empfängt
receive_data_via_bluetooth();
const unsigned char* data = get_received_data();
int data_length = get_received_data_length();
// Daten analysieren
const char* result = inateck_scanner_cmd_get_affix_result(data, data_length);
if (result) {
printf("Get suffix success\n");
} else {
printf("Get suffix failed\n");
}
}
return 0;
}