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