Beispiel #1
0
        public bool init()
        {
            //First load the interface
            if (ttInterface == null)
            {
                //Attempt opening the time-tagger libraries
                status("Opening Timetagger Libraries...");
                try
                {
                    ttInterface = new TTInterface();
                    status("OK");
                }
                catch (Exception ex)
                {
                    ttInterface = null;
                    status("Opening ttInterface.dll failed:\n\"" + ex.Message + "\"");
                    flashbtn.Enabled  = false;
                    addrunner.Enabled = false;
                    remrunner.Enabled = false;
                    return(false);
                }
            }
            if (!ttInterface.IsOpen())
            {
                try
                {
                    status("Connecting to Timetagger...");
                    ttInterface.Open(ttnum);
                    status("FPGA Version:" + ttInterface.GetFpgaVersion() + " Resolution:" + ttInterface.GetResolution() + " Errors:" + ttInterface.ReadErrorFlags());
                    ttInterface.Use10MHz(false);
                    setthreshold(2.0);
                    status("OK");
                }
                catch (Exception ex)
                {
                    status("Error: " + ex.Message);
                    flashbtn.Enabled  = false;
                    addrunner.Enabled = false;
                    remrunner.Enabled = false;
                    return(false);
                }
            }

            if (buffer == System.UIntPtr.Zero)
            {
                try
                {
                    status("Creating Buffer...");
                    buffernum = tt_getNextFree();
                    buffer    = tt_create(buffernum, bufsize);
                    if (buffer == System.UIntPtr.Zero)
                    {
                        status("Error: Buffer creation failed.\nThe size given might be too large.");
                        flashbtn.Enabled  = false;
                        addrunner.Enabled = false;
                        remrunner.Enabled = false;
                        return(false);
                    }
                    //Set the number of channels and the time tagger's resolution
                    tt_setchannels(buffer, 16);
                    tt_setresolution(buffer, ttInterface.GetResolution());

                    status("Buffer: " + buffernum + " Size: " + bufsize);
                }
                catch (Exception ex)
                {
                    status("Error: " + ex.Message);
                    flashbtn.Enabled  = false;
                    addrunner.Enabled = false;
                    remrunner.Enabled = false;
                    return(false);
                }
            }
            if (!runnertimer.Enabled)
            {
                runnertimer.Start();
            }
            if (!tagger.IsBusy)
            {
                tagger.RunWorkerAsync();
            }
            ledcontrol.Enabled  = true;
            optionsmenu.Enabled = true;
            refon.Enabled       = true;
            savemenu.Enabled    = true;
            this.Text           = "TT" + ttnum + " Buffer " + buffernum;
            status("Ready.");
            return(true);
        }
Beispiel #2
0
        public bool init()
        {
            //First load the interface
            if (ttInterface == null)
            {
                //Attempt opening the time-tagger libraries
                status("Opening Timetagger Libraries...");
                try
                {
                    ttInterface = new TTInterface();
                    status("OK");
                }
                catch (Exception ex)
                {
                    ttInterface = null;
                    status("Opening ttInterface.dll failed:\n\"" + ex.Message + "\"");
                    flashbtn.Enabled = false;
                    addrunner.Enabled = false;
                    remrunner.Enabled = false;
                    return false;
                }
            }
            if (!ttInterface.IsOpen())
            {
                try
                {
                    status("Connecting to Timetagger...");
                    ttInterface.Open(ttnum);
                    status("FPGA Version:" + ttInterface.GetFpgaVersion() + " Resolution:" + ttInterface.GetResolution() + " Errors:" + ttInterface.ReadErrorFlags());
                    ttInterface.Use10MHz(false);
                    setthreshold(2.0);
                    status("OK");
                }
                catch (Exception ex)
                {
                    status("Error: " + ex.Message);
                    flashbtn.Enabled = false;
                    addrunner.Enabled = false;
                    remrunner.Enabled = false;
                    return false;
                }
            }

            if (buffer == System.UIntPtr.Zero)
            {
                try
                {
                    status("Creating Buffer...");
                    buffernum = tt_getNextFree();
                    buffer = tt_create(buffernum, bufsize);
                    if (buffer == System.UIntPtr.Zero)
                    {
                        status("Error: Buffer creation failed.\nThe size given might be too large.");
                        flashbtn.Enabled = false;
                        addrunner.Enabled = false;
                        remrunner.Enabled = false;
                        return false;
                    }
                    //Set the number of channels and the time tagger's resolution
                    tt_setchannels(buffer, 16);
                    tt_setresolution(buffer, ttInterface.GetResolution());

                    status("Buffer: " + buffernum + " Size: " + bufsize);
                }
                catch (Exception ex)
                {
                    status("Error: " + ex.Message);
                    flashbtn.Enabled = false;
                    addrunner.Enabled = false;
                    remrunner.Enabled = false;
                    return false;
                }
            }
            if (!runnertimer.Enabled)
            {
                runnertimer.Start();
            }
            if (!tagger.IsBusy)
            {
                tagger.RunWorkerAsync();
            }
            ledcontrol.Enabled = true;
            optionsmenu.Enabled = true;
            refon.Enabled = true;
            savemenu.Enabled = true;
            this.Text = "TT" + ttnum + " Buffer " + buffernum;
            status("Ready.");
            return true;
        }