Geräte scannen¶
⚠️ Achtung: Dieses Dokument beschreibt, wie man die API des SDKs verwendet, um Geräte zu scannen, und bietet Beispielcode in C. Beachten Sie, dass die API synchron arbeitet und den Hauptthread blockieren kann.
1. SDK initialisieren¶
Bevor Sie die Funktionen des SDKs verwenden können, müssen Sie das SDK initialisieren. Methode:
const char* result = inateck_scanner_ble_init();
Das Ergebnis wird im JSON
-Format zurückgegeben. Bei erfolgreichem Aufruf gibt result
zurück:
{
"status": 0,
"error": ""
}
Bei einem Fehler gibt result
zurück:
{
"status": 1,
"error": "Fehlermeldung"
}
2. Sicherstellen, dass Bluetooth aktiviert ist¶
Bevor Sie Geräte scannen, müssen Sie sicherstellen, dass Bluetooth aktiviert ist. Wenn Bluetooth nicht aktiviert ist, können keine Geräte gescannt werden. Diese Operation ist synchron und kann den Hauptthread blockieren. Methode:
const char* result = inateck_scanner_ble_wait_available();
Das Ergebnis wird im JSON
-Format zurückgegeben. Bei erfolgreichem Aufruf gibt result
zurück:
{
"status": 0,
"error": ""
}
Bei einem Fehler gibt result
zurück:
{
"status": 1,
"error": "Fehlermeldung"
}
3. Scan-Callback registrieren¶
Registrieren Sie einen Scan-Callback, der aufgerufen wird, wenn ein Gerät gefunden wird. Methode:
void callback(const char* device_info_json) {
// device_info_json enthält die Informationen des gefundenen Geräts im folgenden Format:
// {
// "id": "Geräte-ID",
// "device_name": "Gerätename",
// "is_connected": "ist verbunden",
// }
}
const char* result = inateck_scanner_ble_set_discover_callback(callback);
Das Ergebnis wird im JSON
-Format zurückgegeben. Bei erfolgreichem Aufruf gibt result
zurück:
{
"status": 0,
"error": ""
}
Bei einem Fehler gibt result
zurück:
{
"status": 1,
"error": "Fehlermeldung"
}
Nach erfolgreicher Registrierung des Scan-Callbacks wird die Callback-Funktion aufgerufen, wenn ein Gerät gefunden wird. Die Geräteinformationen sind im JSON
-Format und enthalten folgende Parameter:
id
: Eindeutiger Bezeichner der aktuellen Verbindung des Geräts, wird für spätere Verbindungen und Konfigurationen benötigtdevice_name
: Gerätenameis_connected
: Ob das Gerät verbunden ist
4. Geräte scannen starten¶
Starten Sie den Scanvorgang. Wenn ein Gerät gefunden wird, wird der registrierte Scan-Callback aufgerufen. Bereits verbundene HID-Geräte werden ebenfalls gescannt.
⚠️ Stellen Sie sicher, dass der Scan-Callback registriert ist.
⚠️ Unter
Windows
müssen Sie aufgrund von Systembeschränkungen das HID-Gerät zuerst über die Bluetooth-Geräteseite vonWindows
verbinden und dann über diese API scannen, um das Gerät zu finden.
Methode:
const char* result = inateck_scanner_ble_start_discover();
Das Ergebnis wird im JSON
-Format zurückgegeben. Bei erfolgreichem Aufruf gibt result
zurück:
{
"status": 0,
"error": ""
}
Bei einem Fehler gibt result
zurück:
{
"status": 1,
"error": "Fehlermeldung"
}
5. Geräte scannen stoppen¶
Stoppen Sie den Scanvorgang. Nach dem Stoppen wird der registrierte Scan-Callback nicht mehr aufgerufen. Methode:
const char* result = inateck_scanner_ble_stop_discover();
Das Ergebnis wird im JSON
-Format zurückgegeben. Bei erfolgreichem Aufruf gibt result
zurück:
{
"status": 0,
"error": ""
}
Bei einem Fehler gibt result
zurück:
{
"status": 1,
"error": "Fehlermeldung"
}
6. Geräteliste abrufen¶
Abrufen der Liste der gescannten Geräte. Methode:
const char* result = inateck_scanner_ble_get_device_list();
Das Ergebnis wird im JSON
-Format zurückgegeben. Bei erfolgreichem Aufruf gibt result
zurück:
{
"status": 0,
"error": "",
"device_list": [
{
"id": "Geräte-ID",
"device_name": "Gerätename",
"is_connected": "ist verbunden",
},
{
"id": "Geräte-ID",
"device_name": "Gerätename",
"is_connected": "ist verbunden",
}
]
}
Bei einem Fehler gibt result
zurück:
{
"status": 1,
"error": "Fehlermeldung",
"device_list": []
}
7. Beispielcode¶
Hier ist ein vollständiger Beispielcode:
#include <stdio.h>
#include <inateck_scanner_ble.h>
void callback(const char* device_info_json) {
printf("device_info_json: %s\n", device_info_json);
}
int main() {
const char* result = inateck_scanner_ble_init();
printf("inateck_scanner_ble_init: %s\n", result);
result = inateck_scanner_ble_wait_available();
printf("inateck_scanner_ble_wait_available: %s\n", result);
result = inateck_scanner_ble_set_discover_callback(callback);
printf("inateck_scanner_ble_set_discover_callback: %s\n", result);
result = inateck_scanner_ble_start_discover();
printf("inateck_scanner_ble_start_discover: %s\n", result);
// Warten auf das Scannen von Geräten
sleep(10);
result = inateck_scanner_ble_stop_discover();
printf("inateck_scanner_ble_stop_discover: %s\n", result);
result = inateck_scanner_ble_get_device_list();
printf("inateck_scanner_ble_get_device_list: %s\n", result);
return 0;
}