X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosEepromLog.java;h=be2549cb84dafed1af59c61c0f48f8e43164b38c;hp=0cf420d9c7d2a45b5bf89abb4d32bbfa551c45a0;hb=03e201e1acc8742399054e4ad36b533120ea1612;hpb=5a3e96bef31959a287b8696778d7d8cf911a7dc4 diff --git a/altosui/AltosEepromLog.java b/altosui/AltosEepromLog.java index 0cf420d9..be2549cb 100644 --- a/altosui/AltosEepromLog.java +++ b/altosui/AltosEepromLog.java @@ -46,7 +46,8 @@ public class AltosEepromLog { boolean download; boolean delete; - public AltosEepromLog(AltosSerial serial_line, int in_serial, + public AltosEepromLog(AltosConfigData config_data, + AltosSerial serial_line, int in_flight, int in_start_block, int in_end_block) throws InterruptedException, TimeoutException { @@ -54,51 +55,55 @@ public class AltosEepromLog { int block; boolean has_date = false; + flight = in_flight; + if (flight != 0) + has_flight = true; start_block = in_start_block; end_block = in_end_block; - serial = in_serial; + serial = config_data.serial; /* * By default, request that every log be downloaded but not deleted */ download = true; delete = false; + /* - * Only look in the first two blocks so that this - * process doesn't take a long time + * Look in TeleMetrum log data for date */ - if (in_end_block > in_start_block + 2) - in_end_block = in_start_block + 2; + if (config_data.log_format == Altos.AO_LOG_FORMAT_UNKNOWN || + config_data.log_format == Altos.AO_LOG_FORMAT_FULL) + { + /* + * Only look in the first two blocks so that this + * process doesn't take a long time + */ + if (in_end_block > in_start_block + 2) + in_end_block = in_start_block + 2; - for (block = in_start_block; block < in_end_block; block++) { - AltosEepromChunk eechunk = new AltosEepromChunk(serial_line, block); + for (block = in_start_block; block < in_end_block; block++) { + AltosEepromChunk eechunk = new AltosEepromChunk(serial_line, block); - if (block == in_start_block) { - if (eechunk.data16(0) == in_flight) { - flight = in_flight; - has_flight = true; - break; - } - } - for (int i = 0; i < eechunk.chunk_size; i += AltosEepromRecord.record_length) { - try { - AltosEepromRecord r = new AltosEepromRecord(eechunk, i); + for (int i = 0; i < eechunk.chunk_size; i += AltosEepromRecord.record_length) { + try { + AltosEepromRecord r = new AltosEepromRecord(eechunk, i); - if (r.cmd == Altos.AO_LOG_FLIGHT) { - flight = r.b; - has_flight = true; - } - if (r.cmd == Altos.AO_LOG_GPS_DATE) { - year = 2000 + (r.a & 0xff); - month = (r.a >> 8) & 0xff; - day = (r.b & 0xff); - has_date = true; + if (r.cmd == Altos.AO_LOG_FLIGHT) { + flight = r.b; + has_flight = true; + } + if (r.cmd == Altos.AO_LOG_GPS_DATE) { + year = 2000 + (r.a & 0xff); + month = (r.a >> 8) & 0xff; + day = (r.b & 0xff); + has_date = true; + } + } catch (ParseException pe) { } - } catch (ParseException pe) { } + if (has_date && has_flight) + break; } - if (has_date && has_flight) - break; } } }