summaryrefslogtreecommitdiff
path: root/error_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'error_utils.c')
-rw-r--r--error_utils.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/error_utils.c b/error_utils.c
index 503724d..718c40b 100644
--- a/error_utils.c
+++ b/error_utils.c
@@ -647,6 +647,21 @@ int Error_check(ChannelStruct ChannelStateToTest[max_channels])
}
}
+ float real_max_ampl[max_channels];
+ float real_min_ampl[max_channels];
+ for (i=0; i<max_channels; i++) {
+ real_max_ampl[i]=globals.Flash.max_ampl[i];
+ real_min_ampl[i]=globals.Flash.min_ampl[i];
+ }
+
+ // handle AVR-D3-B-MS1, where the two channels must have opposite polarities
+ if ( (globals.Flash.channels==2) && globals.Flash.chans_opposite_polarities && globals.Flash.ChanKey_amplitude) {
+ if (ChannelStateToTest[0].amplitude > 0.0) {
+ real_max_ampl[1] = 0.0;
+ } else {
+ real_min_ampl[1]= 0.0;
+ }
+ }
for (i=0; (i<num_of_chan) && !early_quit; ++i) {
/* Must be changing a setting */
@@ -1048,7 +1063,7 @@ int Error_check(ChannelStruct ChannelStateToTest[max_channels])
/* --- check minimum amplitude --- */
- globals.Constraints.err_min_ampl[i]=globals.Flash.min_ampl[i];
+ globals.Constraints.err_min_ampl[i]=real_min_ampl[i];
if ( (globals.Constraints.err_min_ampl[i]>=0.0 && ChannelStateToTest[i].amplitude<(0.999*globals.Constraints.err_min_ampl[i]))
|| (globals.Constraints.err_min_ampl[i]<0.0 && ChannelStateToTest[i].amplitude<(1.001*globals.Constraints.err_min_ampl[i])) ) {
@@ -1083,7 +1098,8 @@ int Error_check(ChannelStruct ChannelStateToTest[max_channels])
/* --- check maximum amplitude --- */
- globals.Constraints.err_max_ampl[i]=globals.Flash.max_ampl[i];
+ globals.Constraints.err_max_ampl[i]=real_max_ampl[i];
+
if ( (globals.Constraints.err_max_ampl[i]>=0.0 && ChannelStateToTest[i].amplitude>(1.001*globals.Constraints.err_max_ampl[i]))
|| (globals.Constraints.err_max_ampl[i]<0.0 && ChannelStateToTest[i].amplitude>(0.999*globals.Constraints.err_max_ampl[i])) ) {
report_error=amplitude_upper_limit;