05.07.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!