X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosdroid%2Fapp%2Fsrc%2Fmain%2Fjava%2Forg%2Faltusmetrum%2FAltosDroid%2FTelemetryState.java;h=4ce644e54afcdb3fd9e8d8f0df415c62827e4a6b;hp=d292c7bff6331924f2933696b7041bf724f39c12;hb=79f2677143f85a2807b8d4e297f3617aafbd34da;hpb=6e3c4493cfa8d92d96808d14d1c12abb35ecb442 diff --git a/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/TelemetryState.java b/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/TelemetryState.java index d292c7bf..4ce644e5 100644 --- a/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/TelemetryState.java +++ b/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/TelemetryState.java @@ -35,11 +35,44 @@ public class TelemetryState { double frequency; int telemetry_rate; + boolean idle_mode; boolean quiet; - HashMap states; + private HashMap states; int latest_serial; + long latest_received_time; + + public void put(int serial, AltosState state) { + long received_time = state.received_time; + if (received_time > latest_received_time || latest_serial == 0) { + latest_serial = serial; + latest_received_time = received_time; + } + states.put(serial, state); + } + + public AltosState get(int serial) { + if (states.containsKey(serial)) + return states.get(serial); + return null; + } + + public void remove(int serial) { + states.remove((Integer) serial); + } + + public Set keySet() { + return states.keySet(); + } + + public Collection values() { + return states.values(); + } + + public boolean containsKey(int serial) { + return states.containsKey(serial); + } public TelemetryState() { connect = CONNECT_NONE;