public CmdRaAbsPos(TaskPlanner taskPlanner)
            : base("ra_abspos")
        {
            this.taskPlanner = taskPlanner;
            SignatureBuilder sb = new SignatureBuilder();

            sb.AddNewFromDelegate(new ThreeDoubleParser(this.ParseThreeDoubles));
            sb.AddNewFromDelegate(new SixDoubleParser(this.ParseSixDoubles));
            sb.AddNewFromDelegate(new SevenDoubleParser(this.ParseSevenDoubles));
            this.Signature = sb.GenerateSignature("ra_abspos");
        }
        public CmdLaRelPos(TaskPlanner taskPlanner)
            : base("la_relpos")
        {
            this.taskPlanner = taskPlanner;
            SignatureBuilder sb = new SignatureBuilder();

            sb.AddNewFromDelegate(new SevenDoubleParser(this.ParseSevenDoubles));
            this.Signature = sb.GenerateSignature("la_relpos");
        }
        public CmdRaReachable(TaskPlanner taskPlanner)
            : base("ra_reachable")
        {
            this.taskPlanner = taskPlanner;
            SignatureBuilder sb = new SignatureBuilder();

            sb.AddNewFromDelegate(new SevenDoubleParser(this.ParseSevenDoubles));
            this.Signature = sb.GenerateSignature("ra_reachable");
        }
 /// <summary>
 /// Initializes a new instance of CommandExecuter
 /// </summary>
 /// <param name="commandName">The name of the command that the CommandExecuter will execute</param>
 /// <param name="commandManager">The CommandManager object that will handle the command executed by this CommandExecuter instance</param>
 public CommandExecuter(string commandName, CommandManager commandManager)
 {
     this.commandName = commandName;
     this.responseRequired = true;
     SignatureBuilder sb = new SignatureBuilder();
     sb.AddNewFromDelegate(new StringArrayEventHandler(this.DefaultParameterParser));
     this.signature = sb.GenerateSignature(this.commandName);
     //if (commandManager != null)
     //	commandManager.CommandExecuters.Add(this);
 }
Beispiel #5
0
        public static void MainSignature()
        {
            Signature s;
            bool result;
            SignatureBuilder sb = new SignatureBuilder();
            System.Diagnostics.Stopwatch sw;
            sw = new System.Diagnostics.Stopwatch();

            sb.AddNewFromDelegate(new DoubleEventHandler(Doble));
            sb.AddNewFromDelegate(new VoidEventHandler(Vacio));
            sb.AddNewFromDelegate(new DosDobles(Suma));
            sb.AddNewFromDelegate(new DoubleArrayDelegate(DoubleArray));
            sb.AddNewFromDelegate(new StringArrayEventHandler(StringArray));

            //Console.WriteLine(sb.RegexPattern);

            s = sb.GenerateSignature("command");

            Command cmd = new Command("command", "Hola Mundo!");
            sw.Start();
            result = s.CallIfMatch(cmd);
            sw.Stop();
            Console.WriteLine("Elapsed: " + sw.ElapsedMilliseconds);
            cmd.Parameters = "";
            result = s.CallIfMatch(cmd);
            cmd.Parameters = "3";
            result = s.CallIfMatch(cmd);
            cmd.Parameters = "3.141592 2.71";
            result = s.CallIfMatch(cmd);
            cmd.Parameters = "3.141592 2.71 3.141592 2.71 3.141592 2.71 3.141592 2.71 3.141592 2.71";
            result = s.CallIfMatch(cmd);

            Response rsp = Response.CreateFromCommand(cmd, false);
            rsp.Parameters = "3.1416 1";
            SignatureAnalysisResult sar = s.Analyze(rsp);
            double a = 0;
            double b = 0;
            sar.Update("d1", ref a);
            Console.WriteLine("a: " + a.ToString());
            sar.GetParameter("d2", out b);
            Console.WriteLine("b: " + b.ToString());
            sar.Execute();

            Console.WriteLine();
            Console.WriteLine("Ejecutando Benchmark");

            //TextWriter cout = Console.Out;
            //Console.SetOut(TextWriter.Null);
            //Thread thread = new Thread(new ThreadStart(new VoidEventHandler(delegate()
            //{
            //	while (true) { sar = s.Analyze(rsp); sar.Execute(); }
            //})));
            //i = 0;
            //thread.Start();
            //Thread.Sleep(1000);
            //thread.Abort();

            sb.Clear();
            sb.AddNewFromDelegate(new DosDobles(Nothing));
            sb.AddNewFromDelegate(new VoidEventHandler(Nothing));
            s = sb.GenerateSignature("command");
            rsp = new Response("command", "1 2", true, -1);
            TimeSpan total = new TimeSpan(0);
            sw = new Stopwatch();
            sar = s.Analyze(rsp);
            for (int count = 0; count < 100; ++count)
            {
                Console.Write("\r");
                Console.Write(count);
                Console.Write("%\t");
                sw.Reset();
                sw.Start();
                for (i = 0; i < 100000; ++i)
                {
                    sar.Execute();
                }
                sw.Stop();
                total +=sw.Elapsed;
            }
            Console.WriteLine();

            total = new TimeSpan(total.Ticks / 100);
            //Console.SetOut(cout);
            Console.WriteLine("Ejecutado 100 veces 100k ciclos. Promedio de rafaga: " + total.TotalMilliseconds + "ms");
            Console.WriteLine("Promedio de ejecucion: " + (total.TotalMilliseconds/(100.0)) + "us");

            //s.Parse(null, a, b, c);
        }
Beispiel #6
0
        public static void MainSignature()
        {
            Signature        s;
            bool             result;
            SignatureBuilder sb = new SignatureBuilder();

            System.Diagnostics.Stopwatch sw;
            sw = new System.Diagnostics.Stopwatch();

            sb.AddNewFromDelegate(new DoubleEventHandler(Doble));
            sb.AddNewFromDelegate(new VoidEventHandler(Vacio));
            sb.AddNewFromDelegate(new DosDobles(Suma));
            sb.AddNewFromDelegate(new DoubleArrayDelegate(DoubleArray));
            sb.AddNewFromDelegate(new StringArrayEventHandler(StringArray));

            //Console.WriteLine(sb.RegexPattern);

            s = sb.GenerateSignature("command");

            Command cmd = new Command("command", "Hola Mundo!");

            sw.Start();
            result = s.CallIfMatch(cmd);
            sw.Stop();
            Console.WriteLine("Elapsed: " + sw.ElapsedMilliseconds);
            cmd.Parameters = "";
            result         = s.CallIfMatch(cmd);
            cmd.Parameters = "3";
            result         = s.CallIfMatch(cmd);
            cmd.Parameters = "3.141592 2.71";
            result         = s.CallIfMatch(cmd);
            cmd.Parameters = "3.141592 2.71 3.141592 2.71 3.141592 2.71 3.141592 2.71 3.141592 2.71";
            result         = s.CallIfMatch(cmd);

            Response rsp = Response.CreateFromCommand(cmd, false);

            rsp.Parameters = "3.1416 1";
            SignatureAnalysisResult sar = s.Analyze(rsp);
            double a = 0;
            double b = 0;

            sar.Update("d1", ref a);
            Console.WriteLine("a: " + a.ToString());
            sar.GetParameter("d2", out b);
            Console.WriteLine("b: " + b.ToString());
            sar.Execute();

            Console.WriteLine();
            Console.WriteLine("Ejecutando Benchmark");

            //TextWriter cout = Console.Out;
            //Console.SetOut(TextWriter.Null);
            //Thread thread = new Thread(new ThreadStart(new VoidEventHandler(delegate()
            //{
            //	while (true) { sar = s.Analyze(rsp); sar.Execute(); }
            //})));
            //i = 0;
            //thread.Start();
            //Thread.Sleep(1000);
            //thread.Abort();

            sb.Clear();
            sb.AddNewFromDelegate(new DosDobles(Nothing));
            sb.AddNewFromDelegate(new VoidEventHandler(Nothing));
            s   = sb.GenerateSignature("command");
            rsp = new Response("command", "1 2", true, -1);
            TimeSpan total = new TimeSpan(0);

            sw  = new Stopwatch();
            sar = s.Analyze(rsp);
            for (int count = 0; count < 100; ++count)
            {
                Console.Write("\r");
                Console.Write(count);
                Console.Write("%\t");
                sw.Reset();
                sw.Start();
                for (i = 0; i < 100000; ++i)
                {
                    sar.Execute();
                }
                sw.Stop();
                total += sw.Elapsed;
            }
            Console.WriteLine();

            total = new TimeSpan(total.Ticks / 100);
            //Console.SetOut(cout);
            Console.WriteLine("Ejecutado 100 veces 100k ciclos. Promedio de rafaga: " + total.TotalMilliseconds + "ms");
            Console.WriteLine("Promedio de ejecucion: " + (total.TotalMilliseconds / (100.0)) + "us");

            //s.Parse(null, a, b, c);
        }