New auto attenuation algotihm

pull/4/head
erikkaashoek 5 years ago
parent 3ff96c88c7
commit f1d770bcd6

@ -2029,19 +2029,22 @@ sweep_again: // stay in sweep loop when output mo
// -------------------------- auto attenuate ---------------------------------- // -------------------------- auto attenuate ----------------------------------
#define AUTO_TARGET_LEVEL -30 #define AUTO_TARGET_LEVEL -25
#define AUTO_TARGET_WINDOW 2
if (!in_selftest && setting.mode == M_LOW && setting.auto_attenuation && max_index[0] > 0) { // calculate and apply auto attenuate if (!in_selftest && setting.mode == M_LOW && setting.auto_attenuation && max_index[0] > 0) { // calculate and apply auto attenuate
setting.atten_step = false; // No step attenuate in low mode auto attenuate setting.atten_step = false; // No step attenuate in low mode auto attenuate
int changed = false; int changed = false;
float actual_max_level = actual_t[max_index[0]] - get_attenuation(); int actual_max_level = (int) (actual_t[max_index[0]] - get_attenuation());
if (actual_max_level < AUTO_TARGET_LEVEL - 11 && setting.attenuate >= 10) { if (actual_max_level < AUTO_TARGET_LEVEL && setting.attenuate > 0) {
setting.attenuate -= 10.0; setting.attenuate -= AUTO_TARGET_LEVEL - actual_max_level;
changed = true; if (setting.attenuate < 0)
} else if (actual_max_level < AUTO_TARGET_LEVEL - 6 && setting.attenuate >= 5) { setting.attenuate= 0;
setting.attenuate -= 5.0;
changed = true; changed = true;
} else if (actual_max_level > AUTO_TARGET_LEVEL + 2 && setting.attenuate <= 20) { } else if (actual_max_level > AUTO_TARGET_LEVEL && setting.attenuate < 30) {
setting.attenuate += 10.0; setting.attenuate += actual_max_level - AUTO_TARGET_LEVEL;
if (setting.attenuate > 30)
setting.attenuate = 30;
changed = true; changed = true;
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.