public async Task <InvokeResult <Mission> > GetWayPointsAsync(IConnectedUas uas)
        {
            var mission = new Mission();

            var missionRequest = new UasMissionRequestList
            {
                TargetSystem    = uas.Uas.SystemId,
                TargetComponent = uas.Uas.ComponentId
            };

            var result = await uas.Transport.RequestDataAsync <UasMissionCount>(missionRequest, UasMessages.MissionCount);

            if (result.Successful)
            {
                for (ushort idx = 0; idx < result.Result.Count; ++idx)
                {
                    var reqf = new UasMissionRequestInt
                    {
                        TargetSystem    = uas.Uas.SystemId,
                        TargetComponent = uas.Uas.ComponentId,
                        Seq             = idx
                    };

                    var wpResult = await uas.Transport.RequestDataAsync <UasMissionItemInt>(reqf, UasMessages.MissionItemInt);

                    if (wpResult.Successful)
                    {
                        mission.Waypoints.Add(Waypoint.Create(wpResult.Result));
                    }
                }
            }

            return(InvokeResult <Mission> .Create(mission));
        }
Example #2
0
        private void button11_Click(object sender, EventArgs e)
        {
            var msg1 = new UasMissionRequestList();

            MyShell.WriteLine("警告" + "Send UasMissionRequestList");
            _mMavLink.SendMessage(msg1);

            Thread.Sleep(500);
            MyShell.WriteLine("警告" + "Send UasMissionRequest");
            var msg2 = new UasMissionRequest {
                Seq = 0
            };

            _mMavLink.SendMessage(msg2);

            //var msg1 = new UasMissionItem {Seq = 1};
            //_mMavLink.SendMessage(msg1);
        }