BakeoutController-Basic  0.1
A Controller for the Omicron vacuum chamber
models/PVCiPressureGaugeFactory.java
1 package kernel.models;
2 
5 import kernel.Kernel;
13 import org.jetbrains.annotations.Contract;
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
16 import org.springframework.beans.factory.annotation.Autowired;
17 
18 import java.io.IOException;
19 
23 public class PVCiPressureGaugeFactory implements
24  kernel.controllers.PVCiPressureGaugeFactory {
25 
29  private static Logger log = LoggerFactory.getLogger(
31  );
32 
36  private Integer address = 2;
37 
41  private String portName;
42 
47  @Autowired
48  private Kernel kernel;
49 
53  @Contract(pure = true)
54  @Override
55  public Kernel getKernel(){
56  return kernel;
57  }
58 
62  @Override
63  public void setKernel(Kernel kernel){
64  this.kernel = kernel;
65  }
66 
70  @Override
71  public Integer getAddress(){
72  return this.address;
73  }
74 
78  @Override
79  public void setAddress(Integer address){
80  this.address = address;
81  }
82 
86  @Override
87  public String getPortName(){
88  return this.portName;
89  }
90 
94  @Override
95  public void setPortName(String portName){
96  this.portName = portName;
97  }
98 
106  @Override
107  public PressureGauge getPressureGauge() throws IOException {
108  DeviceContainer registry = kernel.getDeviceRegistryView();
109 
110  if(!registry.hasPressureGauge()){
111  writeEntryforNoGauge();
113  }
114 
115  PressureGauge gauge = registry.getPressureGauge();
116 
117  writeEntryForGauge(gauge);
118 
119  return gauge;
120  }
121 
126  @Override
127  public void makePressureGauge() throws IOException {
128  kernel.controllers.DeviceRegistry registry = kernel
129  .getDeviceRegistryController();
130 
131  registry.setPressureGauge(createInstance());
132  }
133 
137  @Contract(" -> !null")
138  private PressureGauge createInstance() throws IOException {
139  PressureGauge gauge = new PVCiPressureGauge(address, getConnection());
140 
142  gauge, kernel
143  );
144  kernel.getVariableProvidersController().setPressureProvider(provider);
145 
146  return gauge;
147  }
148 
152  private ModbusConnector getConnection(){
153  ModbusConnector connector = kernel.getModbusConnector();
154  connector.setPortConfiguration(getConfiguration());
155 
156  return connector;
157  }
158 
163  private ModbusPortConfiguration getConfiguration(){
164  ModbusPortConfiguration config = new
166 
167  config.setPortName(portName);
173 
174  return config;
175  }
176 
183  private static void writeEntryForGauge(PressureGauge gauge){
184  log.debug("Found Pressure gauge {}", gauge);
185  }
186 
191  private static void writeEntryforNoGauge(){
192  log.debug("No pressure gauge found. Creating a new one.");
193  }
194 }
void setEncoding(String encoding)
void setPortName(String portName)
void setPortConfiguration(ModbusPortConfiguration configuration)
void setParityBits(int parityBits)
Git Repo