240 likes | 256 Views
F.Fujiwara , N.Tamura, M.Abe, S.Enomoto, G.Iwai, S,Kawabata, A.Manabe,Y.Nagasaka, I.Nakano, H.Sakamoto,Y.Sakamoto, T.Sasaki, R.Tanaka. Development of a data acquisition program builder via a user interface. Outline 01. D ata A c Q uisition program Builder
E N D
F.Fujiwara, N.Tamura, M.Abe, S.Enomoto, G.Iwai, S,Kawabata, A.Manabe,Y.Nagasaka, I.Nakano, H.Sakamoto,Y.Sakamoto, T.Sasaki, R.Tanaka Development of a data acquisition program builder via a user interface
Outline 01 • Data AcQuisition program Builder • A class library • A software which can be use to make a data acquisition system software using the class library via a UserInterface.(UI)
Outline 02 • Has many classes with following functions • Control Hardware module • Provide object stream( to File , to Network , etc I/O ..) • Provide interface to other analyzers (ROOT etc...) • It has been designed with the Object-Oriented Language C++(100% pure)
Outline 03 • For using the DAQ-Builder CL interactively • Can create arbitrary objects in the class library • Can operate objects created via the UI • Two versions exist now (GUI,CUI)
Backgrounds • Required software knowledge is too much for the beginner. • Environmental maintenance • Programming technique • UNIX system call etc.. • Every experiment has a unique DAQ-system • Toolkits for developing DAQ exist in the world • KONOE,CLDAQ.. • > Great deal of such knowledge is required
Purpose • To Support the development of a data acquisition system software of small experiments. • Users can develop DAQ easily. • To reduce amount of required knowledge. • DAQ-Builder also allows the user a shorter development period. • Users can develop via the user interface , without software program-compile work. • Users can develop intuitively using the GUI.
Which objects are required for an experiment!? • To control hardware module • CAMAC,VME,GPIB • To record experiment data • DataRecord,ReadoutList • To save data or To pass to a network • FileInputStream,Socket,SocketOutputStream • To event display and analysis • 1DHistogram,2DHistogram etc..
Example01 • Creating an objects
Action & Run Object • Users should create some Action Objects & a Run Object • Define operation of objects .. (Action Object) • Install Action Objects into the Run Object( Main Object ) • Operate Run Object
Example02 • The Action object is installed in the Run Object
How to create or operate ? • Instance Class • Partner plug-in • Class loader
Instance Object • All classes in the class library Inherit class Object • Has reference count,current type , inherit information. • All objects are held in Instance object • Operate objects reference count
A Partner Plug-in • Each class defined by the CL has their own partner plug-in. • Has methods return value type and arguments types. • Object is operated by the method "execute" in the plug-in.
Class Loader • Parse an information stored in the Action object. • Open the plug-in corresponding to the object. • Extract the function executes image from plug-in. • Execute • Check Objects operation( arguments , return value...check)
Features • Macro file • Things Created and Operated is recorded as Macro file • Resembles C++ form • Garbage collection • You can forget to delete objects.If you create an object via the DAQ-Builder-UI • Extendibility • You can extend DAQ-Builder by developing plug-in with specified style
Performance Test01 • Compare the Run Object created via the User Interface and execute file compiled bythe source code using the Class Library.
Performance Test02 • When data is read from one module • In the case which the number of channels increased • In the case which the number of events increased
Performance Test03 • In the case which the number of channelsincreased
Performance Test04 • In the case which the number of eventsincreased
Performance Test05 • Analysis • There is not a difference , In the case which the number of channelsincreased. • There is the difference of performance about 3 times ,In the case which the number of eventsincreased • Overheads of “Class Loader” • Using UI means that a performance decrease about 3 times compared to Using raw Class Library
Summary • DAQ can be developed interactively • We will be able to shorten the development period • Has following features. • Macro File • Garbage collection • Plug-in • Decrease performance compared to using raw Class Library
Future Goal & To do • Enrich GUI to make it easier to use • Optimize the DAQ-Builder to improve performance • Make the manual user-friendly • Get the world out about DAQ-Builder http://sourceforge.jp/projects/daq-builder Won't you join me ?
Macro file • Macro file • Things Created and Operated is recorded as Macro file • Resembles C++ form