add the ability to use command exit status as a gpio state in ugpio/cmd (#112)

This commit is contained in:
Dylan M. Kozicki 2022-08-16 20:02:20 -05:00 committed by GitHub
parent 61f4e35e87
commit e0513ced47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -63,7 +63,7 @@ class Plugin(BaseUserGpioDriver): # pylint: disable=too-many-instance-attribute
@classmethod
def get_modes(cls) -> Set[str]:
return set([UserGpioModes.OUTPUT])
return set([UserGpioModes.OUTPUT, UserGpioModes.INPUT])
@classmethod
def get_pin_validator(cls) -> Callable[[Any], Any]:
@ -71,6 +71,13 @@ class Plugin(BaseUserGpioDriver): # pylint: disable=too-many-instance-attribute
async def read(self, pin: str) -> bool:
_ = pin
try:
proc = await aioproc.log_process(self.__cmd, logger=get_logger(0), prefix=str(self))
return proc.returncode == 0
except Exception as err:
get_logger(0).error("Can't run custom command [ %s ]: %s",
tools.cmdfmt(self.__cmd), tools.efmt(err))
raise GpioDriverOfflineError(self)
return False
async def write(self, pin: str, state: bool) -> None: