Konvertieren von Struct in Byte und zurück in Struct

Derzeit arbeite ich mit Arduino Unos, 9DOFs, und XBees, und ich war versucht, erstellen Sie eine struct, die gesendet werden könnten, über serial -, byte für byte, und dann re-konstruiert in ein struct.

Bisher habe ich folgenden code:

struct AMG_ANGLES {
    float yaw;
    float pitch;
    float roll;
};

int main() {
    AMG_ANGLES struct_data;

    struct_data.yaw = 87.96;
    struct_data.pitch = -114.58;
    struct_data.roll = 100.50;

    char* data = new char[sizeof(struct_data)];

    for(unsigned int i = 0; i<sizeof(struct_data); i++){
        //cout << (char*)(&struct_data+i) << endl;
        data[i] = (char*)(&struct_data+i); //Store the bytes of the struct to an array.
    }

    AMG_ANGLES* tmp = (AMG_ANGLES*)data; //Re-make the struct
    cout << tmp.yaw; //Display the yaw to see if it's correct.
}

Quelle: http://codepad.org/xMgxGY9Q

Dieser code scheint nicht zu funktionieren, und ich bin mir nicht sicher, was ich falsch mache.

Wie löse ich dieses?

InformationsquelleAutor der Frage Steven10172 | 2012-12-08

Schreibe einen Kommentar