public void Start() { if (!_isStarted) { _isStarted = true; IsActive = true; var thread = new Thread(async() => { try { while (!_isDisposing) { _parser.Parse(); await Task.Delay(1); } } catch (Exception e) { ConnectionError?.Invoke(this, EventArgs.Empty); } }); thread.Priority = ThreadPriority.AboveNormal; thread.Start(); } }
void HandleChanged(object sender, EventArgs e) { Lexer scnr = new Lexer(this.Source.Stream); IdpParser pars = new IdpParser(scnr, this); pars.Parse(); }
public void Can_Parse_Frame_With_1Byte_Payload_NoCRC() { var incomingData = new MemoryStream(); var parser = new IdpParser(incomingData); var data = new byte[] { 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0xAA, 0x03 }; incomingData.Write(data, 0, data.Length); incomingData.Seek(0, SeekOrigin.Begin); byte[] payload = null; parser.PacketParsed += (sender, e) => { payload = e.Packet.Data; }; parser.Parse(); Assert.Equal(0xaa, payload[0]); }