Development of a data acquisition program builder via a user interface

Download Report

Transcript Development of a data acquisition program builder via a user interface

Development of a data acquisition program
builder via a user interface
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
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
Example03
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 by the 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 channels increased
Performance Test04
• In the case which the number of events increased
Performance Test05
• Analysis
– There is not a difference , In the case which the
number of channels increased.
– There is the difference of performance about 3
times ,In the case which the number of events
increased
– 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