- SGPropertyNode *bus_power;
-
- // inputs
- SGPropertyNode *power_btn;
- SGPropertyNode *nav_freq; // primary freq
- SGPropertyNode *nav_alt_freq; // standby freq
- SGPropertyNode *nav_sel_radial; // selected radial
- SGPropertyNode *nav_vol_btn;
- SGPropertyNode *nav_ident_btn;
- SGPropertyNode *audio_btn;
-
- // outputs
- SGPropertyNode *fmt_freq; // formated frequency
- SGPropertyNode *fmt_alt_freq; // formated alternate frequency
- SGPropertyNode *nav_heading; // true heading to nav station
- SGPropertyNode *nav_radial; // current radial we are on (taking
- // into consideration the vor station
- // alignment which likely doesn't
- // match the magnetic alignment
- // exactly.)
- SGPropertyNode *reciprocal_radial;
- // nav_radial + 180 (convenience value)
- SGPropertyNode *nav_target_radial_true;
- // true heading of selected radial
- SGPropertyNode *nav_target_auto_hdg;
- SGPropertyNode *nav_to_flag;
- SGPropertyNode *nav_from_flag;
- SGPropertyNode *nav_inrange;
- SGPropertyNode *nav_cdi_deflection;
- SGPropertyNode *nav_cdi_xtrack_error;
- SGPropertyNode *nav_has_gs;
- SGPropertyNode *nav_loc;
- SGPropertyNode *nav_loc_dist;
- SGPropertyNode *nav_gs_deflection;
- SGPropertyNode *nav_gs_rate_of_climb;
- SGPropertyNode *nav_gs_dist;
- SGPropertyNode *nav_id;
- SGPropertyNode *nav_id_c1;
- SGPropertyNode *nav_id_c2;
- SGPropertyNode *nav_id_c3;
- SGPropertyNode *nav_id_c4;
-
- // unfiled
- SGPropertyNode *nav_serviceable;
- SGPropertyNode *cdi_serviceable, *gs_serviceable, *tofrom_serviceable;
- SGPropertyNode *nav_slaved_to_gps;
- SGPropertyNode *gps_cdi_deflection, *gps_to_flag, *gps_from_flag;
+ SGPropertyNode *bus_power_node;
+
+ // property inputs
+ SGPropertyNode *is_valid_node; // is station data valid (may be way out
+ // of range.)
+ SGPropertyNode *power_btn_node;
+ SGPropertyNode *freq_node; // primary freq
+ SGPropertyNode *alt_freq_node; // standby freq
+ SGPropertyNode *sel_radial_node; // selected radial
+ SGPropertyNode *vol_btn_node;
+ SGPropertyNode *ident_btn_node;
+ SGPropertyNode *audio_btn_node;
+ SGPropertyNode *nav_serviceable_node;
+ SGPropertyNode *cdi_serviceable_node;
+ SGPropertyNode *gs_serviceable_node;
+ SGPropertyNode *tofrom_serviceable_node;
+
+ // property outputs
+ SGPropertyNode *fmt_freq_node; // formated frequency
+ SGPropertyNode *fmt_alt_freq_node; // formated alternate frequency
+ SGPropertyNode *heading_node; // true heading to nav station
+ SGPropertyNode *radial_node; // current radial we are on (taking
+ // into consideration the vor station
+ // alignment which likely doesn't
+ // match the magnetic alignment
+ // exactly.)
+ SGPropertyNode *recip_radial_node; // radial_node(val) + 180 (for
+ // convenience)
+ SGPropertyNode *target_radial_true_node;
+ // true heading of selected radial
+ SGPropertyNode *target_auto_hdg_node;
+ // suggested autopilot heading
+ // to intercept selected radial
+ SGPropertyNode *time_to_intercept; // estimated time to intecept selected
+ // radial at current speed and heading
+ SGPropertyNode *to_flag_node;
+ SGPropertyNode *from_flag_node;
+ SGPropertyNode *inrange_node;
+ SGPropertyNode *cdi_deflection_node;
+ SGPropertyNode *cdi_xtrack_error_node;
+ SGPropertyNode *cdi_xtrack_hdg_err_node;
+ SGPropertyNode *has_gs_node;
+ SGPropertyNode *loc_node;
+ SGPropertyNode *loc_dist_node;
+ SGPropertyNode *gs_deflection_node;
+ SGPropertyNode *gs_rate_of_climb_node;
+ SGPropertyNode *gs_dist_node;
+ SGPropertyNode *nav_id_node;
+ SGPropertyNode *id_c1_node;
+ SGPropertyNode *id_c2_node;
+ SGPropertyNode *id_c3_node;
+ SGPropertyNode *id_c4_node;
+
+ // gps slaving support
+ SGPropertyNode *nav_slaved_to_gps_node;
+ SGPropertyNode *gps_cdi_deflection_node;
+ SGPropertyNode *gps_to_flag_node;
+ SGPropertyNode *gps_from_flag_node;
+
+ // internal (private) values