示例#1
0
        public static async Task <int> MoveBetweenTwoPoints(AI.Step current, AI.Step next)
        {
            int delay_waitfor1move = C * 150;

            int delay_upanddown = 8000;

            int delay_betweenaction = 600;

            var actions = GetActionSeq(current, next);

            int delay = 0;

            foreach (var item in actions)
            {
                int movedelay = delay_waitfor1move * (item[1] - '0');
                delay += movedelay;
                switch ((char)item[0])
                {
                case 'B': await Back((int)(item[1] - '0') *C); break;

                case 'F': await Forward((int)(item[1] - '0') *C); break;

                case 'R': await Right((int)(item[1] - '0') *C); break;

                case 'L': await Left((int)(item[1] - '0') *C); break;
                }
                await Task.Delay(movedelay);

                delay += delay_betweenaction;
                await Task.Delay(delay_betweenaction);
            }

            // After take the step, land
            await Comm.SendCommand("land");

            await Task.Delay(delay_upanddown);

            await Comm.SendCommand("takeoff");

            await Task.Delay(delay_upanddown);

            delay += delay_upanddown * 2;

            return(delay);
        }
示例#2
0
 static public async Task Down(int cm)
 {
     await Comm.SendCommand($"down {cm}");
 }
示例#3
0
 static public async Task Up(int cm)
 {
     await Comm.SendCommand($"up {cm}");
 }
示例#4
0
 static public async Task Back(int cm)
 {
     await Comm.SendCommand($"back {cm}");
 }
示例#5
0
 static public async Task Forward(int cm)
 {
     await Comm.SendCommand($"forward {cm}");
 }
示例#6
0
 static public async Task Right(int cm)
 {
     await Comm.SendCommand($"right {cm}");
 }
示例#7
0
 static public async Task Left(int cm)
 {
     await Comm.SendCommand($"left {cm}");
 }