private void btn_Listen_Click(object sender, EventArgs e) { G_Spill_Active = false; btnPLOT.Visible = true; btnStartSpill.Visible = true; btnStopSpill.Visible = true; object o = (object)u; //e = (EventArgs)o; backgroundWorker1.RunWorkerAsync(o); btn_Listen.Visible = false; if (!RC_client.ClientOpen) { RC_client.Open(); } //if (!WC_client.ClientOpen) { WC_client.Open(); } Application.DoEvents(); RC_client.Clear(); OpenFiles(); btnAutomatic.Visible = true; G_Spill_Active = false; btnPLOT.Visible = true; btnStartSpill.Visible = true; btnStopSpill.Visible = true; btnUpdateStatus.Visible = true; btnSetMaxTrig.Visible = true; ud_Stop.Visible = true; label2.Visible = true; }
private void btnStopSpill_Click(object sender, EventArgs e) { bool events_reading = true; int old_count = 0; int timeout = 0; int timeout_max = 20; string[] spill_stat; RC_client.Disarm(); RC_client.GetStatus(out spill_stat); PP.myRun.spill_status = spill_stat; RC_client.ReadAll(); while (events_reading) { this.lblDaqMessage.Visible = true; this.lblDaqMessage.Text = "looking for events : timeout=" + timeout.ToString(); //this.lblDaqMessage2.Text = "last event from " + PP.myRun.Events.Last.Value.RawBytes[0, 6].ToString(); Thread.Sleep(50); Application.DoEvents(); if (PP.myRun.Events.Count > old_count) { events_reading = true; old_count = PP.myRun.Events.Count; timeout = 0; this.lblDaqMessage.Text = old_count + " events read so far"; } else { timeout++; if (timeout < timeout_max) { } else { events_reading = false; } } } this.lblDaqMessage.Text = "all done"; Event this_evt = new Event(); LinkedListNode <Event> this_node = PP.myRun.Events.First; bool in_spill; string sz_num_trig; string sz_WC_time; WC_client.check_status(out in_spill, out sz_num_trig, out sz_WC_time); G_SPILL_NUM++; fs.WriteLine("*** starting spill num " + G_SPILL_NUM.ToString() + " *** at " + DateTime.Now.ToString() + " WC says: num trig= " + sz_num_trig + " time = " + sz_WC_time); if (gFake) { fs.WriteLine("*** this spill is fake ***"); } for (int i = 0; i < PP.myRun.spill_status.Length - 1; i++) { fs.WriteLine("*** spill status " + i + " " + PP.myRun.spill_status[i] + " ***"); } for (int i = 0; i < PP.myRun.Events.Count; i++) { if (this_node != null) { this_evt = this_node.Value; for (int j = 0; j < 32; j++) { if (this_evt.RawBytes[j, 0] < 32) { string t = this_evt.Ticks[j].ToString(); for (int k = 0; k < 9; k++) { t += " " + this_evt.RawBytes[j, k].ToString("X2"); } for (int k = 0; k < 120; k++) { t += " " + this_evt.Channels[j, k].ToString("X3"); } fs.WriteLine(t); lblDaqMessage2.Text = i.ToString(); } } } this_node = this_node.Next; } RC_client.Clear(); fs.Flush(); G_Spill_Active = false; G_Reading_Out = false; }