コード例 #1
0
    def create_peripherals(self):
        """ Creates peripheral managers. """
        self.logger.info("Creating peripheral managers")

        # Verify peripherals are configured
        if self.config_dict["peripherals"] == None:
            self.logger.info("No peripherals configured")
            return

        # Inintilize simulation parameters
        if os.environ.get("SIMULATE") == "true":
            simulate = True
            mux_simulator = MuxSimulator()
        else:
            simulate = False
            mux_simulator = None

        # Create thread locks
        i2c_lock = threading.RLock()

        # Create peripheral managers
        self.peripherals = {}
        for peripheral_config_dict in self.config_dict["peripherals"]:
            self.logger.debug("Creating {}".format(
                peripheral_config_dict["name"]))

            # Get peripheral setup dict
            peripheral_uuid = peripheral_config_dict["uuid"]
            peripheral_setup_dict = self.get_peripheral_setup_dict(
                peripheral_uuid)

            # Verify valid peripheral config dict
            if peripheral_setup_dict == None:
                self.logger.critical(
                    "Invalid peripheral uuid in device "
                    "config. Validator should have caught this.")
                continue

            # Get peripheral module and class name
            module_name = ("device.peripherals.modules." +
                           peripheral_setup_dict["module_name"])
            class_name = peripheral_setup_dict["class_name"]

            # Import peripheral library
            module_instance = __import__(module_name, fromlist=[class_name])
            class_instance = getattr(module_instance, class_name)

            # Create peripheral manager
            peripheral_name = peripheral_config_dict["name"]

            peripheral = class_instance(
                name=peripheral_name,
                state=self.state,
                config=peripheral_config_dict,
                simulate=simulate,
                i2c_lock=i2c_lock,
                mux_simulator=mux_simulator,
            )
            self.peripherals[peripheral_name] = peripheral
コード例 #2
0
def test_init() -> None:
    manager = AtlasDOManager(
        name="Test",
        i2c_lock=threading.RLock(),
        state=State(),
        config=peripheral_config,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
コード例 #3
0
def test_init() -> None:
    driver = LEDDAC5578Driver(
        name="Test",
        panel_configs=panel_configs,
        panel_properties=panel_properties,
        i2c_lock=threading.RLock(),
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
コード例 #4
0
def test_init() -> None:
    driver = CCS811Driver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
コード例 #5
0
def test_init() -> None:
    driver = AtlasDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x64,
        simulate=True,
        mux_simulator=MuxSimulator(),
        Simulator=AtlasSimulator,
    )
コード例 #6
0
def test_set_probe_type() -> None:
    driver = AtlasECDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    driver.set_probe_type(1.0)
コード例 #7
0
def test_disable_abc_logic() -> None:
    driver = T6713Driver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    driver.disable_abc_logic()
コード例 #8
0
def test_calibrate_dry() -> None:
    driver = AtlasECDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    driver.calibrate_dry()
コード例 #9
0
def test_disable_salinity_output() -> None:
    driver = AtlasECDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    driver.disable_salinity_output()
コード例 #10
0
def test_init() -> None:
    driver = USBCameraDriver(
        name="Test",
        resolution="640x480",
        vendor_id=0x05A3,
        product_id=0x9520,
        simulate=True,
        mux_simulator=MuxSimulator(),
        i2c_lock=threading.RLock(),
    )
コード例 #11
0
def test_initialize() -> None:
    manager = LEDDAC5578Manager(
        name="Test",
        i2c_lock=threading.RLock(),
        state=State(),
        config=peripheral_config,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    manager.initialize()
コード例 #12
0
def test_reset() -> None:
    driver = SHT25Driver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    driver.reset()
コード例 #13
0
def test_init():
    i2c = I2C(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x40,
        mux=0x77,
        channel=4,
        mux_simulator=MuxSimulator(),
        PeripheralSimulator=PeripheralSimulator,
    )
コード例 #14
0
def test_read_humidity() -> None:
    driver = SHT25Driver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    humidity = driver.read_humidity()
    assert humidity == 70.0
コード例 #15
0
def test_read_co2() -> None:
    driver = T6713Driver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    co2 = driver.read_co2()
    assert co2 == 546.0
コード例 #16
0
def test_init() -> None:
    driver = DAC5578Driver(
        "Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x4c,
        mux=0x77,
        channel=4,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
コード例 #17
0
def test_shutdown() -> None:
    manager = AtlasECManager(
        name="Test",
        i2c_lock=threading.RLock(),
        state=State(),
        config=peripheral_config,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    manager.initialize()
    manager.shutdown()
コード例 #18
0
def test_read_ec() -> None:
    driver = AtlasECDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    ec = driver.read_ec()
    assert ec == 0.0
コード例 #19
0
def test_clear_calibrations() -> None:
    driver = AtlasDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x64,
        simulate=True,
        mux_simulator=MuxSimulator(),
        Simulator=AtlasSimulator,
    )
    driver.clear_calibrations()
コード例 #20
0
def test_calibrate_single() -> None:
    driver = AtlasECDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    with pytest.raises(TakeSinglePointCalibrationError):
        driver.calibrate_single(1.413)
コード例 #21
0
def test_set_compensation_temperature() -> None:
    driver = AtlasDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x64,
        simulate=True,
        mux_simulator=MuxSimulator(),
        Simulator=AtlasSimulator,
    )
    driver.set_compensation_temperature(26.0)
コード例 #22
0
def test_write_register():
    i2c = I2C(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x40,
        mux=0x77,
        channel=4,
        mux_simulator=MuxSimulator(),
        PeripheralSimulator=PeripheralSimulator,
    )
    i2c.write_register(0x01, 0x02)
コード例 #23
0
def test_write_output_standard() -> None:
    driver = DAC5578Driver(
        "Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x4c,
        mux=0x77,
        channel=4,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    driver.write_output(0, 0)
コード例 #24
0
def test_read_temperature() -> None:
    driver = SHT25Driver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )

    temperature = driver.read_temperature()
    assert temperature == 24.0
コード例 #25
0
def test_write_outputs_standard() -> None:
    driver = DAC5578Driver(
        "Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x4c,
        mux=0x77,
        channel=4,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    outputs = {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0}
    driver.write_outputs(outputs)
コード例 #26
0
def test_write_output_percent_gt() -> None:
    driver = DAC5578Driver(
        "Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x4c,
        mux=0x77,
        channel=4,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    with pytest.raises(WriteOutputError):
        driver.write_output(0, 101)
コード例 #27
0
def test_read_status() -> None:
    driver = AtlasDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x64,
        simulate=True,
        mux_simulator=MuxSimulator(),
        Simulator=AtlasSimulator,
    )
    status = driver.read_status()
    assert status.prev_restart_reason == "Powered off"
    assert status.voltage == 3.655
コード例 #28
0
def test_read_info() -> None:
    driver = AtlasDriver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x64,
        simulate=True,
        mux_simulator=MuxSimulator(),
        Simulator=AtlasSimulator,
    )
    info = driver.read_info()
    assert info.sensor_type == "ec"
    assert info.firmware_version == 1.96
コード例 #29
0
def test_read_user_register() -> None:
    driver = SHT25Driver(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x77,
        simulate=True,
        mux_simulator=MuxSimulator(),
    )
    user_register = driver.read_user_register()
    assert user_register.end_of_battery == False
    assert user_register.heater_enabled == False
    assert user_register.reload_disabled == False
コード例 #30
0
def test_read_empty_register():
    i2c = I2C(
        name="Test",
        i2c_lock=threading.RLock(),
        bus=2,
        address=0x40,
        mux=0x77,
        channel=4,
        mux_simulator=MuxSimulator(),
        PeripheralSimulator=PeripheralSimulator,
    )
    with pytest.raises(ReadError):
        byte = i2c.read_register(0x01)