X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FInstrumentation%2Fgps.hxx;h=fb068ac7bcf1e69afc87d861f2d585208cb5c70a;hb=f3dd7c363cbb333b6ab99b44f6a237cb7852d420;hp=78025aae26da4ae6d4a306a9c06f48066ad48864;hpb=2119db35c3f596268e2ee21d3cd8c359a85cd1ed;p=flightgear.git diff --git a/src/Instrumentation/gps.hxx b/src/Instrumentation/gps.hxx index 78025aae2..fb068ac7b 100644 --- a/src/Instrumentation/gps.hxx +++ b/src/Instrumentation/gps.hxx @@ -12,8 +12,8 @@ #endif #include - -#include
+#include +#include /** @@ -27,21 +27,47 @@ * /environment/magnetic-variation-deg * /systems/electrical/outputs/gps * /instrumentation/gps/serviceable + * + * /instrumentation/gps/wp-longitude-deg + * /instrumentation/gps/wp-latitude-deg + * /instrumentation/gps/wp-altitude-ft + * /instrumentation/gps/wp-ID + * /instrumentation/gps/wp-name + * /instrumentation/gps/desired-course-deg + * /instrumentation/gps/get-nearest-airport + * /instrumentation/gps/waypoint-type + * /instrumentation/gps/tracking-bug * * Output properties: * * /instrumentation/gps/indicated-longitude-deg * /instrumentation/gps/indicated-latitude-deg * /instrumentation/gps/indicated-altitude-ft + * /instrumentation/gps/indicated-vertical-speed-fpm * /instrumentation/gps/indicated-track-true-deg * /instrumentation/gps/indicated-track-magnetic-deg * /instrumentation/gps/indicated-ground-speed-kt + * + * /instrumentation/gps/wp-distance-nm + * /instrumentation/gps/wp-bearing-deg + * /instrumentation/gps/wp-bearing-mag-deg + * /instrumentation/gps/TTW + * /instrumentation/gps/course-deviation-deg + * /instrumentation/gps/course-error-nm + * /instrumentation/gps/to-flag + * /instrumentation/gps/odometer + * /instrumentation/gps/trip-odometer + * /instrumentation/gps/true-bug-error-deg + * /instrumentation/gps/magnetic-bug-error-deg + * /instrumentation/gps/true-bearing-error-deg + * /instrumentation/gps/magnetic-bearing-error-deg */ -class GPS : public FGSubsystem +class GPS : public SGSubsystem { public: + GPS (SGPropertyNode *node); GPS (); virtual ~GPS (); @@ -59,19 +85,95 @@ private: SGPropertyNode_ptr _magvar_node; SGPropertyNode_ptr _serviceable_node; SGPropertyNode_ptr _electrical_node; + SGPropertyNode_ptr _wp0_longitude_node; + SGPropertyNode_ptr _wp0_latitude_node; + SGPropertyNode_ptr _wp0_altitude_node; + SGPropertyNode_ptr _wp0_ID_node; + SGPropertyNode_ptr _wp0_name_node; + SGPropertyNode_ptr _wp0_course_node; + SGPropertyNode_ptr _get_nearest_airport_node; + SGPropertyNode_ptr _wp0_waypoint_type_node; + SGPropertyNode_ptr _wp1_longitude_node; + SGPropertyNode_ptr _wp1_latitude_node; + SGPropertyNode_ptr _wp1_altitude_node; + SGPropertyNode_ptr _wp1_ID_node; + SGPropertyNode_ptr _wp1_name_node; + SGPropertyNode_ptr _wp1_course_node; + SGPropertyNode_ptr _wp1_waypoint_type_node; + SGPropertyNode_ptr _tracking_bug_node; SGPropertyNode_ptr _raim_node; SGPropertyNode_ptr _indicated_longitude_node; SGPropertyNode_ptr _indicated_latitude_node; SGPropertyNode_ptr _indicated_altitude_node; + SGPropertyNode_ptr _indicated_vertical_speed_node; SGPropertyNode_ptr _true_track_node; SGPropertyNode_ptr _magnetic_track_node; SGPropertyNode_ptr _speed_node; + SGPropertyNode_ptr _wp0_distance_node; + SGPropertyNode_ptr _wp0_ttw_node; + SGPropertyNode_ptr _wp0_bearing_node; + SGPropertyNode_ptr _wp0_mag_bearing_node; + SGPropertyNode_ptr _wp0_course_deviation_node; + SGPropertyNode_ptr _wp0_course_error_nm_node; + SGPropertyNode_ptr _wp0_to_flag_node; + SGPropertyNode_ptr _wp1_distance_node; + SGPropertyNode_ptr _wp1_ttw_node; + SGPropertyNode_ptr _wp1_bearing_node; + SGPropertyNode_ptr _wp1_mag_bearing_node; + SGPropertyNode_ptr _wp1_course_deviation_node; + SGPropertyNode_ptr _wp1_course_error_nm_node; + SGPropertyNode_ptr _wp1_to_flag_node; + SGPropertyNode_ptr _odometer_node; + SGPropertyNode_ptr _trip_odometer_node; + SGPropertyNode_ptr _true_bug_error_node; + SGPropertyNode_ptr _magnetic_bug_error_node; + SGPropertyNode_ptr _true_wp0_bearing_error_node; + SGPropertyNode_ptr _magnetic_wp0_bearing_error_node; + SGPropertyNode_ptr _true_wp1_bearing_error_node; + SGPropertyNode_ptr _magnetic_wp1_bearing_error_node; + SGPropertyNode_ptr _leg_distance_node; + SGPropertyNode_ptr _leg_course_node; + SGPropertyNode_ptr _leg_magnetic_course_node; + SGPropertyNode_ptr _alt_dist_ratio_node; + SGPropertyNode_ptr _leg_course_deviation_node; + SGPropertyNode_ptr _leg_course_error_nm_node; + SGPropertyNode_ptr _leg_to_flag_node; + SGPropertyNode_ptr _alt_deviation_node; + + SGPropertyNode_ptr _route; + SGPropertyNode_ptr addWp; + SGPropertyNode_ptr popWp; + + SGRoute *route; bool _last_valid; double _last_longitude_deg; double _last_latitude_deg; double _last_altitude_m; + double _last_speed_kts; + + double _wp0_latitude_deg; + double _wp0_longitude_deg; + double _wp0_altitude_m; + double _wp1_latitude_deg; + double _wp1_longitude_deg; + double _wp1_altitude_m; + string _last_wp0_ID; + string _last_wp1_ID; + + double _alt_dist_ratio; + double _distance_m; + double _course_deg; + + double bias_length; + double bias_angle; + double azimuth_error; + double range_error; + double elapsed_time; + + string name; + int num; };