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];