From db7248a6de07e7dacac24e1f59afe7e6fe45ba9c Mon Sep 17 00:00:00 2001 From: Stanislaw Halik <sthalik@misaki.pl> Date: Fri, 7 Apr 2017 21:33:10 +0200 Subject: proto/flightgear: few issues - move fgtypes.h contents into module header - fix several inverted DOF - construct a 32-bit ipv4 address from nibblets directly - switch to no alignment for the datagram, was 2 bytes - default to 127.0.0.1 as the target address Issue: #590 --- proto-fg/ftnoir_protocol_fg.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'proto-fg/ftnoir_protocol_fg.cpp') diff --git a/proto-fg/ftnoir_protocol_fg.cpp b/proto-fg/ftnoir_protocol_fg.cpp index 3df51c3e..3e0f955c 100644 --- a/proto-fg/ftnoir_protocol_fg.cpp +++ b/proto-fg/ftnoir_protocol_fg.cpp @@ -14,20 +14,15 @@ // For Todd and Arda Kutlu void flightgear::pose(const double* headpose) { - FlightData.x = headpose[TX] * 1e-2; + FlightData.x = -headpose[TX] * 1e-2; FlightData.y = headpose[TY] * 1e-2; FlightData.z = headpose[TZ] * 1e-2; FlightData.p = headpose[Pitch]; - FlightData.h = headpose[Yaw]; - FlightData.r = headpose[Roll]; + FlightData.h = -headpose[Yaw]; + FlightData.r = -headpose[Roll]; FlightData.status = 1; - QHostAddress destIP(QString("%1.%2.%3.%4").arg( - QString::number(static_cast<int>(s.ip1)), - QString::number(static_cast<int>(s.ip2)), - QString::number(static_cast<int>(s.ip3)), - QString::number(static_cast<int>(s.ip4)))); - int destPort = s.port; - (void) outSocket.writeDatagram(reinterpret_cast<const char*>(&FlightData), sizeof(FlightData), destIP, static_cast<quint16>(destPort)); + QHostAddress destIP(quint32(s.ip1 << 24 | s.ip2 << 16 | s.ip3 << 8 | s.ip4)); + (void) outSocket.writeDatagram(reinterpret_cast<const char*>(&FlightData), sizeof(FlightData), destIP, static_cast<quint16>(s.port)); } bool flightgear::correct() -- cgit v1.2.3