German B4R - DoubleToBytes Problem

Zecke

Member
Licensed User
Longtime User
Hallo!

Ich habe Probleme beim Konvertieren von Datentypen. Ich muss ein Double nach Byte bringen da ich das per MQTT senden möchte. Aber ich erhalte nur kryptische Zeichen.
B4X:
Dim BC As ByteConverter
Dim dbl As Double = 10.00
Dim bytes() As Byte = BC.DoublesToBytes(Array As Double(dbl))
Log(bytes)

Grüße..
 

thetahsk

Active Member
Licensed User
Longtime User


Datentyp Double belegt 4 Bytes bei B4R/Arduino , will heissen das eine Flieskommazahl intern mit 4 Bytes gespeichert wird.
Die Anzeige der Bytes interpretiert man nur richtig, wenn man einen IEEE 754 Konverter in der Birne eingebaut hat oder mit dem ByteConverter.

B4X:
    Dim BC As ByteConverter
    Dim dbl As Double = 10.00
    Dim bytes() As Byte = BC.DoublesToBytes(Array As Double(dbl))
    Log(bytes(0),TAB,bytes(1),TAB,bytes(2),TAB,bytes(3))
   
    Dim b(4) As Byte
    Dim BC As ByteConverter
    BC.ArrayCopy2(bytes, 0, b, 0, 4)
    Dim d() As Double = BC.DoublesFromBytes(b)
    Log(d(0))     'Anzeige 10
 

Zecke

Member
Licensed User
Longtime User
Danke,

aufwändig für basic... Aber ich habe es etwas einfacher hingekriegt. B4R interpretiert Zahlen die man statt Strings angibt als String. Da kann man das also auch etwas einfacher machen:

B4X:
    Dim BC As ByteConverter
    Dim dbl As Double = 10.00
    Dim bytes() As Byte
    bytes = BC.StringToBytes(dbl) 'Die Double Var wird autom. nach String gewandelt...
    Log(bytes)

Grüße...
 
Top