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.
18 package org.altusmetrum.altoslib_10;
20 public abstract class AltosTelemetryStandard extends AltosTelemetry {
24 public int int8(int off) {
25 return AltosLib.int8(bytes, off + 1);
28 public int uint8(int off) {
29 return AltosLib.uint8(bytes, off + 1);
32 public int int16(int off) {
33 return AltosLib.int16(bytes, off + 1);
36 public int uint16(int off) {
37 return AltosLib.uint16(bytes, off + 1);
40 public int uint32(int off) {
41 return AltosLib.uint32(bytes, off + 1);
44 public int int32(int off) {
45 return AltosLib.int32(bytes, off + 1);
48 public String string(int off, int l) {
49 return AltosLib.string(bytes, off + 1, l);
52 public static AltosTelemetry parse_hex(int[] bytes) {
53 int type = AltosLib.uint8(bytes, 4 + 1);
57 case packet_type_TM_sensor:
58 case packet_type_Tm_sensor:
59 case packet_type_Tn_sensor:
60 telem = new AltosTelemetrySensor(bytes);
62 case packet_type_configuration:
63 telem = new AltosTelemetryConfiguration(bytes);
65 case packet_type_location:
66 telem = new AltosTelemetryLocation(bytes);
68 case packet_type_satellite:
69 telem = new AltosTelemetrySatellite(bytes);
71 case packet_type_companion:
72 telem = new AltosTelemetryCompanion(bytes);
74 case packet_type_mega_sensor:
75 telem = new AltosTelemetryMegaSensor(bytes);
77 case packet_type_mega_data:
78 telem = new AltosTelemetryMegaData(bytes);
80 case packet_type_metrum_sensor:
81 telem = new AltosTelemetryMetrumSensor(bytes);
83 case packet_type_metrum_data:
84 telem = new AltosTelemetryMetrumData(bytes);
86 case packet_type_mini:
87 telem = new AltosTelemetryMini(bytes);
90 telem = new AltosTelemetryRaw(bytes);
96 public AltosTelemetryStandard(int[] bytes) {
104 public void update_state(AltosState state) {
105 super.update_state(state);