altos: Only set CMAC RSSI value on valid packet received
[fw/altos] / src / kernel / ao_config.c
index 83a8cd77092e7449509ee75fa7d38907c2c18c46..b0d3e5417533ccf32e79e8fd905fc5b386d1d7b7 100644 (file)
@@ -219,6 +219,10 @@ _ao_config_get(void)
 #if HAS_RADIO_FORWARD
                if (minor < 21)
                        ao_config.send_frequency = 434550;
+#endif
+#if HAS_APRS
+               if (minor < 22)
+                       ao_config.aprs_format = AO_CONFIG_DEFAULT_APRS_FORMAT;
 #endif
                ao_config.minor = AO_CONFIG_MINOR;
                ao_config_dirty = 1;
@@ -388,7 +392,6 @@ ao_config_accel_calibrate_auto(char *orientation) __reentrant
        uint16_t        i;
        int32_t         accel_total;
        uint8_t         cal_data_ring;
-       int16_t         min = 32767, max = -32768;
 #if HAS_GYRO
        int32_t         accel_along_total = 0;
        int32_t         accel_across_total = 0;
@@ -406,10 +409,7 @@ ao_config_accel_calibrate_auto(char *orientation) __reentrant
        while (i) {
                ao_sleep(DATA_TO_XDATA(&ao_sample_data));
                while (i && cal_data_ring != ao_sample_data) {
-                       int16_t v = ao_data_accel(&ao_data_ring[cal_data_ring]);
-                       accel_total += (int32_t) v;
-                       if (v < min) min = v;
-                       if (v > max) max = v;
+                       accel_total += (int32_t) ao_data_accel(&ao_data_ring[cal_data_ring]);
 #if HAS_GYRO
                        accel_along_total += (int32_t) ao_data_along(&ao_data_ring[cal_data_ring]);
                        accel_across_total += (int32_t) ao_data_across(&ao_data_ring[cal_data_ring]);
@@ -424,7 +424,6 @@ ao_config_accel_calibrate_auto(char *orientation) __reentrant
        accel_cal_across = accel_across_total >> ACCEL_CALIBRATE_SHIFT;
        accel_cal_through = accel_through_total >> ACCEL_CALIBRATE_SHIFT;
 #endif
-       printf ("total %d min %d max %d\n", accel_total, min, max);
        return accel_total >> ACCEL_CALIBRATE_SHIFT;
 }
 
@@ -881,6 +880,23 @@ ao_config_aprs_ssid_set(void)
        ao_config.aprs_ssid = ao_cmd_lex_i;
        _ao_config_edit_finish();
 }
+
+void
+ao_config_aprs_format_set(void)
+{
+       ao_cmd_decimal();
+       if (ao_cmd_status != ao_cmd_success)
+               return;
+       _ao_config_edit_start();
+       ao_config.aprs_format = ao_cmd_lex_i != 0;
+       _ao_config_edit_finish();
+}
+
+void
+ao_config_aprs_format_show(void)
+{
+       printf ("APRS format: %d\n", ao_config.aprs_format);
+}
 #endif /* HAS_APRS */
 
 struct ao_config_var {
@@ -974,6 +990,8 @@ __code struct ao_config_var ao_config_vars[] = {
 #if HAS_APRS
        { "S <ssid>\0Set APRS SSID (0-15)",
          ao_config_aprs_ssid_set, ao_config_aprs_ssid_show },
+       { "C <0 compressed, 1 uncompressed>\0APRS format",
+         ao_config_aprs_format_set, ao_config_aprs_format_show },
 #endif
        { "s\0Show",
          ao_config_show,               0 },