Files
spaceballoon/main.py
2015-10-22 00:00:00 -06:00

117 lines
3.4 KiB
Python

__author__ = 'asc'
DEBUG = True
import logging
if DEBUG:
from instruments import Barometer_Debug2 as Barometer
from instruments import Camera_Debug2 as Camera
from datahandling import Datalogger_Debug as Datalogger
from datahandling import Datareporter_Debug2 as Datareporter
from system import System_Debug as System
import threading
import datetime
import configparser
# logging.basicConfig(level=logging.DEBUG, format=("%(asctime)s - %(name)s - %(levelname)s - %(message)s"))
# log = logging.getLogger("instruments")
# log.setLevel(logging.DEBUG)
# log.
# # log.setFo
log = logging.getLogger("instruments")
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)-15s %(name)-5s %(levelname)-8s %(message)s')
handler.setFormatter(formatter)
log.addHandler(handler)
log.setLevel(logging.DEBUG)
#start-up
#log denotes write to local, report denotes sending to server
#TODO startup message
#loadconfig
config = configparser.ConfigParser()
config.sections()
config.read('config.ini')
refresh_camera_local = float(config['refresh rates']['refresh camera local'])
refresh_camera_transmit = float(config['refresh rates']['refresh camera transmit'])
refresh_barometer_local = float(config['refresh rates']['refresh barometer local'])
refresh_barometer_transmit = float(config['refresh rates']['refresh barometer transmit'])
refresh_gps_local = float(config['refresh rates']['refresh gps local'])
refresh_gps_transmit = float(config['refresh rates']['refresh gps transmit'])
low_quality_resolution = eval(config['camera settings']['low quality resolution'])
low_quality_compression_pct = int(config['camera settings']['low quality compression pct'])
report_url = config['report settings']['report url']
report_image_url = config['report settings']['report image url']
com_port_name = config['modem settings']['com port name']
baud_rate = config['modem settings']['baud rate']
logger = Datalogger ()
log.debug ("System started")
# logger.log("Log Intiated")
#system check
system = System()
system_status = system.status
# logger.log (system_status[1])
#todo test cell connection, log, report
reporter = Datareporter()
reporter_status = reporter.status
# logger.log (reporter_status[1])
reporter.send(reporter_status[1])
reporter.send(system_status[1])
#TODO test camera, log, report
camera = Camera (low_quality_compression_pct=low_quality_compression_pct,
low_quality_resolution=low_quality_resolution)
camera_status = camera.status
#todo test barometer, log, report
barometer = Barometer()
# barometer_status = barometer.status
# logger.log (barometer_status[1])
# reporter.send(barometer_status[1])
#todo test GPS, log, report
#todo check for errors, throw exception if error
if(system_status[0] or reporter_status[0] or camera_status[0]):
raise Exception ('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 ()
#while 1:
image = camera.capture()
data = barometer.read()
# logger.log(image.get('hi'), type='image')
# logger.log(barometer, type='data')
reporter.send(image.get('lo'), type='data')
reporter.send(barometer, type = 'data')
#todo break apart log and report refresh
# scheduler(refresh_barometer_local, update_barometer, 2)
# scheduler(refresh_camera_local, update_camera, 2)
pass