LED-Steuerung¶
⚠️ Achtung: Dieses Dokument beschreibt, wie man die API des SDKs verwendet, um das Scan-Gerät zu steuern, und bietet Beispielcode in C. Beachten Sie, dass die API synchron arbeitet und den Hauptthread blockieren kann.
⚠️ Achtung: Vor der Verwendung der API muss das Gerät verbunden werden. Die genauen Schritte finden Sie unter Gerät verbinden.
1. Befehl schreiben¶
Um die LED des Scan-Geräts zu steuern, müssen Sie den folgenden Bluetooth-Dienst und die folgenden Charakteristik-UUIDs für die write without response
-Operation verwenden:
Bluetooth | UUID |
---|---|
Dienst | 0x0000ff0000001000800000805f9b34fb |
Charakteristik | 0x0000ff0400001000800000805f9b34fb |
Verwenden Sie den folgenden Befehl, um die Daten der Charakteristik zu schreiben:
const char* result = inateck_scanner_cmd_set_led(led_color, light_time, dark_time, led_count);
Eingabeparameter:
led_color
ist die Farbe der LED, Grün ist 2, Blau ist 3, Gelb ist 4.light_time
ist die Leuchtdauer der LED in 20 Millisekunden.dark_time
ist die Dunkelzeit der LED in 20 Millisekunden.led_count
ist die Anzahl der LED-Zyklen.
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, gibt result
zurück:
{
"status": 0,
"data": [0, 1, 2, 3],
}
Wenn der Aufruf fehlschlägt, gibt result
zurück:
{
"status": 1,
"data": [],
}
2. Nachricht analysieren¶
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, gibt result
0
zurück. Wenn der Aufruf fehlschlägt, gibt result
1
zurück.
3. Beispielcode¶
#include <stdio.h>
#include <string.h>
#include "inateck_scanner_cmd.h"
int main() {
const char* result = inateck_scanner_cmd_set_led(3, 10, 10, 10);
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 led success\n");
} else {
printf("Set led failed\n");
}
}
return 0;
}