Lesen der Mac-Adresse des Geräts


⚠️ Achtung: Dieses Dokument beschreibt, wie man die API des SDKs verwendet, um Geräteoperationen durchzuführen, 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. Lesen der Mac-Adresse des Geräts

Um die Mac-Adresse des Geräts zu lesen, müssen Sie den folgenden Bluetooth-Dienst und die folgende Charakteristik-UUID für die Operation write without response 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_get_mac();

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. Nachrichtenanalyse

Nachdem das Gerät geantwortet hat, können Sie die Daten mit der folgenden Methode analysieren:

const char* result = inateck_scanner_cmd_get_mac_result(data, data_length);

Das Ergebnis wird im JSON-Format zurückgegeben. Wenn der Aufruf erfolgreich ist, wird result zurückgegeben:

{
    "status": 0,
    "data": "00:11:22:33:44:55",
}

Wenn der Aufruf fehlschlägt, wird result zurückgegeben:

{
    "status": 1,
    "data": "",
}

Die Rückgabeparameter sind wie folgt:

3. Beispielcode

#include <stdio.h>
#include <string.h>
#include "inateck_scanner_cmd.h"

int main() {
    const char* result = inateck_scanner_cmd_get_mac();
    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
        unsigned char response[1024];
        int response_length = receive_data_via_bluetooth(response, sizeof(response));
        if (response_length > 0) {
            const char* result = inateck_scanner_cmd_get_mac_result(response, response_length);
            if (result) {
                // result ist im JSON-Format, Daten analysieren
                const unsigned char* data = (const unsigned char*)result;
                int data_length = strlen(result);
                printf("Mac-Adresse: %s\n", data);
            }
        }
    }
    return 0;
}