boolean remote;
boolean close_on_exit;
boolean link_started;
- boolean have_npyro = false;
+ boolean has_pyro_info = false;
+ boolean has_standard = false;
int npyro;
AltosConfigData config_data;
npyro = config_data.npyro;
else
npyro = 0;
- have_npyro = true;
+ if (config_data != null)
+ has_standard = config_data.ignite_mode != AltosLib.MISSING;
+
+ has_pyro_info = true;
}
public int npyro() throws InterruptedException, TimeoutException {
- if (!have_npyro) {
+ if (!has_pyro_info) {
start_link();
get_npyro();
stop_link();
return npyro;
}
+ public boolean has_standard() throws InterruptedException, TimeoutException {
+ if (!has_pyro_info) {
+ start_link();
+ get_npyro();
+ stop_link();
+ }
+ return has_standard;
+ }
+
public HashMap<String,Integer> status() throws InterruptedException, TimeoutException {
HashMap<String,Integer> status = new HashMap<String,Integer>();
ButtonGroup group;
Boolean opened;
+ boolean has_standard;
int npyro;
final static int timeout = 1 * 1000;
}
reply = "status";
} else if (command.equals("get_npyro")) {
- reply = String.format("npyro %d", ignite.npyro());
+ reply = String.format("npyro %d %d", ignite.npyro(), ignite.has_standard() ? 1 : 0);
} else if (command.equals("quit")) {
ignite.close();
break;
} else if (reply.equals("fired")) {
fired();
} else if (reply.startsWith("npyro")) {
- npyro = Integer.parseInt(reply.substring(6));
+ String items[] = reply.split("\\s+");
+ npyro = Integer.parseInt(items[1]);
if (npyro == AltosLib.MISSING)
npyro = 0;
+ has_standard = Integer.parseInt(items[2]) != 0;
make_ui();
}
}
y++;
- igniters = new Igniter[2 + npyro];
+ int nstandard = 0;
+ if (has_standard)
+ nstandard = 2;
- igniters[0] = new Igniter(this, "Apogee", AltosIgnite.Apogee, y++);
- igniters[1] = new Igniter(this, "Main", AltosIgnite.Main, y++);
+ igniters = new Igniter[nstandard + npyro];
+
+ if (has_standard) {
+ igniters[0] = new Igniter(this, "Apogee", AltosIgnite.Apogee, y++);
+ igniters[1] = new Igniter(this, "Main", AltosIgnite.Main, y++);
+ }
for (int p = 0; p < npyro; p++) {
String name = String.format("%d", p);
String label = String.format("%c", 'A' + p);
- igniters[2+p] = new Igniter(this, label, name, y++);
+ igniters[nstandard+p] = new Igniter(this, label, name, y++);
}
c.gridx = 0;