static void Main(string[] args) { var settings = Properties.Settings.Default; // initialise the PiFace device to bind the server to var device = default(IPiFaceDevice); switch(settings.DeviceType) { case "Physical": device = new PiFaceDevice(); break; case "Emulated": device = new PiFaceEmulator(); break; default: throw new System.Configuration.ConfigurationErrorsException("The 'DeviceType' setting in app.config must be either 'Physical' or 'Emulated'."); } // get the address to run the server on var address = default(IPAddress); if (string.IsNullOrEmpty(settings.ServerAddress)) { address = PiFaceTcpHelper.GetLocalIPAddress(); } else { address = IPAddress.Parse(settings.ServerAddress); } // get the port to run the server on var port = (uint)0; if (!uint.TryParse(settings.ServerPort, out port)) { throw new System.Configuration.ConfigurationErrorsException("The 'ServerPort' setting in app.config must be an unsigned integer."); } // start the server var endpoint = new IPEndPoint(address, (int)port); var server = new PiFaceTcpServer(device, endpoint); server.MessageReceived += Program.PiFaceTcpServer_MessageReceived; server.ResponseSent += Program.PiFaceTcpServer_ResponseSent; server.Start(); // wait around while the server runs while(true) { System.Threading.Thread.Sleep(1000); } }
private void btnStart_Click(object sender, EventArgs e) { // initialise the piface server var address = PiFaceTcpHelper.GetLocalIPAddress(); var endpoint = new IPEndPoint(address, 43596); this.PiFaceTcpServer = new PiFaceTcpServer(this.PiFaceEmulator, endpoint); this.PiFaceTcpServer.MessageReceived += this.PiFaceTcpServer_MessageReceived; this.PiFaceTcpServer.ResponseSent += this.PiFaceTcpServer_ResponseSent; this.PiFaceTcpServer.Start(); // update form controls txtLocalAddress.Enabled = false; txtLocalPort.Enabled = false; btnStart.Enabled = false; btnStop.Enabled = true; lblStatus.Text = "Started."; this.LogEvent("server started"); }