def test_discovery(self): fs = FakeSerial() m = SerialMux(ser=fs) fs.inp += b'\xFF'*16 self.assertEqual(m.discover(), [0]) probepacket0 = lambda x: b'\\#\xFF\xFF\x00\x00'+x.to_bytes(2, 'big') probepacket1 = lambda x: b'\\#\xFF\xFF'+(1<<x).to_bytes(2, 'big')+x.to_bytes(2, 'big') self.assertEqual(fs.out, b''.join([probepacket0(i) for i in range(16)] + [probepacket1(15-i) for i in range(16)]))
import copy import json import requests import time from threading import Thread from pylibcerebrum.serial_mux import SerialMux from http.server import HTTPServer, BaseHTTPRequestHandler PORT = "/dev/serial/by-id/usb-Arduino__www.arduino.cc__Arduino_Uno_649383232313512181A1-if00" BAUDRATE = 115200 s = SerialMux(PORT, BAUDRATE) print("discovering cerebrum devices") results = [] while not results: results = s.discover() print(results) print("opening first device") g = s.open(0) print("initializing device") print(dir(g)) for io in [g.digital3, g.digital5, g.digital6, g.digital9, g.digital10, g.digital11]: io.direction = 1 io.pwm_enabled = 1 print("starting event loop") barstatus = "closed" lastchange = time.time() def animate():