added simple script to query status and turn power off

This commit is contained in:
root 2017-07-04 12:12:51 +00:00
parent e6ac2db67f
commit eef3aca82b
1 changed files with 61 additions and 0 deletions

61
cli.py Executable file
View File

@ -0,0 +1,61 @@
#!/usr/bin/env python
import pifacedigitalio
import pifacecommon.mcp23s17
import sys
button_count = 2
# dirty workaround to disable reset of output pins
def init_board_no_power_off(self):
ioconfig = (
pifacecommon.mcp23s17.BANK_OFF |
pifacecommon.mcp23s17.INT_MIRROR_OFF |
pifacecommon.mcp23s17.SEQOP_OFF |
pifacecommon.mcp23s17.DISSLW_OFF |
pifacecommon.mcp23s17.HAEN_ON |
pifacecommon.mcp23s17.ODR_OFF |
pifacecommon.mcp23s17.INTPOL_LOW
)
self.iocon.value = ioconfig
if self.iocon.value != ioconfig:
raise pifacedigitalio.NoPiFaceDigitalDetectedError(
"No PiFace Digital board detected (hardware_addr={h}, "
"bus={b}, chip_select={c}).".format(
h=self.hardware_addr, b=self.bus, c=self.chip_select))
else:
self.iodira.value = 0 # GPIOA as outputs
self.iodirb.value = 0xFF # GPIOB as inputs
self.gppub.value = 0xFF # input pullups on
self.enable_interrupts()
setattr(pifacedigitalio.PiFaceDigital, 'init_board', init_board_no_power_off)
def chch_status(pfd):
for i in range(button_count):
if pfd.output_pins[i].value != 0:
print(str(i) + ' on')
else:
print(str(i) + ' off')
def chch_all_off(pfd):
for i in range(button_count):
pfd.output_pins[i].turn_off()
def help():
print('valid commands: status, all_off')
if __name__ == "__main__":
# listener = pifacedigitalio.InputEventListener()
# listener.activate()
# chch_status_output(listener.chip)
try:
command = sys.argv[1]
except:
help()
exit(1)
if command=='status':
chch_status(pifacedigitalio.PiFaceDigital())
elif command=='all_off':
chch_all_off(pifacedigitalio.PiFaceDigital())
else:
help()