LTPDA Graphic User Interfacesummary and status N. Tateo 26/06/2007
GUI summary The analysis software is composed by3 different elements:
The elements in the GUI 1. The functionslibrary 2. The AO array 3. The Parametersarray 4. The Simulinkwindow
1. The functions library The package consists of many functions,each accepting as input the data to be analyzedand the proper parameters: Matlab …
1. The functions library ltpda_lpsd ltpda_pwelch To work in Simulink all these functions are “converted” into Simulink blocks: Each block is identified by a (visible) tag, which is the function name, and by a (invisible) handle, which isan univocal number assigned by Simulink. ltpda_cohere Matlab Simulink
2. The GUI When the user starts the GUI, two arrays are created: MatlabWorkspace These are defined as global variables, so they areentirely and freely accessible by any function.
AnalysisObjectsArrayname: AnOb The AO Array 1 2 3 4 5
The Parameters Array ParametersArrayname: Parameters Block handle Block handle Block handle Block handle Block handle
AO1name, provenance, data, history… Paramlist1param1, param2, param3,… Where everything goes AO2name, provenance, data, history… Paramlist2param1, param2, param3,… ltpda_pwelch(data, parameters) ltpda_cohere(data, parameters) ltpda_pwelch(data, parameters) AO3name, provenance, data, history… Paramlist3param1, param2, param3,… 1 AO4name, provenance, data, history… Block handle 2 Block handle 3 Block handle 4
Paramlist1param1, param2, param3,… Parameters setting When the user select a block, the GUI retrieves the block handle. If no paramlist is associated to that handle, a new list is created and the panel let the user to compile its values. Block handle
Paramlist1param1, param2, param3,… function(data,parameters) When the user starts the analysis, each function retrieves the handle of its own block and by that the proper paramlist from the Parameters array in memory. Block handle This provides each functionwith the correct relative parameters.
AO1name, provenance, data, history… function(data,parameters) Each function similarly retrieves the data from the AO array in memory, by the pointer which is sent in the Simulink diagram. 1 Thus every function retrieves by itselfall its data and parameters.
Consequences • The entire parameters list is saved and keptoutside Simulink: this makes easier to modify previous analysis and to run nested loops, ie.multiple analyses varying one parameter at the time. • No delay is introduced by Simulink, since no real data are sent inside its diagram (ie, its workspace). There is only one copy of AOs and parameters saved in memory, and every function can retrieve them using the correct pointer (the AO ordinal number for data, the block handle for parameters).
Consequences • The analysis speed is maximized, since everything which could slow it down (such as GUI control cycle) is stopped when the analysis is started. • The analysis results can easily be gathered and savedtogether, data + parameters + diagram, thus ensuring excellent traceability and a simple data analysis management.
Future steps • Convert the GUI into a true operative tool,implementing the ability to save and load analysis(ie, to import and export data parameters and diagrams). • Enable it to deal with multiple analysis at once,ie. more than a single Simulink window at the time. • Complete the implementation of functionsin the Simulink library. • Turn the library into a Simulink toolbox, with a tree structure which will make it easier and faster to use.
Future steps • Add the Color Control Panel. • Implement a validation cycle, to check the consistencyof the parameters set by the user prior to the executionof the analysis. • Implement the code to enable nested loops(do we want some kind of optimization system?). • Let the people in the labs to use it, and mark downtheir feelings.