def range(self, value): if 'gauss' in self.units: i = truncated_discrete_set(value, [300, 3e3, 30e3]) elif 'tesla' in self.units: i = truncated_discrete_set(value, [30e-3, 300e-3, 3]) elif 'amp-meter' in self.units: i = truncated_discrete_set(value, [23.88e3, 238.8e3, 2388e3]) self.write(":SENS:FLUX:RANG %d" % i)
def range(self, value): units = self.units if 'gauss' in self.units: i = truncated_discrete_set(value, [300, 3e3, 30e3]) elif 'tesla' in self.units: i = truncated_discrete_set(value, [30e-3, 300e-3, 3]) elif 'amp-meter' in self.units: i = truncated_discrete_set(value, [23.88e3, 238.8e3, 2388e3]) self.write(":SENS:FLUX:RANG %d" % i)
def field_range(self, range): probe_multiplier = self.RANGE_MULTIPLIER_PROBE[self.PROBE_TYPES[ self.probe_type]] unit_multiplier = self.RANGE_MULTIPLIER_UNIT[self.unit] ranges = np.array(self.RANGES) * probe_multiplier * unit_multiplier range = truncated_discrete_set(range, values=ranges) range = np.round(range / (probe_multiplier * unit_multiplier), 3) self.field_range_raw = self.RANGES.index(range)
def sensitivity(self, value): # get the voltage/current mode: imode = self.IMODES.index(self.imode) # Scale the sensitivities to the correct range for voltage/current mode sensitivities = [s * self.SEN_MULTIPLIER[imode] for s in self.SENSITIVITIES] if imode == 2: sensitivities[0:7] = [np.nan] * 7 # Check and map the value value = truncated_discrete_set(value, sensitivities) print(value) value = sensitivities.index(value) # Set sensitivity self.write("SEN %d" % value)
def test_truncated_discrete_set(): assert truncated_discrete_set(5, range(10)) == 5 assert truncated_discrete_set(5.1, range(10)) == 6 assert truncated_discrete_set(11, range(10)) == 9 assert truncated_discrete_set(-10, range(10)) == 0