def ScanScreen(self, event): # Look for signals on the current screen lst = self.hardware.rpt_freq_list app = self.application vfo = app.VFO tx_freq = vfo + app.txFreq sample_rate = app.sample_rate limit = int(sample_rate / 2.0 * self.config.display_fraction * 0.95) # edge of screen self.scan_n1 = None self.scan_n = None for n in range(len(lst)): if lst[n] > vfo - limit and self.scan_n1 is None: self.scan_n1 = n # inclusive if lst[n] >= tx_freq and self.scan_n is None: self.scan_n = n if lst[n] > vfo + limit: break self.scan_n2 = n # inclusive if self.scan_n is None: self.scan_n = self.scan_n1 if self.direction > 0: # left click; go up seq = range(self.scan_n + 1, self.scan_n2 + 1) if not self.keep_going: seq += range(self.scan_n1, self.scan_n) else: # right click; go down seq = range(self.scan_n - 1, self.scan_n1 - 1, -1) if not self.keep_going: seq += range(self.scan_n2, self.scan_n, -1) for n in seq: freq = lst[n] if not QS.get_squelch(freq - vfo): app.ChangeHwFrequency(freq - vfo, vfo, 'Repeater', event) return True # frequency was changed return False # frequency was not changed
def OnTimerEvent(self, event): if QS.get_squelch(self.application.txFreq): if self.keep_going: if not self.ScanScreen(event): self.MoveVfo(event) else: self.ScanScreen(event) elif not self.scanner: self.scan_timer.Stop()