//------------------------------------------------------------------------------ // MAIN SCRIPT FUNCTIONS //------------------------------------------------------------------------------ void ScriptMain() { Console.WriteLine("Script begins..."); // slots allocation const byte _BOARD_ID = 0; // DAQ const int _DAQ_TIME = 10000; // in ms const int _FILE_LIMIT = 3000; //in Ko string l_daqFile = "G:/TEMP/AIDA/HW_TEST/TEMP/test_slot0"; string l_cfgfilename = "G:/TEMP/AIDA/HW_TEST/CFG/PDdiscri-A0-CH0-5-25-31"; //------------------------------------------------------------------------------ Console.WriteLine("---------------------------------------------------"); Console.WriteLine("This will launch the DAQ for 1 SLOT on Board ID = " + _BOARD_ID); Console.WriteLine("---------------------------------------------------"); Console.WriteLine(); //----------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------- Console.WriteLine("----------------------------------"); Console.WriteLine("Configure Board with " + l_cfgfilename); BoardLib.SetBoardId(_BOARD_ID); BoardLib.OpenConfigFile(l_cfgfilename); BoardLib.BoardConfigure(); //------------------------------------------------------------------------------ Console.WriteLine("----------------------------------"); Console.WriteLine("Start DAQ"); BoardLib.SetVariable("Board.DirectParam.HvOn", true); BoardLib.SetDirectParameters(); Sync.Sleep(500); // allow HV on to be established BoardLib.SetVariable("Board.UsbParam.FileLimit", _FILE_LIMIT); BoardLib.StartAcquisition(l_daqFile, true); // asynchronous launch //------------------------------------------------------------------------------ // DAQ is now started Console.WriteLine("----------------------------------"); Console.WriteLine("DAQ started for " + _DAQ_TIME/1000 + "s and limited to " + _FILE_LIMIT/1000 + "Mo"); const int _SLEEP_TIME = 50; //ms int l_timeEnd = _DAQ_TIME/_SLEEP_TIME; int l_sleepCnt = 0; while ((l_sleepCnt < l_timeEnd) && (BoardLib.IsTransferingData)) { Sync.Sleep(_SLEEP_TIME); l_sleepCnt++; } //------------------------------------------------------------------------------ //----- STOP DAQ --------- Console.WriteLine("----------------------------------"); Console.WriteLine("Stop DAQ"); BoardLib.StopAcquisition(); Sync.SleepUntil(()=>!BoardLib.IsTransferingData); Console.WriteLine(""); Console.WriteLine("DAQ Total Time (hh:mm:ss): " + BoardLib.ElapsedTime); Console.WriteLine("DAQ Total KBytes: " + BoardLib.XferKBytes); Console.WriteLine("DAQ Xfer rate (KB/s): Avg=" + BoardLib.AvgXferRate + " / Max=" + BoardLib.MaxXferRate); Console.WriteLine(""); Sync.Sleep(100); // allow DAQ stop thread to be finished //------------------------------------------------------------------------------ //----- HV OFF --------- Console.WriteLine("----------------------------------"); Console.WriteLine("Stop HV"); BoardLib.SetVariable("Board.DirectParam.HvOn", false); BoardLib.SetDirectParameters(); Sync.Sleep(50); // We're done! Console.WriteLine("Script ended"); }