diff --git a/radio/src/telemetry/multi.cpp b/radio/src/telemetry/multi.cpp index 781991a64..35ccbe517 100644 --- a/radio/src/telemetry/multi.cpp +++ b/radio/src/telemetry/multi.cpp @@ -35,6 +35,7 @@ enum MultiPacketTypes : uint8_t { FlyskyIBusTelemetry, ConfigCommand, InputSync, + FrskySportPolling }; enum MultiBufferState : uint8_t { @@ -147,6 +148,14 @@ static void processMultiTelemetryPaket(const uint8_t *packet) case ConfigCommand: // Just an ack to our command, ignore for now break; + case FrskySportPolling: + #if defined(LUA) + if (len >= 1 && outputTelemetryBufferSize > 0 && data[0] == outputTelemetryBufferTrigger) { + TRACE("MP Sending sport data out."); + sportSendBuffer(outputTelemetryBuffer, outputTelemetryBufferSize); + } + #endif + break; default: TRACE("[MP] Unkown multi packet type 0x%02X, len %d", type, len); break; diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index 41e19e9b9..1d648d629 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -386,6 +386,10 @@ void telemetryInit(uint8_t protocol) else if (protocol == PROTOCOL_MULTIMODULE || protocol == PROTOCOL_FLYSKY_IBUS) { // The DIY Multi module always speaks 100000 baud regardless of the telemetry protocol in use telemetryPortInit(MULTIMODULE_BAUDRATE, TELEMETRY_SERIAL_8E2); +#if defined(LUA) + outputTelemetryBufferSize = 0; + outputTelemetryBufferTrigger = 0x7E; +#endif } else if (protocol == PROTOCOL_SPEKTRUM) { // Spektrum's own small race RX (SPM4648) uses 125000 8N1, use the same since there is no real standard