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:

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:

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;
}

8. Beispielcode in anderen Sprachen