1 package ui.controllers;
4 import gnu.io.PortInUseException;
5 import gnu.io.UnsupportedCommOperationException;
6 import javafx.collections.ObservableList;
7 import javafx.fxml.FXML;
8 import javafx.scene.control.ComboBox;
9 import javafx.scene.paint.Color;
10 import javafx.scene.text.Text;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
17 import org.springframework.beans.factory.annotation.Autowired;
20 import java.io.IOException;
21 import java.util.List;
33 private static final Logger log = LoggerFactory.getLogger(
44 @FXML
private ComboBox<String> tdkPortSelector;
50 @FXML
private ComboBox<String> pvciPortSelector;
55 @FXML
private Text statusReportField;
69 configurePowerSupply();
70 configurePressureGauge();
90 private void initializePortList(){
91 ObservableList<String> portsInBox = tdkPortSelector.getItems();
92 ObservableList<String> portsInPVCiSelector = pvciPortSelector
99 portsInBox.addAll(serialPortNames);
100 portsInPVCiSelector.addAll(serialPortNames);
102 tdkPortSelector.getSelectionModel().select(0);
103 pvciPortSelector.getSelectionModel().select(0);
109 private void configurePowerSupply(){
110 String portName = tdkPortSelector.getSelectionModel().getSelectedItem();
117 }
catch (IOException error){
119 }
catch (UnsupportedCommOperationException error){
120 handleUnsupportedCommException();
121 }
catch (PortInUseException error){
122 handlePortInUseException();
124 handleDeviceAlreadyCreatedException();
131 private void handleIOException(){
133 "Port was opened, but unable to establish device I/O",
134 "io-exception-message" 142 private void handleUnsupportedCommException(){
144 "Unable to set parameters to establish serial port " +
146 "comm-operation-exception-message" 153 private void handlePortInUseException(){
155 "Unable to acquire port. Port is already in use.",
156 "port-in-use-exception-message" 167 private void writeErrorMessage(String text, String fieldId){
168 statusReportField.setText(text);
169 statusReportField.setFill(Color.RED);
170 statusReportField.setId(fieldId);
178 private void handleDeviceAlreadyCreatedException(){
179 statusReportField.setText(
180 "Attempted to create power supply twice" 182 statusReportField.setId(
183 "device-created-exception-message" 190 private void configurePressureGauge(){
191 String portName = pvciPortSelector.getSelectionModel()
201 }
catch (IOException error){
202 handlePVCiIOException(error);
211 private void handlePVCiIOException(Throwable error){
212 log.error(
"Setup thew exception", error);
214 "Unable to establish communication with Pressure Gauge",
215 "pvci-io-exception-message"
List< String > getSerialPortNames()
void setPortName(String portName)
void setPortName(String portName)
void setAddress(Integer address)
void handleGoButtonClicked()
void setKernel(Kernel kernel)