111 lines
2.7 KiB
Python
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
|