Android-App empfängt unlesbare BLE-Charakteristikbytes von ESP32 – wie packt und dekodiert man richtig? [geschlossen]Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Android-App empfängt unlesbare BLE-Charakteristikbytes von ESP32 – wie packt und dekodiert man richtig? [geschlossen]

Post by Anonymous »

Umgebung: Android (Kotlin)-Zentrale mit BluetoothGatt; ESP32-Peripheriegerät (Arduino BLE-Bibliothek).
Was ich getan habe: Angeschlossen und Benachrichtigungen aktiviert; Empfangen von Daten in onCharacteristicChanged().
Beobachtet: Benachrichtigungen ergeben Byte-Arrays wie [-6, 5, 0, 3, 0, 1, 108, ...] oder werden als [B@28c97a1; aktuelle Dekodierung (z. B. String(bytes)) liefert falsche Werte.
Erwartet: Deterministische Sensorwerte (int/float oder UTF-8-String), die mit der ESP32-Ausgabe übereinstimmen.
Aktuelles ESP32-Verhalten: Eigenschaft mit PROPERTY_NOTIFY/PROPERTY_WRITE konfiguriert und schreibt Binärdaten (fügen Sie beim Antworten nur minimalen Schreibcode ein).
Aktueller Android-Code: minimales onCharacteristicChanged()-Snippet (einfügen, wenn Beantwortung), die Bytes druckt oder konvertiert.
Spezifische Frage: Minimale Codeänderungen für beide Seiten anzeigen:
Auf ESP32: Wie packe ich einen einzelnen Wert (wähle einen von: Little-Endian int16/int32, IEEE754 float oder UTF-8-String) und sende ihn per Merkmalsbenachrichtigung.
Auf Android: Wie liest man das benachrichtigte Byte[] und dekodiert es zuverlässig (Beispiel: Kotlin mit). ByteBuffer mit expliziter Endianness oder Dekodierung von UTF-8) und wie man rohes Hex für das Debuggen protokolliert.
Bitte stellen Sie das minimale ESP32-Sende-Snippet und das passende Kotlin onCharacteristicChanged()-Dekodierungs-Snippet für das empfohlene Format bereit (wählen Sie ein Format aus und zeigen Sie beide Seiten an).

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post