added simple script to query status and turn power off
This commit is contained in:
parent
e6ac2db67f
commit
eef3aca82b
|
@ -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()
|
Loading…
Reference in New Issue