def __init__(self, address: int = None, measurement_period: float = 1): """ @param address:block address @param mesurement_period: sampling frequency in sec """ super().__init__(BlockTypes.power, address) self.is_usb_connected = ActiveVariable(False, measurement_period, self._get_usb_state) self.is_charging = ActiveVariable(False, measurement_period, self._get_charging_state) self.battery_voltage_V = ActiveVariable(0, measurement_period, self._get_voltage) self.battery_current_mA = ActiveVariable(0, measurement_period, self._get_current_ma) self._ina_init()
def __init__(self, count: int, _type: SmoothingType, active_variable: ActiveVariable = None): super().__init__(active_variable.get(False)) self._active_variable = active_variable self._active_variable.updated(True, self._original_variable_updated) self._count = count self._type = _type self._values = [active_variable._value ] if active_variable._value is not None else []
def __init__(self, address: int = None, measurement_period: float = 1): """ @param address:block address @param measurement_period: sampling frequency in sec """ super().__init__(BlockTypes.distance, address) #self.is_usb_connected = ActiveVariable(False, measurement_period, self._get_usb_state) self.value = ActiveVariable(0, measurement_period, self._get_distance) #doesn't make sense to initialize extension when the block is not inserted self._vl53l1 = VL53L1X( self.i2c, self.ext_address) if self.is_available() else None
def setUp(self): self.next_value = 10 self.var = ActiveVariable(renew_func=self._get_value) self.called_func = MagicMock()
class TestActiveVariable(TestCase): def setUp(self): self.next_value = 10 self.var = ActiveVariable(renew_func=self._get_value) self.called_func = MagicMock() def _get_value(self): return self.next_value def _test_called_once(self): self.var.get(True) self.called_func.assert_called_once() def _test_not_called(self): self.var.get(True) self.called_func.assert_not_called() def test_equal_to__int_true(self): self.var.equal_to(self.next_value, False, self.called_func) self._test_called_once() def test_equal_to__int_false(self): self.var.equal_to(self.next_value + 1, False, self.called_func) self._test_not_called() def test_equal_to__float_true(self): self.var.equal_to(float(self.next_value), False, self.called_func) self._test_called_once() def test_equal_to__float_false(self): self.var.equal_to( float(self.next_value) + 0.1, False, self.called_func) self._test_not_called() def test_not_equal_to__float_true(self): self.var.not_equal_to( float(self.next_value) + 0.1, False, self.called_func) self._test_called_once() def test_not_equal_to__float_false(self): self.var.not_equal_to(float(self.next_value), False, self.called_func) self._test_not_called() def test_less_than__true(self): self.var.less_than(self.next_value + 1, False, self.called_func) self._test_called_once() def test_less_than__false(self): self.var.less_than(self.next_value, False, self.called_func) self._test_not_called() def test_more_than__true(self): self.var.more_than(self.next_value - 1, False, self.called_func) self._test_called_once() def test_more_than__false(self): self.var.more_than(self.next_value, False, self.called_func) self._test_not_called() def test_in_range__true(self): self.var.in_range(self.next_value, self.next_value + 1, False, self.called_func) self._test_called_once() def test_in_range__false(self): self.var.in_range(self.next_value + 1, self.next_value + 2, False, self.called_func) self._test_not_called() self.var.in_range(self.next_value - 1, self.next_value, False, self.called_func) self._test_not_called() def test_out_of_range__true(self): self.var.out_of_range(self.next_value + 1, self.next_value + 2, False, self.called_func) self._test_called_once() self.var.out_of_range(self.next_value - 1, self.next_value, False, self.called_func) self._test_called_once() def test_out_of_range__false(self): self.var.out_of_range(self.next_value, self.next_value + 1, False, self.called_func) self._test_not_called() def test_value_changed__true(self): self.var.changed(False, self.called_func) self._test_called_once() #call set with the same value should not be added another call self.var.changed(False, self.called_func) self._test_called_once() def test_value_updated(self): self.var.updated(False, self.called_func) self._test_called_once() def test_set_get_value(self): self.var.set(self.next_value) self.assertEqual(self.var.get(), self.next_value) def test__get_value__force(self): self.assertEqual(self.var.get(force=True), self.next_value) def test_remove_trigger(self): handler = self.var.equal_to(self.next_value, False, self.called_func) self.var.remove_trigger(handler) self._test_not_called()
def __init__(self, address=None, measurement_period: float=0.1): BlockBase.__init__(self, BlockTypes.ir, address) self.value = ActiveVariable(RemoteKey.get_default(), measurement_period, self._get_value) self._remotes = list()
def __init__(self, address=None, get_counter_period=1): super().__init__(BlockTypes.motor_driver, address) self.motor1_sensor_counter = ActiveVariable( 0, get_counter_period, self._get_sensor_counter_m1) self.motor2_sensor_counter = ActiveVariable( 0, get_counter_period, self._get_sensor_counter_m2)
def __init__(self, address=None, measurement_period: float = 0.1): super().__init__(BlockTypes.buttom, address) self.value = ActiveVariable(False, measurement_period, self._is_pressed)