syndilights/v2/backend/forwarding/forward.py

74 lines
1.8 KiB
Python
Raw Normal View History

#!/usr/bin/env python
import redis
import time
from serial import Serial, SerialException
import sys
2015-03-17 00:00:47 +01:00
height = 50
width = 20
def send(r, s):
2015-03-17 00:00:47 +01:00
print(r.llen('new'))
data = r.rpop('new')
if data is not None and len(data) > 0:
2015-03-17 00:00:47 +01:00
a = bytes([ord('*')]) + bytearray(data)
#la = len(a)
s.write(a)
#time.sleep(.05)
#data = s.read(la)
#print(data)
# size = s.write(data)
# print('Data sent ({} bytes)'.format(size))
2015-03-17 00:39:57 +01:00
def serialConfigure(port_name, baudrate=9600):
'''
We use a very low baudrate by default because the USB port on the teensy
enforce this value: http://www.pjrc.com/teensy/td_serial.html
'''
ser = Serial()
ser.port = port_name
ser.baudrate = baudrate
ser.timeout = 5
try:
ser.open()
except SerialException as e:
sys.stderr.write("Could not open serial port %s: %s\n" % (ser.portstr, e))
return
ledsPerStrip = height * width
print(ledsPerStrip)
ser.write(ledsPerStrip.to_bytes(4, byteorder='little'))
2015-03-17 00:00:47 +01:00
data = ser.read(4)
print(data, int.from_bytes(data, byteorder='little'))
ser.timeout = 1
return ser
2015-03-17 00:39:57 +01:00
def serialDataConfigure(port_name, baudrate=115200):
ser = Serial()
ser.port = port_name
ser.baudrate = baudrate
try:
ser.open()
except SerialException as e:
sys.stderr.write("Could not open serial port %s: %s\n" % (ser.portstr, e))
return
ser.timeout = 1
return ser
if __name__ == "__main__":
r = redis.Redis()
2015-03-17 00:00:47 +01:00
r.hset('config', 'imgsize', height * width * 24)
s = serialConfigure('/dev/ttyACM0')
2015-03-17 00:39:57 +01:00
#s_data = serialDataConfigure('/dev/ttyUSB0')
while True:
while r.llen('new') > 0:
send(r, s)
2015-03-17 00:00:47 +01:00
time.sleep(1)