def test_set_voltage_pv3(power: PowerSupply, multi: Multimeter): voltages = np.arange(0, 3.3, 0.1) measured = np.zeros(len(voltages)) for i, v in enumerate(voltages): power.pv3 = v measured[i] = multi.measure_voltage("VOL") assert measured == pytest.approx(voltages, rel=RELTOL * 2, abs=ABSTOL * 2)
def test_set_current(power: PowerSupply, multi: Multimeter): currents = np.arange(0, 3e-3, 1e-4) measured = np.zeros(len(currents)) for i, c in enumerate(currents): power.pcs = c measured[i] = multi.measure_voltage("CH3") resistor = 100 assert measured == pytest.approx(currents * resistor, rel=RELTOL, abs=ABSTOL)
def __init__(self): super().__init__() self.logic_analyzer = LogicAnalyzer(device=self) self.oscilloscope = Oscilloscope(device=self) self.waveform_generator = WaveformGenerator(device=self) self.pwm_generator = PWMGenerator(device=self) self.multimeter = Multimeter(device=self) self.power_supply = PowerSupply(device=self) self.i2c = I2CMaster(device=self) self.nrf = NRF24L01(device=self) if "V6" in self.version: # Set the built-in WS2812B to green :) self.rgb_led([0, 20, 0])
def __init__( self, device: SerialHandler = None, integration_time: float = 10e-6, master_clock_frequency: float = 2e6, ): self._device = SerialHandler() if device is None else device self._pwmgen = PWMGenerator(self._device) self._scope = Oscilloscope(self._device) self._ps = PowerSupply(self._device) self.integration_time = integration_time self.master_clock_frequency = master_clock_frequency self.poweron() self._pwmgen.set_state(sq3=True) self._start_master_clock() self._start_sh_clock()
def __init__( self, port: str = None, baudrate: int = 1000000, timeout: float = 1.0, ): super().__init__(port, baudrate, timeout) self.logic_analyzer = LogicAnalyzer(device=self) self.oscilloscope = Oscilloscope(device=self) self.waveform_generator = WaveformGenerator(device=self) self.pwm_generator = PWMGenerator(device=self) self.multimeter = Multimeter(device=self) self.power_supply = PowerSupply(device=self) self.i2c = I2CMaster(device=self) self.nrf = NRF24L01(device=self) if "V6" in self.version: # Set the built-in WS2812B to green :) self.rgb_led([0, 20, 0])
def power(handler: SerialHandler) -> PowerSupply: handler._logging = True return PowerSupply(handler)
def source(handler: SerialHandler): if not isinstance(handler, MockHandler): ps = PowerSupply() ps.pv1.voltage = 2.2
def __init__(self, ): self.pwmgen = PWMGenerator() self.scope = Oscilloscope() self.ps = PowerSupply()