J
jdajul
Ambitioniertes Mitglied
- 1
Hallo, ich möchte gern über Bluetooth Steuerbefehle an ein existierendes System schicken. Das funktioniert soweit auch. Ich möchte jetzt jedoch eine Float variable über bluetooth schicken. Dieser Float-Wert muss als Byte-Quadrupel formatiert werden. Dazu habe ich die folgende Methode genutzt:
public static byte[] convertFloatToByteArray(float value) {
return ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putFloat(value).array();
}
Das Ergebnis dieser Methode wird dann über Bluetooth an den Mikroprozessor (Atmel atmega) geschickt, führt jedoch nicht den richtigen Befehl aus. Obwohl Befehle, welche direkt als Byte-Array vorliegen funktionieren. Kann es sein, dass in C eine andere Definition eines Float-Wertes vorliegt, sodass der Java-Float-Wert nicht der selbe ist, wie der im Atmega?
Wenn ja, wie?
Viele Grüße
jdajul
public static byte[] convertFloatToByteArray(float value) {
return ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putFloat(value).array();
}
Das Ergebnis dieser Methode wird dann über Bluetooth an den Mikroprozessor (Atmel atmega) geschickt, führt jedoch nicht den richtigen Befehl aus. Obwohl Befehle, welche direkt als Byte-Array vorliegen funktionieren. Kann es sein, dass in C eine andere Definition eines Float-Wertes vorliegt, sodass der Java-Float-Wert nicht der selbe ist, wie der im Atmega?
Wenn ja, wie?
Viele Grüße
jdajul