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

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

Saved successfully!

Ooh no, something went wrong!