static void Main(string[] args) { Program p = new Program(); Random r = new Random(); p.ListPorts(); var portname = p.GetPortName(); //var channel = new SerialChannel<SimpleMessage>( // portname, // new ConsoleLogger(), // new SimpleMessageSerialConverter(), // new SimpleMessageSerialFinder(new SimpleMessageSerialConverter())); var channel = new SerialChannel <LineMessage>( portname, new ConsoleLogger(), new LineMessageSerialConverter(), new LineMessageSerialFinder(new LineMessageSerialConverter())); channel.MessageReceived += HandleIncomingMessageEvent; channel.Open(); var key = Console.ReadKey(); while (key.KeyChar != 'q') { switch (key.KeyChar) { case 's': for (int i = 0; i < 20; i++) { Thread.Sleep(Math.Max((r.Next(1000) - 500), 0)); //channel.Send(new SimpleMessage() { Data = new byte[] { 65, (byte)(i), 66 } }); channel.Send(new LineMessage() { Data = $"Hello World {i}!" }); } break; case 'o': channel.Open(); break; case 'c': channel.Close(); break; } key = Console.ReadKey(); } Console.ReadKey(); }
public void TestSPChannel() { BaseChannel tcp = new SerialChannel(); Assert.AreEqual(tcp.Open(), true); Assert.AreEqual(tcp.GetState(), ChannelState.Opened); // 00 02 00 00 00 05 06 03 02 00 00 byte[] a = new byte[] { 0x0A, 0x03, 0x00, 0x00, 0x00, 0x06, 0x12, 0x34 }; int i = 0; int success = 0; while (true) { if (i == 100) { return; } tcp.Write(a); byte[] buf = tcp.Read(256); success++; i++; Console.WriteLine(BitConverter.ToString(buf, 0).Replace("-", string.Empty).ToLower()); } }