From 68414cf648f7bd2869d52d8bda42b152e42fa17a Mon Sep 17 00:00:00 2001 From: Vladimir Zidar Date: Mon, 10 Oct 2016 00:29:11 +0200 Subject: [PATCH] LP-431 Get only necessary data from ManualControlSettings to save on stack usage. --- flight/modules/Receiver/receiver.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/flight/modules/Receiver/receiver.c b/flight/modules/Receiver/receiver.c index f98850937..7c30dd7b1 100644 --- a/flight/modules/Receiver/receiver.c +++ b/flight/modules/Receiver/receiver.c @@ -660,9 +660,12 @@ static void updateRcvrActivitySample(uint32_t rcvr_id, uint16_t samples[], uint8 static bool updateRcvrActivityCompare(uint32_t rcvr_id, struct rcvr_activity_fsm *fsm) { bool activity_updated = false; - ManualControlSettingsData settings; - ManualControlSettingsGet(&settings); + ManualControlSettingsChannelGroupsData channelGroups; + ManualControlSettingsChannelNumberData channelNumber; + + ManualControlSettingsChannelGroupsGet(&channelGroups); + ManualControlSettingsChannelNumberGet(&channelNumber); /* Compare the current value to the previous sampled value */ for (uint8_t channel = 1; channel <= RCVR_ACTIVITY_MONITOR_CHANNELS_PER_GROUP; channel++) { @@ -677,8 +680,7 @@ static bool updateRcvrActivityCompare(uint32_t rcvr_id, struct rcvr_activity_fsm // Ignore activity from this Group/Channel because already used/set for Rssi input // Without that, the ReceiverActivity will be saturated just with Rssi value activity. - if ((ManualControlSettingsChannelGroupsToArray(settings.ChannelGroups)[MANUALCONTROLSETTINGS_CHANNELGROUPS_RSSI] == fsm->group) && - (ManualControlSettingsChannelNumberToArray(settings.ChannelNumber)[MANUALCONTROLSETTINGS_CHANNELNUMBER_RSSI] == channel)) { + if(channelGroups.Rssi == fsm->group && channelNumber.Rssi == channel) { delta = 0; }