Files
protoboard/lifetime-testing.py
dmone032 700a112852 Lifetime
2020-08-06 11:27:54 -04:00

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...'