feat(mpm): support RadioLink / DumboRC special commands (#7441)

This commit is contained in:
Eduard
2026-08-23 11:38:23 +10:00
committed by GitHub
parent e2bcbd6c7f
commit 917c8ce654
5 changed files with 48 additions and 3 deletions
+17 -1
View File
@@ -54,7 +54,8 @@ enum MultiPacketTypes : uint8_t
HottTelemetry,
MLinkTelemetry,
ConfigTelemetry,
MultiProtoDef
MultiProtoDef,
RLinkTelemetry = 18,
};
enum MultiBufferState : uint8_t
@@ -308,6 +309,17 @@ static void processConfigPacket(const uint8_t * packet, uint8_t len)
memcpy(&Multi_Buffer[13 + (packet[0] & 0x0F) * 20], &packet[1], 20); // Store the received page in the buffer
}
}
static void processRLinkPacket(const uint8_t * packet, uint8_t len)
{
// Multi_Buffer[0..3] == "RLnk" / Lua script is running
// Multi_Buffer[14] == 0 RX buffer can be written / >0 Lua has not consumed it
// Multi_Buffer[15..] == payload from receiver
if (Multi_Buffer && memcmp(Multi_Buffer, "RLnk", 4) == 0 && Multi_Buffer[14] == 0 && len < 32) {
memcpy(&Multi_Buffer[15], packet, len);
Multi_Buffer[14] = len;
}
}
#endif
#if defined(MULTI_PROTOLIST)
@@ -453,6 +465,10 @@ static void processMultiTelemetryPaket(const uint8_t * packet, uint8_t module)
else
TRACE("[MP] Received Config telemetry len %d < 20", len);
break;
case RLinkTelemetry:
processRLinkPacket(data, len);
break;
#endif
case FrSkyHubTelemetry: