# HG changeset patch # User Marco Filippi iz3gme.marco@gmail.com # Date 1430467490 -7200 # ven mag 01 10:04:50 2015 +0200 # Node ID f3604a6eadfc6e1119bf3dde27572c238f44eec7 # Parent 31a7494c324a347634c30cc3c9bded2ce83eeb21 Add tx freq check
Add TX frequency check to common memory validation routine to ensure it always fall withing radio supported ranges, including when split is set Also fix bruteforce test which was using a too low RX freq with - split
Implement #2557
diff --git a/chirp/chirp_common.py b/chirp/chirp_common.py --- a/chirp/chirp_common.py +++ b/chirp/chirp_common.py @@ -924,6 +924,26 @@ "of supported range").format(freq=format_freq(mem.freq))) msgs.append(msg)
+ if self.valid_bands and \ + self.valid_duplexes and \ + mem.duplex in ["split", "-", "+"]: + if mem.duplex == "split": + freq = mem.offset + elif mem.duplex == "-": + freq = mem.freq - mem.offset + elif mem.duplex == "+": + freq = mem.freq + mem.offset + valid = False + for lo, hi in self.valid_bands: + if lo <= freq < hi: + valid = True + break + if not valid: + msg = ValidationError( + ("Tx freq {freq} is out " + "of supported range").format(freq=format_freq(freq))) + msgs.append(msg) + if mem.power and \ self.valid_power_levels and \ mem.power not in self.valid_power_levels: diff --git a/tests/run_tests b/tests/run_tests --- a/tests/run_tests +++ b/tests/run_tests @@ -451,7 +451,7 @@ m = chirp_common.Memory() m.number = rf.memory_bounds[0] if rf.valid_bands: - m.freq = rf.valid_bands[0][0] + 100000 + m.freq = rf.valid_bands[0][0] + 600000 else: m.freq = 146520000 if m.freq < 30000000 and "AM" in rf.valid_modes: