public void ReceiveData(string data) { if (data.Contains("\n")) { foreach (var curChar in data) { if (curChar != '\n') { _buffer.Append(curChar); } else { var completePacketData = _buffer.ToString(); _buffer.Clear(); PacketComplete?.Invoke(this, new PrinterPacketParserPacketCompleteEventArgs() { Packet = PreProcess(completePacketData) }); } } } else { _buffer.Append(data); } }
public void Setup() { _serializer = new Serializer(); // Default w/ no customs _serializer.RegisterType(typeof(PacketSimpleStruct)); _serializer.RegisterType(typeof(PacketSimpleClass)); _serializer.RegisterType(typeof(string[])); _serializer.RegisterType(typeof(int[])); _serializer.RegisterType(typeof(int[][])); _serializer.RegisterType(typeof(PacketComplete)); _random = new Random(); // Packets _packetComplete = new PacketComplete( "hello world", 3.14f, new[] { 4, 2, 0 }, new[] { "lorem", "ipsum", "what follows this again?" }, new[] { new[] { 1, 0, 0 }, new[] { 0, 1, 0 }, new[] { 0, 0, 1 } }); // identity mat3x3 }