136 lines
4.0 KiB
Python
Executable File
136 lines
4.0 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import httplib
|
|
import json
|
|
from vbctrl import *
|
|
import random
|
|
import errno
|
|
import os
|
|
import signal
|
|
import time
|
|
|
|
real_hw = True
|
|
|
|
def adjust_blanks(s):
|
|
blank = '░'
|
|
return s.replace('░',' ')
|
|
|
|
def get_board_content():
|
|
conn = httplib.HTTPSConnection('app.vestaboard.com')
|
|
conn.request('GET', '/api/v1/board/%s/describe' % board_id)
|
|
response = conn.getresponse()
|
|
print response.status, response.reason
|
|
retval = adjust_blanks(response.read())
|
|
conn.close()
|
|
return retval
|
|
|
|
def is_new_content(new, old):
|
|
retval = False
|
|
for v in zip(new,old):
|
|
if v[0] != v[1]:
|
|
retval = True
|
|
break
|
|
return retval
|
|
|
|
def random_colors():
|
|
proto = [
|
|
'`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d',
|
|
'`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d',
|
|
'`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d',
|
|
'`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d',
|
|
'`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d',
|
|
'`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d',
|
|
'`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d`%d']
|
|
lines = []
|
|
for p in proto:
|
|
s = p % (random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5),
|
|
random.randint(1, 5))
|
|
lines.append(s)
|
|
setup_digits(lines, left_to_right_swap=False)
|
|
|
|
|
|
board_id = '700df57c-8b0a-4166-8758-b9de6e900cb8'
|
|
|
|
# ANDREA
|
|
timeouts = 10
|
|
if real_hw:
|
|
print 'before pause'
|
|
time.sleep(5)
|
|
print 'after pause'
|
|
print 'before init_uart'
|
|
board_init_uart()
|
|
print 'after init_uart'
|
|
print 'before blanks'
|
|
# ANDREA
|
|
emc_blanks()
|
|
print 'after blanks'
|
|
print 'before 2nd pause'
|
|
time.sleep(timeouts)
|
|
print 'after 2nd pause'
|
|
|
|
last_lines = ['', '', '', '', '', '']
|
|
displayChar = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','!','@','#','$','&',';','(',')','-','+','=',':','\'','\"','%',',','.','?','`8','/','1','2','3','4','5','6','7','8','9','0','`0','`1','`2','`3','`4','`5','`6','`7']
|
|
displayLines = ['','','','','','']
|
|
data = None
|
|
|
|
class TimeoutError(Exception):
|
|
pass
|
|
|
|
class timeout:
|
|
def __init__(self, seconds=1, error_message='Timeout'):
|
|
self.seconds = seconds
|
|
self.error_message = error_message
|
|
def handle_timeout(self, signum, frame):
|
|
raise TimeoutError(self.error_message)
|
|
def __enter__(self):
|
|
signal.signal(signal.SIGALRM, self.handle_timeout)
|
|
signal.alarm(self.seconds)
|
|
def __exit__(self, type, value, traceback):
|
|
signal.alarm(0)
|
|
|
|
while True:
|
|
for pos in range(64):
|
|
for j in range(6):
|
|
displayLines[j] = 22*displayChar[pos]
|
|
lines = displayLines
|
|
print 'LINES: '
|
|
print lines
|
|
|
|
print 'before setup digits'
|
|
# ANDREA
|
|
with timeout(seconds=2):
|
|
try:
|
|
setup_digits(lines, left_to_right_swap=False, real_hw=real_hw)
|
|
print 'after setup digits'
|
|
last_lines = lines
|
|
except:
|
|
continue
|
|
print 'Waiting for bits to change...'
|
|
if pos == 63:
|
|
time.sleep(2)
|
|
else:
|
|
time.sleep(4.5)
|
|
print 'Fetching message...'
|