commit 10/31

This commit is contained in:
2015-11-12 23:08:52 -06:00
parent df3c2b45ec
commit 44bf6916a3
21 changed files with 3109 additions and 395 deletions

135
main.py
View File

@@ -6,9 +6,10 @@ 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 datahandling import Datareporter_Debug3 as Datareporter
from system import System_Debug as System
import threading
import datetime
import configparser
@@ -19,13 +20,19 @@ import configparser
# log.
# # log.setFo
log = logging.getLogger("instruments")
handler = logging.StreamHandler()
log = logging.getLogger(__name__)
log1 = logging.getLogger("instruments")
log2 = logging.getLogger("datahandling")
handler = logging.FileHandler('myapp.log')
formatter = logging.Formatter('%(asctime)-15s %(name)-5s %(levelname)-8s %(message)s')
formatter = logging.Formatter('[%(asctime)-15s] %(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
@@ -33,62 +40,48 @@ log.setLevel(logging.DEBUG)
#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'])
from config import *
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 ()
notebook = Datalogger (text_path=None,
log_path=log_path,
photo_path=photo_path)
log.debug ("System started")
# logger.log("Log Intiated")
#system check
system = System()
system_status = system.status
# logger.log (system_status[1])
log.debug (system.stats)
#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 cell connection
reporter = Datareporter (
use_lan = True,
url = "http://home.ascorrea.com",
server_port = 5010,
data_path = "upload-data",
image_path = "upload-file",
ping_path = "ping",
com_port_name="/dev/ttyAMA0",
baud_rate = 9600)
#TODO test camera, log, report
#TODO test camera
camera = Camera (low_quality_compression_pct=low_quality_compression_pct,
low_quality_resolution=low_quality_resolution)
camera_status = camera.status
low_quality_resolution=low_quality_resolution,
high_quality_compression_pct=high_quality_compression_pct,
high_quality_resolution=high_quality_resolution,
vflip=True,
hflip=True,
exposure_mode='sports'
)
#todo test barometer, log, report
#todo test barometer
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 (
@@ -98,19 +91,55 @@ def scheduler (interval, worker_func, iterations = 0):
worker_func ()
#while 1:
image = camera.capture()
data = barometer.read()
def update_barometer_local():
global bar
bar = barometer.read()
notebook.log(bar, message_type="data")
# logger.log(image.get('hi'), type='image')
# logger.log(barometer, type='data')
reporter.send(image.get('lo'), type='data')
reporter.send(barometer, type = 'data')
def update_image_local():
global img
img = camera.capture()
notebook.log(img.get('hi'), message_type="image")
#todo break apart log and report refresh
# scheduler(refresh_barometer_local, update_barometer, 2)
# scheduler(refresh_camera_local, update_camera, 2)
scheduler(2, update_barometer_local)
scheduler(5, update_image_local)
counter=1
while counter>0:
global img
global bar
# bar=None
# img=None
try:
reporter.send(1, message_type="ping")
# if (counter % refresh_camera_local) == 0:
# if not img:
# img = camera.capture()
# notebook.log(img.get('hi'), message_type="image")
if (counter % refresh_barometer_transmit) == 0:
if not bar:
bar = barometer.read()
reporter.send(bar, message_type="data")
if (counter % refresh_camera_transmit) == 0:
# log.debug('Need to transmit picture, {}'.format(img))
if not img:
img = camera.capture()
reporter.send(img.get('lo'), message_type="image")
if (counter % refresh_system) == 0:
log.debug(system.stats)
except Exception as e:
log.debug("Exception: {}".format(e))
continue
counter += 1
log.debug("Counter = {}".format(counter))
pass