public static void InitializeProcessor() { XmlDocument cfg = new XmlDocument(); cfg.Load("remoteconfig.xml"); //*********************Loading External Devices************ XmlNodeList nlist = cfg.SelectNodes("ProcessorConfiguration/ExternalDevice"); IExternalDevicePort[] externaldevices = null; if(nlist.Count>0) { Console.WriteLine("Loading External Devices"); externaldevices = new ExternalDevicePort[nlist.Count]; int tmp2=0; foreach(XmlNode tmp in nlist) { externaldevices[tmp2] = new ExternalDevicePort( tmp.SelectSingleNode("Name").InnerText ,new ExternalDevicePort.Echo(EchoMessage)); externaldevices[tmp2].Initialize(int.Parse( tmp.SelectSingleNode("Port").InnerText)); tmp2++; } } server = new RemoteRequestServer(int.Parse(cfg.SelectSingleNode( "ProcessorConfiguration/Port").InnerText), cfg.SelectSingleNode("ProcessorConfiguration/Name").InnerText,externaldevices); threadstacksize =int.Parse(cfg.SelectSingleNode( "ProcessorConfiguration/ThreadStackSize").InnerText); }
public static void InitializeProcessor() { XmlDocument cfg = new XmlDocument(); cfg.Load("remoteconfig.xml"); //*********************Loading External Devices************ XmlNodeList nlist = cfg.SelectNodes("ProcessorConfiguration/ExternalDevice"); IExternalDevicePort[] externaldevices = null; if (nlist.Count > 0) { Console.WriteLine("Loading External Devices"); externaldevices = new ExternalDevicePort[nlist.Count]; int tmp2 = 0; foreach (XmlNode tmp in nlist) { externaldevices[tmp2] = new ExternalDevicePort( tmp.SelectSingleNode("Name").InnerText , new ExternalDevicePort.Echo(EchoMessage)); externaldevices[tmp2].Initialize(int.Parse( tmp.SelectSingleNode("Port").InnerText)); tmp2++; } } server = new RemoteRequestServer(int.Parse(cfg.SelectSingleNode( "ProcessorConfiguration/Port").InnerText), cfg.SelectSingleNode("ProcessorConfiguration/Name").InnerText, externaldevices); threadstacksize = int.Parse(cfg.SelectSingleNode( "ProcessorConfiguration/ThreadStackSize").InnerText); }
public static void ThreadProc() { while(serverstate != ServerThreadStates.EXIT ) { switch(serverstate){ case ServerThreadStates.CONNECTED: Console.WriteLine("Recieving data packet...."); try { server.RecievePacket(); } catch (Exception e){ Console.WriteLine(e.Message); if(!manualstop) { Console.WriteLine("Restarting Server...."); serverstate = ServerThreadStates.RESTART; } else manualstop=false; } break; case ServerThreadStates.START: InitializeProcessor(); Console.WriteLine("Processor Name : " + server.processorname); Console.WriteLine("Listening on port : " + server.localprt.ToString()); if(server.Start()) { serverstate = ServerThreadStates.CONNECTED; Console.WriteLine("Connected to : " + ((IPEndPoint) server.listenersocket.RemoteEndPoint).Address.ToString()); } else if(!manualstop) { Console.WriteLine("Restarting Server...."); serverstate = ServerThreadStates.RESTART; }else manualstop=false; break; case ServerThreadStates.STOP: if(!Object.ReferenceEquals(server,null)) { server.Stop(); server=null; Console.WriteLine("Server has been stopped."); } Thread.CurrentThread.Suspend(); break; case ServerThreadStates.RESTART: if(!Object.ReferenceEquals(server,null)){ server.Stop(); server=null; } serverstate = ServerThreadStates.START; break; } } server = null; }
public static void ThreadProc() { while (serverstate != ServerThreadStates.EXIT) { switch (serverstate) { case ServerThreadStates.CONNECTED: Console.WriteLine("Recieving data packet...."); try { server.RecievePacket(); } catch (Exception e) { Console.WriteLine(e.Message); if (!manualstop) { Console.WriteLine("Restarting Server...."); serverstate = ServerThreadStates.RESTART; } else { manualstop = false; } } break; case ServerThreadStates.START: InitializeProcessor(); Console.WriteLine("Processor Name : " + server.processorname); Console.WriteLine("Listening on port : " + server.localprt.ToString()); if (server.Start()) { serverstate = ServerThreadStates.CONNECTED; Console.WriteLine("Connected to : " + ((IPEndPoint)server.listenersocket.RemoteEndPoint).Address.ToString()); } else if (!manualstop) { Console.WriteLine("Restarting Server...."); serverstate = ServerThreadStates.RESTART; } else { manualstop = false; } break; case ServerThreadStates.STOP: if (!Object.ReferenceEquals(server, null)) { server.Stop(); server = null; Console.WriteLine("Server has been stopped."); } Thread.CurrentThread.Suspend(); break; case ServerThreadStates.RESTART: if (!Object.ReferenceEquals(server, null)) { server.Stop(); server = null; } serverstate = ServerThreadStates.START; break; } } server = null; }