class DigitalOut(object): def __init__(self, module, pin): self.module, self.pin = module, pin def on(self): outputs = self.module.read() outputs |= (1 << self.pin) self.module.write(outputs) def off(self): outputs = self.module.read() outputs &= ~(1 << self.pin) self.module.write(outputs) class DigitalIn(object): def __init__(self, module, pin): self.module, self.pin = module, pin def getValue(self): return self.module.read() & (1 << self.pin) != 0 class R_TRIG(object): def __init__(self): self.__state = False def __call__(self, cur_state): retVal = cur_state and not self.__state self.__state = cur_state return retVal