diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2017-04-07 21:33:10 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2017-04-07 21:33:23 +0200 |
commit | db7248a6de07e7dacac24e1f59afe7e6fe45ba9c (patch) | |
tree | bdbc95c18d343f7d887d2d0fe1527329ff3d5d06 /proto-fg/ftnoir_protocol_fg.cpp | |
parent | f3db1699d62fdf1dafa511373990f4d44b4d4510 (diff) |
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
Diffstat (limited to 'proto-fg/ftnoir_protocol_fg.cpp')
-rw-r--r-- | proto-fg/ftnoir_protocol_fg.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
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() |