private void Save_Button_Click(object sender, EventArgs e) { isOpened = false; //Parse the fields, verify coordinate format, and save to Current_Mission Interoperability.getinstance().Current_Mission = new Mission(Parse_Mission()); this.Close(); }
public static List <Waypoint> DMSwithAltitudetoWaypoints(string DMS) { List <Waypoint> Waypoint_List = new List <Waypoint>(); //If string is empty, then don't do anything if (DMS.Replace(" ", "") == "") { return(Waypoint_List); } Waypoint Temp_Waypoint; char[] delimiterChars = { ' ' }; DMS = DMS.Replace("\r\n", " ").Replace("\r", "").Replace("\n", " "); string[] DMS_SPLIT = DMS.Split(delimiterChars); List <string> DMS_FILTERED = new List <string>(); //Filter out all the "" items for (int i = 0; i < DMS_SPLIT.Count(); i++) { if (DMS_SPLIT[i] != "") { DMS_FILTERED.Add(DMS_SPLIT[i]); } } int num_pairs = DMS_FILTERED.Count / 3; try { for (int i = 0; i < num_pairs; i++) { Temp_Waypoint = Interoperability.DMStoDD(DMS_FILTERED[i * 3], DMS_FILTERED[i * 3 + 1]); if (Temp_Waypoint.empty == false) { Temp_Waypoint.altitude_msl = (float)Convert.ToDouble(DMS_FILTERED[i * 3 + 2]); Waypoint_List.Add(Temp_Waypoint); } } } catch { //Do nothing } return(Waypoint_List); }
public static List <Waypoint> DMStoWaypoints(string DMS) { List <Waypoint> Waypoint_List = new List <Waypoint>(); //If string is empty, then don't do anything if (DMS.Replace(" ", "") == "") { return(Waypoint_List); } Waypoint Temp_Waypoint; char[] delimiterChars = { ' ' }; DMS = DMS.Replace("\r\n", " ").Replace("\r", "").Replace("\n", " "); string[] DMS_SPLIT = DMS.Split(delimiterChars); List <string> DMS_FILTERED = new List <string>(); //Filter out all the "" items for (int i = 0; i < DMS_SPLIT.Count(); i++) { if (DMS_SPLIT[i] != "") { DMS_FILTERED.Add(DMS_SPLIT[i]); } } int num_pairs = DMS_FILTERED.Count / 2; for (int i = 0; i < num_pairs; i++) { Temp_Waypoint = Interoperability.DMStoDD(DMS_FILTERED[i * 2], DMS_FILTERED[i * 2 + 1]); if (Temp_Waypoint.empty == false) { Waypoint_List.Add(Temp_Waypoint); } } return(Waypoint_List); }
// Done! private void MainWindow_MouseDown(object sender, MouseButtonEventArgs e) { Interoperability.SendMessage(new WindowInteropHelper(this).Handle, 0xA1, 0x2, 0); }
private void Interoperability_Mission_Import_Shown(object sender, EventArgs e) { isOpened = true; Map_Overlay = new GMapOverlay("Map_Overlay"); FlyZone_Textbox.Text = ""; Search_Area_Textbox.Text = ""; Waypoint_Textbox.Text = ""; Mission_Name_Textbox.Text = Interoperability.getinstance().Current_Mission.name; if (Interoperability.getinstance().Settings["geo_cords"] == "DD.DDDDDD") { for (int i = 0; i < Interoperability.getinstance().Current_Mission.fly_zones.Count; i++) { FlyZone_Select_Combobox.Items.Insert(i, Interoperability.getinstance().Current_Mission.fly_zones[i].name); Max_Alt_MSL_List.Add(Interoperability.getinstance().Current_Mission.fly_zones[i].altitude_msl_max); Min_Alt_MSL_List.Add(Interoperability.getinstance().Current_Mission.fly_zones[i].altitude_msl_min); Border_Colour_List.Add(Interoperability.getinstance().Current_Mission.fly_zones[i].border_color); Fill_Colour_List.Add(Interoperability.getinstance().Current_Mission.fly_zones[i].fill_color); FlyZone_List.Add(""); for (int j = 0; j < Interoperability.getinstance().Current_Mission.fly_zones[0].boundary_pts.Count; j++) { FlyZone_List[i] += Interoperability.getinstance().Current_Mission.fly_zones[i].boundary_pts[j].latitude.ToString("00.000000"); FlyZone_List[i] += " "; FlyZone_List[i] += Interoperability.getinstance().Current_Mission.fly_zones[i].boundary_pts[j].longitude.ToString("00.000000") + "\r\n"; } } for (int i = 0; i < Interoperability.getinstance().Current_Mission.search_grid_points.Count; i++) { Search_Area_Textbox.AppendText(Interoperability.getinstance().Current_Mission.search_grid_points[i].latitude.ToString("00.000000")); Search_Area_Textbox.AppendText(" "); Search_Area_Textbox.AppendText(Interoperability.getinstance().Current_Mission.search_grid_points[i].longitude.ToString("00.000000") + "\r\n"); } for (int i = 0; i < Interoperability.getinstance().Current_Mission.mission_waypoints.Count; i++) { Waypoint_Textbox.AppendText(Interoperability.getinstance().Current_Mission.mission_waypoints[i].latitude.ToString("00.000000")); Waypoint_Textbox.AppendText(" "); Waypoint_Textbox.AppendText(Interoperability.getinstance().Current_Mission.mission_waypoints[i].longitude.ToString("00.000000")); Waypoint_Textbox.AppendText(" "); Waypoint_Textbox.AppendText(Interoperability.getinstance().Current_Mission.mission_waypoints[i].altitude_msl.ToString("000") + "\r\n"); } if (Interoperability.getinstance().Current_Mission.air_drop_pos.latitude != 0 || Interoperability.getinstance().Current_Mission.air_drop_pos.longitude != 0) { Airdrop_Textbox.Text = Interoperability.getinstance().Current_Mission.air_drop_pos.latitude.ToString("00.000000") + " " + Interoperability.getinstance().Current_Mission.air_drop_pos.longitude.ToString("00.000000"); } if (Interoperability.getinstance().Current_Mission.emergent_last_known_pos.latitude != 0 || Interoperability.getinstance().Current_Mission.emergent_last_known_pos.longitude != 0) { Emergent_Target_Textbox.Text = Interoperability.getinstance().Current_Mission.emergent_last_known_pos.latitude.ToString("00.000000") + " " + Interoperability.getinstance().Current_Mission.emergent_last_known_pos.longitude.ToString("00.000000"); } if (Interoperability.getinstance().Current_Mission.off_axis_target_pos.latitude != 0 || Interoperability.getinstance().Current_Mission.off_axis_target_pos.longitude != 0) { Off_Axis_Target_Textbox.Text = Interoperability.getinstance().Current_Mission.off_axis_target_pos.latitude.ToString("00.000000") + " " + Interoperability.getinstance().Current_Mission.off_axis_target_pos.longitude.ToString("00.000000"); } } else { for (int i = 0; i < Interoperability.getinstance().Current_Mission.fly_zones.Count; i++) { FlyZone_Select_Combobox.Items.Insert(i, Interoperability.getinstance().Current_Mission.fly_zones[i].name); Max_Alt_MSL_List.Add(Interoperability.getinstance().Current_Mission.fly_zones[i].altitude_msl_max); Min_Alt_MSL_List.Add(Interoperability.getinstance().Current_Mission.fly_zones[i].altitude_msl_min); Border_Colour_List.Add(Interoperability.getinstance().Current_Mission.fly_zones[i].border_color); Fill_Colour_List.Add(Interoperability.getinstance().Current_Mission.fly_zones[i].fill_color); FlyZone_List.Add(""); for (int j = 0; j < Interoperability.getinstance().Current_Mission.fly_zones[0].boundary_pts.Count; j++) { FlyZone_List[i] += Interoperability.DDtoDMS(Interoperability.getinstance().Current_Mission.fly_zones[i].boundary_pts[j].latitude, Interoperability.getinstance().Current_Mission.fly_zones[i].boundary_pts[j].longitude) + "\r\n"; } } for (int i = 0; i < Interoperability.getinstance().Current_Mission.search_grid_points.Count; i++) { Search_Area_Textbox.AppendText(Interoperability.DDtoDMS(Interoperability.getinstance().Current_Mission.search_grid_points[i].latitude, Interoperability.getinstance().Current_Mission.search_grid_points[i].longitude) + "\r\n"); } for (int i = 0; i < Interoperability.getinstance().Current_Mission.mission_waypoints.Count; i++) { Waypoint_Textbox.AppendText(Interoperability.DDtoDMS(Interoperability.getinstance().Current_Mission.mission_waypoints[i].latitude, Interoperability.getinstance().Current_Mission.mission_waypoints[i].longitude)); Waypoint_Textbox.AppendText(" "); Waypoint_Textbox.AppendText(Interoperability.getinstance().Current_Mission.mission_waypoints[i].altitude_msl.ToString("000") + "\r\n"); } if (Interoperability.getinstance().Current_Mission.air_drop_pos.latitude != 0 || Interoperability.getinstance().Current_Mission.air_drop_pos.longitude != 0) { Airdrop_Textbox.Text = Interoperability.DDtoDMS(Interoperability.getinstance().Current_Mission.air_drop_pos.latitude, Interoperability.getinstance().Current_Mission.air_drop_pos.longitude); } if (Interoperability.getinstance().Current_Mission.emergent_last_known_pos.latitude != 0 || Interoperability.getinstance().Current_Mission.emergent_last_known_pos.longitude != 0) { Emergent_Target_Textbox.Text = Interoperability.DDtoDMS(Interoperability.getinstance().Current_Mission.emergent_last_known_pos.latitude, Interoperability.getinstance().Current_Mission.emergent_last_known_pos.longitude); } if (Interoperability.getinstance().Current_Mission.off_axis_target_pos.latitude != 0 || Interoperability.getinstance().Current_Mission.off_axis_target_pos.longitude != 0) { Off_Axis_Target_Textbox.Text = Interoperability.DDtoDMS(Interoperability.getinstance().Current_Mission.off_axis_target_pos.latitude, Interoperability.getinstance().Current_Mission.off_axis_target_pos.longitude); } } FlyZone_Index_Changed_doNothing = true; FlyZone_Select_Combobox.SelectedIndex = 0; FlyZone_Index_Changed_doNothing = false; Max_Alt_MSL_Index = 0; Min_Alt_MSL_Index = 0; Max_Alt_MSL_Box.Value = Convert.ToDecimal(Max_Alt_MSL_List[0]); Min_Alt_MSL_Box.Value = Convert.ToDecimal(Min_Alt_MSL_List[0]); FlyZone_Textbox.Text = FlyZone_List[0]; }
private Mission Parse_Mission() { Mission Parsed_Misison = new Mission(); string Search_Area_Text, Waypoint_Text, Emergent_Target_Text, Airdrop_Text, Off_Axis_target_Text; FlyZone_List[FlyZone_Select_Combobox.SelectedIndex] = FlyZone_Textbox.Text; Search_Area_Text = Search_Area_Textbox.Text; Waypoint_Text = Waypoint_Textbox.Text; Emergent_Target_Text = Emergent_Target_Textbox.Text; Airdrop_Text = Airdrop_Textbox.Text; Off_Axis_target_Text = Off_Axis_Target_Textbox.Text; if (Interoperability.getinstance().Settings["geo_cords"] == "DD.DDDDDD") { Parsed_Misison.fly_zones.Clear(); for (int i = 0; i < FlyZone_List.Count; i++) { Parsed_Misison.fly_zones.Add(new FlyZone(Max_Alt_MSL_List[i], Min_Alt_MSL_List[i], DDtoWaypoints(FlyZone_List[i]), Border_Colour_List[i], Fill_Colour_List[i])); } //Add Search Areas Parsed_Misison.search_grid_points = DDtoWaypoints(Search_Area_Text); //Add Waypoints Parsed_Misison.mission_waypoints = DDwithAltitudetoWaypoints(Waypoint_Text); if (DDtoWaypoints(Emergent_Target_Text).Count != 0) { Parsed_Misison.emergent_last_known_pos.latitude = DDtoWaypoints(Emergent_Target_Text)[0].latitude; Parsed_Misison.emergent_last_known_pos.longitude = DDtoWaypoints(Emergent_Target_Text)[0].longitude; } if (DDtoWaypoints(Airdrop_Text).Count != 0) { Parsed_Misison.air_drop_pos.latitude = DDtoWaypoints(Airdrop_Text)[0].latitude; Parsed_Misison.air_drop_pos.longitude = DDtoWaypoints(Airdrop_Text)[0].longitude; } if (DDtoWaypoints(Off_Axis_target_Text).Count != 0) { Parsed_Misison.off_axis_target_pos.latitude = DDtoWaypoints(Off_Axis_target_Text)[0].latitude; Parsed_Misison.off_axis_target_pos.longitude = DDtoWaypoints(Off_Axis_target_Text)[0].longitude; } } else { //Add Fly Zones Parsed_Misison.fly_zones.Clear(); for (int i = 0; i < FlyZone_List.Count; i++) { Parsed_Misison.fly_zones.Add(new FlyZone(Max_Alt_MSL_List[i], Min_Alt_MSL_List[i], DMStoWaypoints(FlyZone_List[i]))); } //Add Search Areas Parsed_Misison.search_grid_points = DMStoWaypoints(Search_Area_Text); //Add Waypoints Parsed_Misison.mission_waypoints = DMSwithAltitudetoWaypoints(Waypoint_Text); if (DMStoWaypoints(Emergent_Target_Text).Count != 0) { Parsed_Misison.emergent_last_known_pos.latitude = DMStoWaypoints(Emergent_Target_Text)[0].latitude; Parsed_Misison.emergent_last_known_pos.longitude = DMStoWaypoints(Emergent_Target_Text)[0].longitude; } if (DMStoWaypoints(Airdrop_Text).Count != 0) { Parsed_Misison.air_drop_pos.latitude = DMStoWaypoints(Airdrop_Text)[0].latitude; Parsed_Misison.air_drop_pos.longitude = DMStoWaypoints(Airdrop_Text)[0].longitude; } if (DMStoWaypoints(Off_Axis_target_Text).Count != 0) { Parsed_Misison.off_axis_target_pos.latitude = DMStoWaypoints(Off_Axis_target_Text)[0].latitude; Parsed_Misison.off_axis_target_pos.longitude = DMStoWaypoints(Off_Axis_target_Text)[0].longitude; } } return(Parsed_Misison); }