void ReaderXP_StateChangedEvent(object sender, CSLibrary.Events.OnStateChangedEventArgs e) { this.BeginInvoke((System.Threading.ThreadStart) delegate() { switch (e.state) { case RFState.IDLE: watchrate.Stop(); //ControlPanelForm.EnablePannel(true); EnableButton(ButtonState.Start, true); EnableButton(ButtonState.Stop, false); EnableTimer(false); if (mStop) { this.Close(); } break; case RFState.BUSY: watchrate.Reset(); watchrate.Start(); totaltags = 0; totalcrc = 0; EnableButton(ButtonState.Start, false); EnableButton(ButtonState.Stop, true); EnableTimer(true); break; case RFState.RESET: { HighLevelInterface reader = (HighLevelInterface)(sender); while (true) { if (reader.Reconnect(1) == Result.OK) { break; } Thread.Sleep(1000); } } if (ControlPanelForm.ControlPanel.checkBoxLog.Checked) { TextWriter tw = new StreamWriter(CS203_CALLBACK_API_DEMO.ControlPanelForm.ControlPanel.textBox_LogPath.Text + "\\CycleLog.Txt", true); tw.WriteLine("{0} : System Reset", DateTime.Now.ToString()); tw.Close(); } //Use other thread to create progress Reset(); //reset = new Thread(new ThreadStart(Reset)); //reset.Start(); break; case RFState.ABORT: //ControlPanelForm.EnablePannel(false); break; case RFState.ANT_CYCLE_END: AntCycleCount++; totaltagscycle = totaltagsthiscycle; totaltagsthiscycle = 0; if (ControlPanelForm.ControlPanel.checkBoxLog.Checked) // ControlPanelForm.ControlPanel.checkBoxSaveSummary.Checked) { int portbusy = 0; int common = 0; //TextWriter tw = new StreamWriter(ControlPanelForm.SummaryFile, true); TextWriter tw = new StreamWriter(CS203_CALLBACK_API_DEMO.ControlPanelForm.ControlPanel.textBox_LogPath.Text + "\\CycleLog.Txt", true); tw.Write("{0} : Cycle {1}, {2} Tag/Cycle, Channel State : ", DateTime.Now.ToString(), AntCycleCount, totaltagscycle); for (int cnt = 0; cnt < 16; cnt++) { if (Program.ReaderXP.ChannelStatus[cnt] == RFState.CH_BUSY) { portbusy = 1; if (common == 0) { tw.Write("Port Busy "); } else { tw.Write(", "); } tw.Write("{0}", cnt); common = 1; } } if (portbusy == 0) { tw.WriteLine("CLEAR"); } else { tw.WriteLine(""); } tw.Close(); } numChannelBusy = 0; if (AntCycleTimeCount <= 4) { AntCycleTime[AntCycleTimeCount++] = Environment.TickCount; } else { AntCycleTime[0] = AntCycleTime[1]; AntCycleTime[1] = AntCycleTime[2]; AntCycleTime[2] = AntCycleTime[3]; AntCycleTime[3] = AntCycleTime[4]; AntCycleTime[4] = Environment.TickCount; } break; } }); }