From 8a57e48f555cb654662e59db95fb8b0a07a26393 Mon Sep 17 00:00:00 2001 From: 3djc Date: Mon, 15 Apr 2024 01:28:57 +0200 Subject: [PATCH] fix: pxx2 can transport 24 channels (#4871) --- radio/src/pulses/pxx2.cpp | 2 +- radio/src/pulses/pxx2.h | 2 ++ radio/src/telemetry/frsky_pxx2.cpp | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/radio/src/pulses/pxx2.cpp b/radio/src/pulses/pxx2.cpp index 58dd1e801..5ae7a0acd 100644 --- a/radio/src/pulses/pxx2.cpp +++ b/radio/src/pulses/pxx2.cpp @@ -472,7 +472,7 @@ void Pxx2Pulses::setupReceiverSettingsFrame(uint8_t module, int16_t* channels, u if (reusableBuffer.hardwareAndSettings.receiverSettings.sbus24) flag1 |= PXX2_RX_SETTINGS_FLAG1_SBUS24; Pxx2Transport::addByte(flag1); - uint8_t outputsCount = min(24, reusableBuffer.hardwareAndSettings.receiverSettings.outputsCount); + uint8_t outputsCount = min(PXX2_MAX_CHANNELS, reusableBuffer.hardwareAndSettings.receiverSettings.outputsCount); for (int i = 0; i < outputsCount; i++) { Pxx2Transport::addByte(reusableBuffer.hardwareAndSettings.receiverSettings.outputsMapping[i]); } diff --git a/radio/src/pulses/pxx2.h b/radio/src/pulses/pxx2.h index 2aebd94c8..453a514e8 100644 --- a/radio/src/pulses/pxx2.h +++ b/radio/src/pulses/pxx2.h @@ -71,6 +71,8 @@ #define PXX2_AUTH_REFUSED_FLAG 0xA5 +#define PXX2_MAX_CHANNELS 24 + // Channel mapping constants #define CH_ENABLE_SPORT 4 #define CH_ENABLE_SBUS 5 diff --git a/radio/src/telemetry/frsky_pxx2.cpp b/radio/src/telemetry/frsky_pxx2.cpp index e657e2f7d..b43738e9e 100644 --- a/radio/src/telemetry/frsky_pxx2.cpp +++ b/radio/src/telemetry/frsky_pxx2.cpp @@ -227,7 +227,7 @@ static void processReceiverSettingsFrame(uint8_t module, const uint8_t * frame) if (frame[4] & PXX2_RX_SETTINGS_FLAG1_SBUS24) destination->sbus24 = 1; - uint8_t outputsCount = min(16, frame[0] - 4); + uint8_t outputsCount = min(PXX2_MAX_CHANNELS, frame[0] - 4); destination->outputsCount = outputsCount; for (uint8_t pin = 0; pin < outputsCount; pin++) { destination->outputsMapping[pin] = frame[5 + pin];