final static int Active = 2;
final static int Open = 3;
- private void start_serial() throws InterruptedException {
+ private void start_serial() throws InterruptedException, TimeoutException {
serial_started = true;
if (remote)
serial.start_remote();
if (serial == null)
return status;
string_ref status_name = new string_ref();
- start_serial();
- serial.printf("t\n");
- for (;;) {
- String line = serial.get_reply(5000);
- if (line == null)
- throw new TimeoutException();
- if (get_string(line, "Igniter: drogue Status: ", status_name))
- if (igniter == Apogee)
- status = status(status_name.get());
- if (get_string(line, "Igniter: main Status: ", status_name)) {
- if (igniter == Main)
- status = status(status_name.get());
- break;
+ try {
+ start_serial();
+ serial.printf("t\n");
+ for (;;) {
+ String line = serial.get_reply(5000);
+ if (line == null)
+ throw new TimeoutException();
+ if (get_string(line, "Igniter: drogue Status: ", status_name))
+ if (igniter == Apogee)
+ status = status(status_name.get());
+ if (get_string(line, "Igniter: main Status: ", status_name)) {
+ if (igniter == Main)
+ status = status(status_name.get());
+ break;
+ }
}
+ } finally {
+ stop_serial();
}
- stop_serial();
return status;
}
break;
}
} catch (InterruptedException ie) {
+ } catch (TimeoutException te) {
} finally {
try {
stop_serial();
serial.set_frame(frame);
}
- public AltosIgnite(AltosDevice in_device) throws FileNotFoundException, AltosSerialInUseException {
+ public AltosIgnite(AltosDevice in_device)
+ throws FileNotFoundException, AltosSerialInUseException, TimeoutException, InterruptedException {
device = in_device;
serial = new AltosSerial(device);
remote = false;
- if (!device.matchProduct(AltosDevice.product_telemetrum))
+ if (!device.matchProduct(Altos.product_telemetrum))
remote = true;
}
}
\ No newline at end of file