From fb1ebf77f39548966727e051211bea0dace2214c Mon Sep 17 00:00:00 2001 From: Markus Schmidl Date: Sat, 18 Feb 2017 03:29:01 +0100 Subject: [PATCH] changed init routine of piface; not switching outputs off on init --- chch-power.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/chch-power.py b/chch-power.py index 8967e57..37d4f6d 100644 --- a/chch-power.py +++ b/chch-power.py @@ -1,7 +1,32 @@ import pifacedigitalio +import pifacecommon.mcp23s17 import time from subprocess import call +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) + button_count = 8 longpress_delay = 0.4 verylongpress_delay = 2