コード例 #1
0
        private void Init_Mission_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            WaypointMissionFinishedAction finishedAction = (WaypointMissionFinishedAction)Enum.Parse(typeof(WaypointMissionFinishedAction), finishedCombo.SelectedIndex.ToString());
            WaypointMissionHeadingMode    headingMode    = (WaypointMissionHeadingMode)Enum.Parse(typeof(WaypointMissionHeadingMode), ((ComboBoxItem)headingCombo.SelectedItem).Tag.ToString());

            init_mission(Int32.Parse(speedTextBox.Text), finishedAction, headingMode);

            int heading;

            bool success = Int32.TryParse(headingTextBox.Text, out heading);

            if (success && heading > 180)
            {
                heading = heading - 360;
            }

            WaypointTurnMode turnMode = (WaypointTurnMode)Enum.Parse(typeof(WaypointTurnMode), turnCombo.SelectedIndex.ToString());

            Waypoint waypoint = InitDumpWaypoint(telemetry.gps_location.latitude + 0.00003, telemetry.gps_location.longitude, Double.Parse(altitudeTextBox.Text), turnMode, heading, Int32.Parse(speedTextBox.Text));

            mission.waypoints.Add(waypoint);

            RedrawWaypoint();

            int a = 0;
        }
コード例 #2
0
        private void Add_Waypoint_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            if (missionCreated)
            {
                var lastWaypoint = mission.waypoints[mission.waypoints.Count - 1];

                var altitude = Double.Parse(altitudeTextBox.Text);

                if (currentWaypoint.Latitude != lastWaypoint.location.latitude || currentWaypoint.Longitude != lastWaypoint.location.longitude ||
                    altitude != lastWaypoint.altitude)
                {
                    int heading;

                    bool success = Int32.TryParse(headingTextBox.Text, out heading);

                    if (success && heading > 180)
                    {
                        heading = heading - 360;
                    }

                    WaypointTurnMode turnMode = (WaypointTurnMode)Enum.Parse(typeof(WaypointTurnMode), turnCombo.SelectedIndex.ToString());

                    Waypoint waypoint = InitDumpWaypoint(currentWaypoint.Latitude, currentWaypoint.Longitude, altitude, turnMode, heading, Int32.Parse(speedTextBox.Text));

                    mission.waypoints.Add(waypoint);

                    MapLat.Text = "";
                    MapLon.Text = "";


                    RedrawWaypoint();
                }
            }
        }
コード例 #3
0
        private Waypoint InitDumpWaypoint(double latitude, double longitude, double altitude, WaypointTurnMode turnMode, int heading, double speed)
        {
            Waypoint waypoint = new Waypoint()
            {
                location = new LocationCoordinate2D()
                {
                    latitude = latitude, longitude = longitude
                },
                altitude               = altitude,
                gimbalPitch            = -90,
                turnMode               = turnMode,
                heading                = heading,
                actionRepeatTimes      = 1,
                actionTimeoutInSeconds = 900,
                cornerRadiusInMeters   = 0.2,
                speed = speed,
                shootPhotoTimeInterval     = -1,
                shootPhotoDistanceInterval = -1,
                waypointActions            = new List <WaypointAction>()
            };

            return(waypoint);
        }