]> git.mxchange.org Git - flightgear.git/commitdiff
Switch to "nav" (cooked) data to drive FlightGear.
authorcurt <curt>
Tue, 27 Feb 2007 19:45:48 +0000 (19:45 +0000)
committercurt <curt>
Tue, 27 Feb 2007 19:45:48 +0000 (19:45 +0000)
utils/GPSsmooth/UGear.cxx
utils/GPSsmooth/UGear_main.cxx

index ae0adc4134e7ed2f7879a045a510f50ec3ac6936..7046e8c61fc1e2a812b9a8a21c443947e6084a2f 100644 (file)
@@ -120,8 +120,8 @@ void UGEARTrack::parse_msg( const int id, char *buf,
       // printf("imu.time = %.4f\n", imupacket->time);
     } else if ( id == NAV_PACKET ) {
       *navpacket = *(struct nav *)buf;
-      navpacket->lon  = sg_swap_double( (uint8_t *)buf, 0 );
-      navpacket->lat  = sg_swap_double( (uint8_t *)buf, 8 );
+      navpacket->lat  = sg_swap_double( (uint8_t *)buf, 0 );
+      navpacket->lon  = sg_swap_double( (uint8_t *)buf, 8 );
       navpacket->alt  = sg_swap_double( (uint8_t *)buf, 16 );
       navpacket->vn   = sg_swap_double( (uint8_t *)buf, 24 );
       navpacket->ve   = sg_swap_double( (uint8_t *)buf, 32 );
index a4513560d87b828905139cd441d451708e4c971a..46db91823e98a719ec64b79cef1e75ac64ff67d0 100644 (file)
@@ -121,9 +121,9 @@ static void ugear2fg( gps *gpspacket, imu *imupacket, nav *navpacket,
     fdm->version = FG_NET_FDM_VERSION;
 
     // Aero parameters
-    fdm->longitude = gpspacket->lon * SG_DEGREES_TO_RADIANS;
-    fdm->latitude = gpspacket->lat * SG_DEGREES_TO_RADIANS;
-    fdm->altitude = gpspacket->alt + alt_offset;
+    fdm->longitude = navpacket->lon * SG_DEGREES_TO_RADIANS;
+    fdm->latitude = navpacket->lat * SG_DEGREES_TO_RADIANS;
+    fdm->altitude = navpacket->alt + alt_offset;
     fdm->agl = -9999.0;
     fdm->psi = imupacket->psi; // heading
     fdm->phi = imupacket->phi; // roll
@@ -140,9 +140,12 @@ static void ugear2fg( gps *gpspacket, imu *imupacket, nav *navpacket,
     // double v_ms = dist / (frame_us / 1000000);
     // double v_kts = v_ms * SG_METER_TO_NM * 3600;
     // kts_filter = (0.99 * kts_filter) + (0.01 * v_kts);
-    double vn = gpspacket->vn;
-    double ve = gpspacket->ve;
-    double vd = gpspacket->vd;
+    double vn = navpacket->vn;
+    double ve = navpacket->ve;
+    double vd = navpacket->vd;
+
+    // enable to use ground track heading
+    fdm->psi = atan2(vn, ve); // heading
 
     fdm->vcas = sqrt( vn*vn + ve*ve + vd*vd );
     // last_lat = pos.lat_deg;