private bool Apply()
 {
     if (!IPAddress.TryParse(txtIp.Text, out address))
     {
         MessageBoxes.ShowError("Unable to cast IP Address, check if the specified text in the Server IP box is a valid IP Address. ");
         return false;
     }
     if (!uint.TryParse(txtPort.Text, out port))
     {
         MessageBoxes.ShowError("Unable to cast Port, check if the specified text in the Multicast Port box is a valid Port. ");
         return false;
     }
     SSLVisionReceiver receiver = new SSLVisionReceiver();
     receiver.IpAddress = address;
     receiver.Port = port;
     rigReference.VisionReceiver = receiver;
     try
     {
         rigReference.VisionReceiver.Connect();
         return true;
     }
     catch (Exception ex)
     {
         MessageBoxes.ShowError(ex.Message);
         return false;
     }
     return true;
 }
Beispiel #2
0
        public static void Main(string[] args)
        {
            IRepository repository = new DataRepository(5, true, false);
            IPacketReceiver receiver = new SSLVisionReceiver(IPAddress.Parse("224.5.23.2"), 10002);
            IPacketSender sender = new GRSimSender(IPAddress.Parse("20.200.20.207"), 20011);
            receiver.Connect();
            sender.Connect();
            ((IDataSource)receiver).Repository = repository;
            ((IDataSource)sender).Repository = repository;
            IPlanner planner = new DummyPlanner();
            ((IDataSource)planner).Repository = repository;
            IController[] controllers = new IController[6];
            for (int i = 0; i < controllers.Length; i++)
            {
                controllers[i] = new PIDController(i);
                ((IDataSource)controllers[i]).Repository = repository;
            }

            //repository.InData.ParsePacket((SSL_WrapperPacket)receiver.Receive());
            //planner.Plan();
            //controllers[0].Compute();
            //((ITask)sender).Execute();
            ITask anchor = (ITask)receiver;
            ITask reference = (ITask)planner;
            anchor.GetNext = () => new[] { reference };
            reference.GetNext = () =>
            {
                List<ITask> controller = new List<ITask>();
                foreach(ITask contr in controllers)
                    controller.Add(contr);
                return controller.ToArray();
            };
            foreach (var controller in controllers)
            {
                ((ITask)controller).GetNext = () => new[] { (ITask)sender };
            }

            IExecutionEngine engine = new SingleProcessor(new[] { anchor });
            engine.Start();
        }