Gerät verbinden¶
⚠️ Achtung: Dieses Dokument beschreibt, wie man die API des SDKs verwendet, um das Scan-Gerät zu bedienen, und bietet Beispielcode in C. Bitte beachten Sie, dass die API synchron arbeitet und den Hauptthread blockieren kann.
⚠️ Achtung: Vor der Verwendung der API müssen Sie das Gerät scannen und die
id
des zu verbindenden Geräts erhalten. Die genauen Schritte finden Sie unter Gerät scannen.
1. Gerät verbinden¶
Nachdem Sie die id
des Geräts erhalten haben, können Sie das Gerät mit der folgenden Methode verbinden:
const char* result = inateck_scanner_ble_connect(const char* device_id);
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"error": "",
"id": "device id",
"device_name": "device name",
"is_connected": "is connected"
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"error": "error message",
"id": "",
"device_name": "",
"is_connected": false
}
Das Ergebnis enthält die folgenden Felder:
id
: Die eindeutige Kennung der aktuellen Verbindung des Gerätsdevice_name
: Der Name des Gerätsis_connected
: Ob das Gerät verbunden ist
2. Überprüfen, ob Kommunikation möglich ist¶
Nach dem Verbinden des Geräts können Sie mit der folgenden Methode überprüfen, ob eine Kommunikation mit dem Gerät möglich ist:
const char* result = inateck_scanner_ble_check_communication(const char* device_id);
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"error": "",
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"error": "error message",
}
3. Konfigurationsrechte gewähren¶
Nach dem Verbinden des Geräts müssen Sie Konfigurationsrechte gewähren. Wenn keine Rechte gewährt werden, wird die Bluetooth-Verbindung des Scanners getrennt. Sie können die folgenden Methoden verwenden, um Konfigurationsrechte zu gewähren:
const char* result = inateck_scanner_ble_auth(const char* device_id);
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"error": "",
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"error": "error message",
}
4. Registrierung des Scan-Ergebnis-Callbacks¶
Registrieren Sie das Scan-Ergebnis-Callback. Wenn ein QR-Code gescannt wird, wird dieses Callback aufgerufen. Die Methode lautet wie folgt:
void callback(const char* scan_result) {
// scan_result ist die gescannte Barcode-Information
// Die Barcode-Information ist im JSON-Format
// {
// "status": 0,
// "code": "scan code",
// "source_code": "scan original code",
// "id": "device id",
// "device_name": "device name",
// }
}
const char* result = inateck_scanner_ble_set_code_callback(const char* device_id, callback);
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"error": "",
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"error": "error message",
}
Nach erfolgreicher Registrierung des Scan-Ergebnis-Callbacks wird die Callback-Funktion aufgerufen, wenn ein Barcode gescannt wird. Die Scan-Ergebnis-Informationen sind im JSON
-Format und enthalten die folgenden Parameter:
code
: Die gescannte Barcode-Information als UTF-8-codierter Stringsource_code
: Die gescannte Original-Barcode-Information als Hexadezimal-String. Wenn spezielle Zeichen enthalten sind, muss dassource_code
-Feld zur Analyse verwendet werden. Weitere Informationen finden Sie in der benutzerdefinierten Codetabelleid
: Die eindeutige Kennung der aktuellen Verbindung des Gerätsdevice_name
: Der Name des Geräts
5. Registrierung des Geräte-Trennungs-Callbacks¶
Registrieren Sie das Geräte-Trennungs-Callback. Wenn die Verbindung zum Gerät getrennt wird, wird dieses Callback aufgerufen. Die Methode lautet wie folgt:
void callback(const char* device_info) {
// device_info ist die Geräteinformation
// Die Geräteinformation ist im JSON-Format
// {
// "status": 0,
// "id": "device id",
// "device_name": "device name",
// "is_connected": "is connected",
// }
}
const char* result = inateck_scanner_ble_set_disconnect_callback(callback);
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"error": "",
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"error": "error message",
}
6. Gerät trennen¶
Trennen Sie die Verbindung zum Gerät. Nach dem Trennen werden die registrierten Scan-Ergebnis-Callbacks und Geräte-Trennungs-Callbacks nicht mehr aufgerufen. Die Methode lautet wie folgt:
const char* result = inateck_scanner_ble_disconnect(const char* device_id);
Das Ergebnis wird im JSON
-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result
zurückgegeben:
{
"status": 0,
"error": "",
}
Wenn der Aufruf fehlschlägt, wird result
zurückgegeben:
{
"status": 1,
"error": "error message",
}
7. Beispielcode¶
Hier ist ein vollständiger Beispielcode:
#include <stdio.h>
#include <inateck_scanner_ble.h>
void scan_callback(const char* scan_result) {
printf("Scan result: %s\n", scan_result);
}
void disconnect_callback(const char* device_info) {
printf("Device disconnect: %s\n", device_info);
}
int main() {
const char* device_id = "device id";
const char* result = inateck_scanner_ble_connect(device_id);
printf("Connect result: %s\n", result);
result = inateck_scanner_ble_check_communication(device_id);
printf("Check communication result: %s\n", result);
result = inateck_scanner_ble_auth(device_id);
printf("Auth result: %s\n", result);
result = inateck_scanner_ble_set_code_callback(device_id, scan_callback);
printf("Set code callback result: %s\n", result);
result = inateck_scanner_ble_set_disconnect_callback(disconnect_callback);
printf("Set disconnect callback result: %s\n", result);
sleep(10);
result = inateck_scanner_ble_disconnect(device_id);
printf("Disconnect result: %s\n", result);
return 0;
}