Design and Development of a Diagnostics Client for a Beam Loss ...
Design and Development of a Diagnostics Client for a Beam Loss ...
Design and Development of a Diagnostics Client for a Beam Loss ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Design</strong> <strong>and</strong> <strong>Development</strong> <strong>of</strong> a <strong>Diagnostics</strong> <strong>Client</strong> <strong>for</strong> a <strong>Beam</strong> <strong>Loss</strong> Measurement System at CERN<br />
Figure 27: Offline pick with minimum-maximum enabled <strong>and</strong> measurement period 2 μs.<br />
4.4.4.1 <strong>Design</strong> implementation <strong>of</strong> the <strong>of</strong>fline interface<br />
The <strong>of</strong>fline user interface <strong>and</strong> the logic behind it, is created <strong>and</strong> h<strong>and</strong>led by 3 different<br />
sub-classes which extend a JPanel class. The first one named OfflineDataViewerGUI is<br />
responsible <strong>for</strong> the creation <strong>of</strong> the interface. Similar to the online interface, this class uses<br />
different layout managers to create small inner panels with all the required components.<br />
An object <strong>of</strong> this class is created inside the constructor <strong>of</strong> the OnlineDataViewerGUI. The<br />
second class <strong>of</strong> the <strong>of</strong>fline concept is named UpperOfflinePanel. Likewise, an object <strong>of</strong><br />
that class is created inside the constructor <strong>of</strong> the OfflineDataViewerGUI <strong>and</strong> is added to<br />
the north <strong>of</strong> the interface as a JPanel. Basically, it implements the logic behind the Open<br />
button <strong>and</strong> all the different components that lie in the upper panel <strong>of</strong> the interface. It creates<br />
an action listener <strong>for</strong> the button which h<strong>and</strong>les requests <strong>for</strong> displaying past online sessions<br />
by the user. Given the selected online session path, all the data are collected by the .stats<br />
files <strong>of</strong> the acquisition <strong>and</strong> stored into buffers. These buffers, along with other variables<br />
such as file descriptors <strong>and</strong> lengths, constitute the arguments <strong>of</strong> the constructor <strong>of</strong> the third<br />
class; the DataPicker. This class creates the data-picker graph with the stats plots from<br />
the requested acquisition session. A DataPicker instance is constructed inside the action<br />
listener after a selection <strong>of</strong> an acquisition session path by the user. This is the reason why<br />
the graph appears in the interface after a valid path selection. This class h<strong>and</strong>les most <strong>of</strong><br />
the picking <strong>and</strong> processing logic <strong>of</strong> the displayed data in both graphs. It also contains an<br />
action <strong>and</strong> an item listener <strong>for</strong> the scaling settings <strong>and</strong> the measurement period spinner<br />
respectively. Finally, it provides a method to dereference every inner object field. This is<br />
vital to avoid memory leaks in the heap space after a sequence <strong>of</strong> opening different past<br />
Emmanouil I. Angelogiannopoulos 42