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; }
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(); }