Change AltosLib to altoslib
[fw/altos] / altoslib / AltosTelemetryRecord.java
index 367c148dd187df11645877b2ccbfcaf9beaca95a..22da28369731e11e4e6899dbee62c2928bcdf2b6 100644 (file)
@@ -15,7 +15,8 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.AltosLib;
+package org.altusmetrum.altoslib;
+import java.text.*;
 
 public abstract class AltosTelemetryRecord {
 
@@ -41,13 +42,15 @@ public abstract class AltosTelemetryRecord {
        final static int packet_type_location = 0x05;
        final static int packet_type_satellite = 0x06;
        final static int packet_type_companion = 0x07;
+       final static int packet_type_MM_sensor = 0x08;
+       final static int packet_type_MM_data = 0x09;
        
        static AltosTelemetryRecord parse_hex(String hex)  throws ParseException, AltosCRCException {
                AltosTelemetryRecord    r;
 
                int[] bytes;
                try {
-                       bytes = Altos.hexbytes(hex);
+                       bytes = AltosLib.hexbytes(hex);
                } catch (NumberFormatException ne) {
                        throw new ParseException(ne.getMessage(), 0);
                }
@@ -60,16 +63,16 @@ public abstract class AltosTelemetryRecord {
                if (!cksum(bytes))
                        throw new ParseException(String.format("invalid line \"%s\"", hex), 0);
 
-               int     rssi = Altos.int8(bytes, bytes.length - 3) / 2 - 74;
-               int     status = Altos.uint8(bytes, bytes.length - 2);
+               int     rssi = AltosLib.int8(bytes, bytes.length - 3) / 2 - 74;
+               int     status = AltosLib.uint8(bytes, bytes.length - 2);
 
                if ((status & PKT_APPEND_STATUS_1_CRC_OK) == 0)
                        throw new AltosCRCException(rssi);
 
                /* length, data ..., rssi, status, checksum -- 4 bytes extra */
                switch (bytes.length) {
-               case Altos.ao_telemetry_standard_len + 4:
-                       int     type = Altos.uint8(bytes, 4 + 1);
+               case AltosLib.ao_telemetry_standard_len + 4:
+                       int     type = AltosLib.uint8(bytes, 4 + 1);
                        switch (type) {
                        case packet_type_TM_sensor:
                        case packet_type_Tm_sensor:
@@ -88,15 +91,21 @@ public abstract class AltosTelemetryRecord {
                        case packet_type_companion:
                                r = new AltosTelemetryRecordCompanion(bytes);
                                break;
+                       case packet_type_MM_sensor:
+                               r = new AltosTelemetryRecordMegaSensor(bytes, rssi);
+                               break;
+                       case packet_type_MM_data:
+                               r = new AltosTelemetryRecordMegaData(bytes);
+                               break;
                        default:
                                r = new AltosTelemetryRecordRaw(bytes);
                                break;
                        }
                        break;
-               case Altos.ao_telemetry_0_9_len + 4:
+               case AltosLib.ao_telemetry_0_9_len + 4:
                        r = new AltosTelemetryRecordLegacy(bytes, rssi, status);
                        break;
-               case Altos.ao_telemetry_0_8_len + 4:
+               case AltosLib.ao_telemetry_0_8_len + 4:
                        r = new AltosTelemetryRecordLegacy(bytes, rssi, status);
                        break;
                default: