Source code for labgrid.driver.onewiredriver

import attr

from ..factory import target_factory
from ..resource import OneWirePIO
from ..protocol import DigitalOutputProtocol
from .common import Driver

[docs]@target_factory.reg_driver @attr.s(cmp=False) class OneWirePIODriver(Driver, DigitalOutputProtocol): bindings = {"port": OneWirePIO, }
[docs] def __attrs_post_init__(self): import onewire super().__attrs_post_init__() self.onewire = onewire.Onewire(self.port.host)
[docs] @Driver.check_active def set(self, status): if self.port.invert: status = not status if status: self.onewire.set(self.port.path, '1') else: self.onewire.set(self.port.path, '0')
[docs] @Driver.check_active def get(self): status = self.onewire.get(self.port.path) if self.port.invert: status = not status return status == '1'