void ScriptMain() { // DAQ const int _DAQ_TIME = 15; // in s const int _FILE_LIMIT = 2000; //in Ko string l_base = "D:\\Data\\POLAR2\\"; // Open a config file (path is relative to this file) BoardLib.OpenConfigFile(l_base + "Config\\polar2_CTest.xml"); // Configure the board BoardLib.BoardConfigure(); Console.WriteLine("Start DAQ with Data Break"); string daqFilename = l_base + "DAQ\\DataBreak"; BoardLib.SetVariable("Board.UsbEthParam.FileLimit", _FILE_LIMIT); // start DAQ in asynchronous mode BoardLib.StartAcquisition(daqFilename, true); //------------------------------------------------------------------------------ // DAQ is now started Console.WriteLine("----------------------------------"); Console.WriteLine("DAQ started for " + _DAQ_TIME + "s and limited to " + _FILE_LIMIT/1000 + "Mo"); bool l_continue = true; bool l_data_break = false; while (l_continue && BoardLib.IsTransferingData) { Sync.Sleep(100); //BoardConfigure.SetVariable("/POLAR_2_CONFIG/Board/DirectParam/Data_Break") //BoardLib.SetVariable("Board.DirectParam.Data_Break", l_data_break); //BoardLib.SetDirectParameters(); Sync.Sleep(1); var l_time = BoardLib.ElapsedTime.Split(':'); int l_seconds; if(int.TryParse(l_time[2], out l_seconds)) { if ((l_seconds>=_DAQ_TIME) && (!l_data_break)) { Sync.Sleep(200); // let databreak push remaining data l_continue = false; } } else { Console.WriteLine("Parse Error on Time=" + l_time[2].ToString()); l_continue = false; } l_data_break = ! l_data_break; } //------------------------------------------------------------------------------ //----- 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(""); Console.WriteLine("\nConvert File: " + daqFilename); Sync.Sleep(10); App.CheckAndExtractFEEData(daqFilename); var l_fi = new FileInfo(daqFilename + "_err.csv"); if(l_fi.Length > 0) { Console.WriteLine("\n Errors in File, Size (Bytes) = " + l_fi.Length.ToString()); }else Console.WriteLine("\n No Errors"); }