diff --git a/src/main/telemetry/ltm.c b/src/main/telemetry/ltm.c index 9c75370d4bd..8a9a5c85902 100644 --- a/src/main/telemetry/ltm.c +++ b/src/main/telemetry/ltm.c @@ -158,28 +158,32 @@ void ltm_gframe(sbuf_t *dst) void ltm_sframe(sbuf_t *dst) { - uint8_t lt_flightmode; + ltm_modes_e lt_flightmode; if (FLIGHT_MODE(MANUAL_MODE)) - lt_flightmode = 0; + lt_flightmode = LTM_MODE_MANUAL; else if (FLIGHT_MODE(NAV_WP_MODE)) - lt_flightmode = 10; + lt_flightmode = LTM_MODE_WAYPOINTS; else if (FLIGHT_MODE(NAV_RTH_MODE)) - lt_flightmode = 13; + lt_flightmode = LTM_MODE_RTH; else if (FLIGHT_MODE(NAV_POSHOLD_MODE)) - lt_flightmode = 9; + lt_flightmode = LTM_MODE_GPSHOLD; else if (FLIGHT_MODE(NAV_CRUISE_MODE)) - lt_flightmode = 18; + lt_flightmode = LTM_MODE_CRUISE; + else if (FLIGHT_MODE(NAV_LAUNCH_MODE)) + lt_flightmode = LTM_MODE_LAUNCH; + else if (FLIGHT_MODE(AUTO_TUNE)) + lt_flightmode = LTM_MODE_AUTOTUNE; else if (FLIGHT_MODE(NAV_ALTHOLD_MODE)) - lt_flightmode = 8; + lt_flightmode = LTM_MODE_ALTHOLD; else if (FLIGHT_MODE(HEADFREE_MODE) || FLIGHT_MODE(HEADING_MODE)) - lt_flightmode = 11; + lt_flightmode = LTM_MODE_HEADHOLD; else if (FLIGHT_MODE(ANGLE_MODE)) - lt_flightmode = 2; + lt_flightmode = LTM_MODE_ANGLE; else if (FLIGHT_MODE(HORIZON_MODE)) - lt_flightmode = 3; + lt_flightmode = LTM_MODE_HORIZON; else - lt_flightmode = 1; // Rate mode + lt_flightmode = LTM_MODE_RATE; // Rate mode uint8_t lt_statemode = (ARMING_FLAG(ARMED)) ? 1 : 0; if (failsafeIsActive()) diff --git a/src/main/telemetry/ltm.h b/src/main/telemetry/ltm.h index f00d8d2e199..36bdee32aa3 100644 --- a/src/main/telemetry/ltm.h +++ b/src/main/telemetry/ltm.h @@ -45,6 +45,33 @@ typedef enum { #define LTM_MAX_PAYLOAD_SIZE 14 #define LTM_MAX_MESSAGE_SIZE (LTM_MAX_PAYLOAD_SIZE+4) + +typedef enum { + LTM_MODE_MANUAL = 0, + LTM_MODE_RATE, + LTM_MODE_ANGLE, + LTM_MODE_HORIZON, + LTM_MODE_ACRO, + LTM_MODE_STABALIZED1, + LTM_MODE_STABALIZED2, + LTM_MODE_STABILIZED3, + LTM_MODE_ALTHOLD, + LTM_MODE_GPSHOLD, + LTM_MODE_WAYPOINTS, + LTM_MODE_HEADHOLD, + LTM_MODE_CIRCLE, + LTM_MODE_RTH, + LTM_MODE_FOLLOWWME, + LTM_MODE_LAND, + LTM_MODE_FLYBYWIRE1, + LTM_MODE_FLYBYWIRE2, + LTM_MODE_CRUISE, + LTM_MODE_UNKNOWN, + // iNav specific extensions + LTM_MODE_LAUNCH, + LTM_MODE_AUTOTUNE +} ltm_modes_e; + void initLtmTelemetry(void); void handleLtmTelemetry(void); void checkLtmTelemetryState(void); @@ -53,4 +80,3 @@ void freeLtmTelemetryPort(void); void configureLtmTelemetryPort(void); int getLtmFrame(uint8_t *frame, ltm_frame_e ltmFrameType); -