def doStart(self, target): if target == 'same': real_tgt = self.read(0) if real_tgt == 'unknown': real_tgt = self._onoff[0] self._setROParam('target', real_tgt) return if target == 'switch': if self.read(0) == self._onoff[0]: self._setROParam('target', self._onoff[1]) Switcher.doStart(self, self._onoff[1]) else: self._setROParam('target', self._onoff[0]) Switcher.doStart(self, self._onoff[0]) else: Switcher.doStart(self, target)
def doIsAllowed(self, target): if target in ('same', 'switch'): return True, '' return Switcher.doIsAllowed(self, target)
def doInit(self, mode): Switcher.doInit(self, mode) self._onoff = list(self.mapping) self.valuetype = oneof('same', 'switch', *self._onoff)
def doStatus(self, maxage=0): st, text = Switcher.doStatus(self, maxage) if st == status.UNKNOWN: st, text = status.NOTREACHED, 'invalid flipper current' return st, text
def doStart(self, target): # on start, also set all configured parameters if target == 'on' and self.read() != 'on': self.transferSettings() Switcher.doStart(self, target)