Module pinmaps need to obey channels limits

This commit is contained in:
3djc
2019-04-12 14:05:11 +02:00
parent 7210b442a9
commit 34db3d4f61
@@ -122,7 +122,8 @@ void menuModelReceiverOptions(event_t event)
// Pin
{
uint8_t pin = i - ITEM_RECEIVER_PINMAP_FIRST;
uint8_t channel = reusableBuffer.hardwareAndSettings.receiverSettings.outputsMapping[pin];
uint8_t lastChan = g_model.moduleData[g_moduleIdx].channelsStart + 8 + g_model.moduleData[g_moduleIdx].channelsCount - 1;
uint8_t channel = limit(g_model.moduleData[g_moduleIdx].channelsStart, reusableBuffer.hardwareAndSettings.receiverSettings.outputsMapping[pin], lastChan);
int32_t channelValue = channelOutputs[channel];
lcdDrawText(0, y, "Pin");
lcdDrawNumber(lcdLastRightPos + 1, y, pin + 1);
@@ -130,7 +131,7 @@ void menuModelReceiverOptions(event_t event)
// Channel
if (attr) {
channel = checkIncDec(event, channel, 0, sentModuleChannels(g_moduleIdx) - 1);
channel = checkIncDec(event, channel, g_model.moduleData[g_moduleIdx].channelsStart, g_model.moduleData[g_moduleIdx].channelsStart + 8 + g_model.moduleData[g_moduleIdx].channelsCount - 1);
if (checkIncDec_Ret) {
reusableBuffer.hardwareAndSettings.receiverSettings.outputsMapping[pin] = channel;
reusableBuffer.hardwareAndSettings.receiverSettings.dirty = true;