altosui: Use helper functions to access arrays in AltosLib class
[fw/altos] / altoslib / AltosTelemetryRecordRaw.java
1 /*
2  * Copyright © 2011 Keith Packard <keithp@keithp.com>
3  *
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.
7  *
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.
12  *
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.
16  */
17
18 package org.altusmetrum.AltosLib;
19
20 import java.lang.*;
21 import java.text.*;
22 import java.util.HashMap;
23
24 public class AltosTelemetryRecordRaw extends AltosTelemetryRecord {
25         int[]   bytes;
26         int     serial;
27         int     tick;
28         int     type;
29
30         long    received_time;
31
32         public int int8(int off) {
33                 return AltosLib.int8(bytes, off + 1);
34         }
35
36         public int uint8(int off) {
37                 return AltosLib.uint8(bytes, off + 1);
38         }
39
40         public int int16(int off) {
41                 return AltosLib.int16(bytes, off + 1);
42         }
43
44         public int uint16(int off) {
45                 return AltosLib.uint16(bytes, off + 1);
46         }
47
48         public int uint32(int off) {
49                 return AltosLib.uint32(bytes, off + 1);
50         }
51
52         public int int32(int off) {
53                 return AltosLib.int32(bytes, off + 1);
54         }
55
56         public String string(int off, int l) {
57                 return AltosLib.string(bytes, off + 1, l);
58         }
59
60         public AltosTelemetryRecordRaw(int[] in_bytes) {
61                 bytes = in_bytes;
62                 serial = uint16(0);
63                 tick   = uint16(2);
64                 type   = uint8(4);
65         }
66
67         public AltosRecord update_state(AltosRecord previous) {
68                 AltosRecord     next;
69                 if (previous != null)
70                         next = previous.clone();
71                 else
72                         next = new AltosRecord();
73                 next.serial = serial;
74                 next.tick = tick;
75                 return next;
76         }
77
78         public long received_time() {
79                 return received_time;
80         }
81 }