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 32: Default outlook <strong>of</strong> an advanced comm<strong>and</strong>s tab.<br />
size <strong>of</strong> each advanced comm<strong>and</strong> is variable, so it can be either greater or equal to 1. In<br />
the first case, the payload value is parsed from a textfield as in the first two rows. The Set<br />
button is used to send the comm<strong>and</strong> in this respect. In the second case, the payload value<br />
(On/Off states) is set <strong>and</strong> the comm<strong>and</strong> is sent, by a “Press” action <strong>of</strong> the corresponding<br />
On/Off buttons. The total number <strong>of</strong> the advanced comm<strong>and</strong>s in this tab is based on the<br />
CSV file <strong>and</strong> is completely dynamic. Using this feature, the developers <strong>of</strong> the FPGA can<br />
add/remove new comm<strong>and</strong>s in the file <strong>and</strong> reload the client updated.<br />
4.4.6.1 <strong>Design</strong> implementation <strong>of</strong> the comm<strong>and</strong>s interfaces<br />
The two comm<strong>and</strong>s displays are developed around two main classes <strong>and</strong> an auxiliary one.<br />
The static comm<strong>and</strong>s tab is implemented by a class named StaticComm<strong>and</strong>sGUI. This<br />
class responsibility is to create the static comm<strong>and</strong>s tab interface, as well as implement<br />
action listeners <strong>for</strong> the different elements inside the interface. The auxiliary class named<br />
Comm<strong>and</strong>s, implements the separate construction <strong>of</strong> each comm<strong>and</strong>. The comm<strong>and</strong>s<br />
are sent via the TCP socket to the server after construction. A “Set” action by the user is<br />
required to fire the code <strong>for</strong> constructing <strong>and</strong> sending the corresponding comm<strong>and</strong> inside<br />
an action listener. The other main class, used <strong>for</strong> the creation <strong>of</strong> the Advanced comm<strong>and</strong>s<br />
tab, is called GUIScalarElement. This class is used only in case a suitable CSV file is<br />
present in the project’s resources. Firstly, it parses the CSV file <strong>and</strong> sets its fields with the<br />
required in<strong>for</strong>mation. Finally, an ArrayList, which contains all the Advanced comm<strong>and</strong>s<br />
rows as elements, is returned by dedicated methods <strong>and</strong> manipulated properly.<br />
Emmanouil I. Angelogiannopoulos 47