protected void OnParesError(EosParserError error) { EosParserErrorEventArgs e = new EosParserErrorEventArgs(error); EosParserErrorEventHandler handler = ParseError; if (handler != null) { handler(this, e); } }
private void Parser_ParseError(object sender, EosParserErrorEventArgs e) { lock (this) { if (_masterState == BusMasterState.CLEARINGSCAN) { _masterState = BusMasterState.IDLE; Rescan(); } else if (_masterState == BusMasterState.CLEARINGRESET) { _masterState = BusMasterState.IDLE; Reset(); } else if (_masterState == BusMasterState.WAITINGRESPONSE) { _masterState = BusMasterState.IDLE; _busTimer.Stop(); switch (State) { case EosBusState.SCANNING: NextScan(); break; case EosBusState.POLLING: //Console.WriteLine("Polling Parse Error"); _devices[_pollId].PollingErrors++; break; case EosBusState.WAITING_RESPONSE: OnResponseReceived((EosPacket)null); break; } } else { // Received errored packet when we are not waiting on one. _stats.Collisions++; } } }