static void Main() { SerialPortManager serialPortManager = new SerialPortManager(CommunicationMode.Server); serialPortManager.Log += (sender, eventArgs) => Console.WriteLine(eventArgs.Message); serialPortManager.Connect(); ManualResetEventSlim exitEvent = new ManualResetEventSlim(false); Console.CancelKeyPress += (sender, args) => exitEvent.Set(); while (!exitEvent.IsSet) { Console.WriteLine("Waiting for message"); serialPortManager.ReceiveMessage(); Console.WriteLine("Message received with type " + OperationContext.Request.Message.MessageType); switch (OperationContext.Request.Message.MessageType) { case MessageType.ListFilesRequest: HandleListFilesRequest(serialPortManager); break; case MessageType.SendFileRequest: HandleSendFileRequest(serialPortManager); break; case MessageType.ReceiveFileRequest: HandleReceiveFileRequest(serialPortManager); break; default: throw new NotImplementedException( "No handler for message type " + OperationContext.Request.Message.MessageType); } } }