def repeat(interval, func): def loop(): while not Event().wait(interval): func() Thread(target=loop).start() # uses https://raw.githubusercontent.com/tomstokes/python-spi/master/spi.py from spi import SPI spi = SPI('/dev/spidev1.0') spi.mode = SPI.MODE_0 spi.bits_per_word = 8 spi.speed = 10 * 1000000 IODIRA = 0x00 IOCON = 0x0a GPIOA = 0x12 # write to MCP23S17 register(s), GPIOA by default def mcp23s17(address, values, register=GPIOA): global spi opcode = 0x40 | (address << 1) spi.write([opcode, register] + values) # configure up to 5 MCP23S17 for address in range(5):
import serial import time import argparse from spi import SPI # get port name from arguments #parser = argparse.ArgumentParser() #parser.add_argument('--port_name', type=str, default='/dev/ttyS1', help='string of port name ex/ /dev/ttyS1') #args = parser.parse_args() # spi setup spi = SPI("/dev/spidev1.0") spi.mode = SPI.MODE_0 spi.bits_per_word = 8 spi.speed = 500000 #received = spi.transfer([0x11, 0x22, 0xFF]) #spi.write([0x12, 0x34, 0xAB, 0xCD]) def sendHandler(): while 1: time.sleep(1) try: spi.write([0x12, 0x34, 0xAB, 0xCD]) print("Sent to spi bus.") except Exception as e: print("Error writing to spi bus: {}".format(str(e))) try: