def set_gain(self, gain): ''' Set gain of tuner. If gain is 'auto', AGC mode is enabled; otherwise gain is in dB. The actual gain used is rounded to the nearest value supported by the device (see the values in RtlSdr.valid_gains_db). ''' if isinstance(gain, str) and gain == 'auto': # disable manual gain -> enable AGC self.set_manual_gain_enabled(False) return # find supported gain nearest to one requested errors = [abs(10*gain - g) for g in self.gain_values] nearest_gain_ind = errors.index(min(errors)) # disable AGC self.set_manual_gain_enabled(True) result = librtlsdr.rtlsdr_set_tuner_gain(self.dev_p, self.gain_values[nearest_gain_ind]) if result < 0: self.close() raise IOError('Error code %d when setting gain to %d'\ % (result, gain)) return
def set_gain(self, gain): """ Set gain of tuner. If gain is 'auto', AGC mode is enabled; otherwise gain is in dB. The actual gain used is rounded to the nearest value supported by the device (see the values in RtlSdr.GAIN_VALUES for these in tenths of dB's). """ if isinstance(gain, str) and gain == "auto": # disable manual gain -> enable AGC self.set_manual_gain_enabled(False) return # find supported gain nearest to one requested errors = [abs(10 * gain - g) for g in self.GAIN_VALUES] nearest_gain_ind = errors.index(min(errors)) # disable AGC self.set_manual_gain_enabled(True) result = librtlsdr.rtlsdr_set_tuner_gain(self.dev_p, self.GAIN_VALUES[nearest_gain_ind]) if result < 0: self.close() raise IOError("Error code %d when setting gain to %d" % (result, gain)) return
def set_gain(self, gain): gain = self.GAIN_VALUES[int(gain)] if not self.manual_gain_mode: self.set_gain_mode(True) result = librtlsdr.rtlsdr_set_tuner_gain(self.dev_p, gain) if result < 0: self.close() raise IOError('Error code %d when setting gain to %d'\ % (result, gain)) return