altoslib: Move new sensor library code into altoslib
[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 String string(int off, int l) {
53                 return AltosLib.string(bytes, off + 1, l);
54         }
55
56         public AltosTelemetryRecordRaw(int[] in_bytes) {
57                 bytes = in_bytes;
58                 serial = uint16(0);
59                 tick   = uint16(2);
60                 type   = uint8(4);
61         }
62
63         public AltosRecord update_state(AltosRecord previous) {
64                 AltosRecord     next;
65                 if (previous != null)
66                         next = new AltosRecord(previous);
67                 else
68                         next = new AltosRecord();
69                 next.serial = serial;
70                 next.tick = tick;
71                 return next;
72         }
73
74         public long received_time() {
75                 return received_time;
76         }
77 }