2 * Copyright © 2011 Keith Packard <keithp@keithp.com>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 2 of the License.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
21 import java.awt.event.*;
23 import javax.swing.filechooser.FileNameExtensionFilter;
24 import javax.swing.table.*;
28 import java.util.prefs.*;
29 import java.util.concurrent.*;
30 import java.lang.reflect.Array;
34 public class AltosEepromBlock extends ArrayList<AltosEepromRecord> {
46 int hour, minute, second;
48 public AltosEepromBlock (AltosSerial serial_line, int block) throws TimeoutException, InterruptedException {
58 serial_line.printf("e %x\n", block);
59 for (addr = 0; !done && addr < 0x100;) {
61 AltosEepromRecord r = new AltosEepromRecord(serial_line, block * 256 + addr);
63 if (r.cmd == Altos.AO_LOG_FLIGHT) {
68 /* Monitor state transitions to update display */
69 if (r.cmd == Altos.AO_LOG_STATE && r.a <= Altos.ao_flight_landed) {
70 if (!has_state || r.a > state) {
76 if (r.cmd == Altos.AO_LOG_GPS_DATE) {
77 year = 2000 + (r.a & 0xff);
78 month = (r.a >> 8) & 0xff;
82 if (r.cmd == Altos.AO_LOG_GPS_TIME) {
85 second = (r.b & 0xff);
88 if (r.cmd == Altos.AO_LOG_GPS_LAT) {
89 lat = (double) (r.a | (r.b << 16)) / 1e7;
92 if (r.cmd == Altos.AO_LOG_GPS_LON) {
93 lon = (double) (r.a | (r.b << 16)) / 1e7;
96 if (r.cmd == Altos.AO_LOG_STATE && r.a == Altos.ao_flight_landed)
99 } catch (ParseException pe) {