def set_pins_as_inputs(exportpins): '''Set all the configured pins as inputs.''' if exportpins and not WiringPiStub.is_stubbed(): subprocess.check_call([_GPIO_UTILITY_PATH, 'unexportall']) for i in range(GPIOLEN): set_pin_as_input(i, exportpins) if exportpins: wiringpi.wiringPiSetupSys()
def set_pins_as_outputs(exportpins): '''Set all the configured pins as outputs.''' if exportpins and not WiringPiStub.is_stubbed(): subprocess.check_call([_GPIO_UTILITY_PATH, 'unexportall']) for i in range(GPIOLEN): set_pin_as_output(i, exportpins) # When exporting pins via the gpio utility, you have to re-call wiringPiSetupSys after # after changing or exporting any pins. if exportpins: wiringpi.wiringPiSetupSys()
def set_pin_as_output(i, exportpins): '''Set the specified pin as an output.''' if exportpins: if is_pin_pwm(i): # Error! Can't do PWM with gpio pin export logging.error("Cannot use gpio pin export with PWM") else: if not WiringPiStub.is_stubbed(): subprocess.check_call([_GPIO_UTILITY_PATH, 'export', str(_GPIO_PINS[i]), 'out']) else: wiringpi.pinMode(_GPIO_PINS[i], _GPIOASOUTPUT) if is_pin_pwm(i): wiringpi.softPwmCreate(_GPIO_PINS[i], 0, _PWM_MAX)
def set_pin_as_input(i, exportpins): '''Set the specified pin as an input.''' if exportpins and not WiringPiStub.is_stubbed(): subprocess.check_call([_GPIO_UTILITY_PATH, 'export', str(_GPIO_PINS[i]), 'in']) else: wiringpi.pinMode(_GPIO_PINS[i], _GPIOASINPUT)
Third party dependencies: wiringpi2: python wrapper around wiring pi https://github.com/WiringPi/WiringPi2-Python """ import argparse import logging import math import time import subprocess import configuration_manager as cm from wiring_pi_stub import WiringPiStub wiringpi = WiringPiStub.import_wiringpi2(logging) # Get Configurations - TODO(todd): Move more of this into configuration manager _CONFIG = cm.CONFIG _GPIO_PINS = [int(pin) for pin in _CONFIG.get('hardware', 'gpio_pins').split(',')] PIN_MODES = _CONFIG.get('hardware', 'pin_modes').split(',') _PWM_MAX = int(_CONFIG.get('hardware', 'pwm_range')) _ACTIVE_LOW_MODE = _CONFIG.getboolean('hardware', 'active_low_mode') _LIGHTSHOW_CONFIG = cm.lightshow() _HARDWARE_CONFIG = cm.hardware()