public static void Main(string[] args) { // NOTE: To disable debug output uncomment the following two lines //LogManager.Configuration.LoggingRules.RemoveAt(0); //LogManager.Configuration.Reload(); serialPort = new SerialPortInput(); serialPort.ConnectionStatusChanged += SerialPort_ConnectionStatusChanged; serialPort.MessageReceived += SerialPort_MessageReceived; while (true) { Console.WriteLine("\nPlease enter serial to open (eg. \"COM7\" or \"/dev/ttyUSB0\" without double quotes),"); Console.WriteLine("or enter \"QUIT\" to exit.\n"); Console.Write("Port [{0}]: ", defaultPort); string port = Console.ReadLine(); if (String.IsNullOrWhiteSpace(port)) port = defaultPort; else defaultPort = port; // exit if the user enters "quit" if (port.Trim().ToLower().Equals("quit")) break; serialPort.SetPort(port, 115200); serialPort.Connect(); Console.WriteLine("Waiting for serial port connection on {0}.", port); while (!serialPort.IsConnected) { Console.Write("."); Thread.Sleep(1000); } // This is a test message (ZWave protocol message for getting the nodes stored in the Controller) var testMessage = new byte[] { 0x01, 0x03, 0x00, 0x02, 0xFE }; // Try sending some data if connected if (serialPort.IsConnected) { Console.WriteLine("\nConnected! Sending test message 5 times."); for (int s = 0; s < 5; s++) { Thread.Sleep(1000); Console.WriteLine("\nSEND [{0}]", (s + 1)); serialPort.SendMessage(testMessage); } } Console.WriteLine("\nTest sequence completed, now disconnecting."); serialPort.Disconnect(); } }