Exemplo n.º 1
0
        public void runTLD()
        {
            Process TLDApp = new Process();

            TLDApp.StartInfo.UseShellExecute        = false;
            TLDApp.StartInfo.RedirectStandardOutput = true;
            TLDApp.StartInfo.FileName  = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\OpenTLD\opentld.exe";
            TLDApp.StartInfo.Arguments = "-s -n " + device;
            TLDApp.Start();

            string output;

            string[] splitOutput;
            while (!TLDApp.HasExited)
            {
                output = TLDApp.StandardOutput.ReadLine();
                if (output == null)
                {
                    continue;
                }
                splitOutput = output.Split(' ');

                int tx1 = 0;
                int ty1 = 0;
                int tx2 = 0;
                int ty2 = 0;
                try
                {
                    tx1 = Convert.ToInt32(splitOutput[1]);
                    ty1 = Convert.ToInt32(splitOutput[2]);
                    tx2 = tx1 + Convert.ToInt32(splitOutput[3]);
                    ty2 = ty1 + Convert.ToInt32(splitOutput[4]);
                }
                catch (Exception e)
                {
                    continue;
                }

                MAVLink.mavlink_set_vision_target_box_t vision_position = new MAVLink.mavlink_set_vision_target_box_t();
                vision_position.topLeftX     = tx1;
                vision_position.topLeftY     = ty1;
                vision_position.bottomRightX = tx2;
                vision_position.bottomRightY = ty2;
                MainV2.comPort.sendPacket(vision_position);
                //80, 160, 480, 560
                //80, 160, 340, 420
                int xStep = 0;
                int yStep = 0;

                if (tx1 < 80)
                {
                    xStep = 3;
                }
                else if (tx1 < 160)
                {
                    xStep = 1;
                }
                else if (tx2 > 560)
                {
                    xStep = -3;
                }
                else if (tx2 > 480)
                {
                    xStep = -1;
                }

                if (ty1 < 60)
                {
                    yStep = -3;
                }
                else if (ty1 < 120)
                {
                    yStep = -1;
                }
                else if (ty2 > 420)
                {
                    yStep = 3;
                }
                else if (ty2 > 360)
                {
                    yStep = 1;
                }

                controller.setStep(xStep, yStep);
            }
        }