private void OnTagsReported(ImpinjReader sender, TagReport report) { foreach (Tag tag in report) { if (results.Count == maxBufferSize) { results.RemoveAt(0); } RFIDResult r = new RFIDResult(sender.Name, seq++, mode, tag); r.AnalysisEPC(); results.Add(r); if (logging) { log.WriteLine(r.makeMeAString()); } if (InvokeRequired) { Invoke(new MethodInvoker(updateInterface)); } } }
private void OnTagsReported(ImpinjReader sender, TagReport report) { foreach (Tag tag in report) { if (results.Count == maxBufferSize) { RFIDResult temp; while (!results.TryDequeue(out temp)) { Thread.Sleep(100); } } RFIDResult r = new RFIDResult(sender.Name, seq++, impinj_mode, tag); r.AnalysisEPC(); results.Enqueue(r); if (logging) { log.WriteLine(r.makeMeAString()); } newResultEvent(this, EventArgs.Empty); } }