def main(): """ Main program function """ passed = True iopi = IOPi(0x20, False) # new iopi object without initialisation # Reset to 0x00 iopi.write_bus(0x0000) iopi.set_bus_direction(0xFFFF) # Check read_port port for low out of bounds try: iopi.read_port(-1) pass except ValueError: print("port low boundary check: PASSED") pass except IOError: passed = False print("I2C IOError") else: passed = False print("port low boundary check: FAILED") pass # Check read_port port for high out of bounds try: iopi.read_port(2) pass except ValueError: print("port high boundary check: PASSED") pass except IOError: passed = False print("I2C IOError") else: passed = False print("port high boundary check: FAILED") pass # Logic Analyser Check print("Logic output Started") iopi.read_port(0) iopi.read_port(1) print("Logic output Ended") if passed is False: print("Test Failed")
# when receiving a mqtt message; def on_message(client, userdata, msg): message = str(msg.payload) print(msg.topic + " " + message) def on_publish(mosq, obj, mid): print("mid: " + str(mid)) # setup client client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.connect("10.0.0.49", 1883, 60) client.loop_start() while True: sensor_data = [ iobus1.read_port(0), iobus1.read_port(1), iobus2.read_port(0), iobus2.read_port(1) ] client.publish("sensor/iopi/ports", str(sensor_data)) time.sleep(10)
############### MQTT section ################## def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client.subscribe("sensor/iopi/ports") # when receiving a mqtt message; def on_message(client, userdata, msg): message = str(msg.payload) print(msg.topic+" "+message) def on_publish(mosq, obj, mid): print("mid: " + str(mid)) # setup client client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.connect("10.0.0.49", 1883, 60) client.loop_start() while True: sensor_data = [iobus1.read_port(0),iobus1.read_port(1), iobus2.read_port(0),iobus2.read_port(1)] client.publish("sensor/iopi/ports", str(sensor_data)) time.sleep(10)