Exemple #1
0
        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;
        }
Exemple #2
0
        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;
        }