Files
spaceballoon/test.py
2015-11-12 23:14:03 -06:00

111 lines
2.7 KiB
Python

__author__ = 'asc'
DEBUG = True
import logging
import logging.handlers,logging.config
from instruments import Barometer, Camera
from datahandling import Datalogger, Datareporter
from system import System as System
import threading
from datahandling import Record
from mission import Mission
import random
import string
logging.config.fileConfig('logging.ini')
log = logging.getLogger(__name__)
# log = logging.basicConfig()
# log1 = logging.getLogger("instruments")
# log2 = logging.getLogger("datahandling")
# handler = logging.handlers.RotatingFileHandler('spaceballoon.log', backupCount=5)
formatter = logging.Formatter('[%(asctime)-25s] %(name)-15s %(levelname)-8s %(message)s')
# handler.setFormatter(formatter)
# log.addHandler(handler)
# log1.addHandler(handler)
# log2.addHandler(handler)
log.setLevel(logging.DEBUG)
# log1.setLevel(logging.DEBUG)
# log2.setLevel(logging.INFO)
#start-up
#log denotes write to local, report denotes sending to server
#loadconfig
from config import *
mission = Mission()
#todo test cell connection
reporter = Datareporter (
missiontime = mission,
use_lan = True,
url = "http://10.0.1.4",
server_port = 5010,
data_path = "upload-data",
image_path = "missions",
ping_path = "ping",
com_port_name="/dev/ttyAMA0",
baud_rate = 9600
)
#intiate mission
#TODO test camera
camera = Camera (low_quality_compression_pct=low_quality_compression_pct,
low_quality_resolution=low_quality_resolution,
high_quality_compression_pct=high_quality_compression_pct,
high_quality_resolution=high_quality_resolution,
vflip=False,
hflip=False,
exposure_mode='sports',
# debug=True
)
#todo test barometer
barometer = Barometer()
#todo test GPS, log, report
#todo check for errors, throw exception if error
def scheduler (interval, worker_func, iterations = 0):
if iterations != 1:
threading.Timer (
interval,
scheduler, [interval, worker_func, 0 if iterations == 0 else iterations-1]
).start ()
worker_func ()
def update_barometer_local():
global bar
bar = barometer.read()
bar.update({'mt':mission.now()})
record = Record(bar.copy(),'b')
# notebook.log(record)
def update_image_local():
global img
img = camera.capture(name=mission.now(), thumbnail=None)
record = Record([img.get('hi'), img.get('lo')], 'i')
# notebook.log(record)
transpondence = Record()
update_image_local()
transpondence.add(img.get('lo'),'i')
transpondence = reporter.send(transpondence) #returns none on success, (bad practice?)
counter=1
img = None
bar = None
transpondence = None
pass