2017-12-01 8 views
0

Unreal Engine (C++)Extract float32 von tarray <uint8>

Hallo, ich habe eine tarray von Bytes von TCP-Verbindung. Ich habe 58 Bytes Header und 12 x 4 Bytes Float32. Ich brauche die 12 float32 Zahlen von meinem Array Bytes, ich diesen Code versucht, die erste Zahl für die Extraktion habe zu extrahieren, aber das Ergebnis ist jedes Mal falsch:

float ReceivedUE4float32; 
ReceivedUE4float32 = float(ReceivedData[58]); //58 index of first float32 
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("Dato intdex 58 ~> %f"), ReceivedUE4float32)); 

Kann mir jemand helfen?

Sockel: https://github.com/openigtlink/OpenIGTLink/blob/release-3.0/Documents/Protocol/index.md

Transformation (12x4 Bytes): https://github.com/openigtlink/OpenIGTLink/blob/release-3.0/Documents/Protocol/transform.md

Antwort

0

float(ReceivedData[58]) wird dereferenzieren das 58th Byte aus ReceivedData und erstellen einen Schwimmer aus diesem Wert, der nicht das, was Sie wollen, ist.

können Sie reinterpret_cast verwenden, um die Daten zu lesen:

float value = *(reinterpret_cast<float*>(ReceivedData + 58)); 

Sie erwähnen nicht, welche Plattformen Sie zielen, aber bedenken Sie dies kümmert sich nicht um endianness.