commit 11/12

This commit is contained in:
2015-11-12 23:12:03 -06:00
parent 44bf6916a3
commit 1b569da791
9 changed files with 600 additions and 458 deletions

174
main.py
View File

@@ -1,80 +1,94 @@
__author__ = 'asc'
DEBUG = True
import logging
import logging.handlers,logging.config
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_Debug3 as Datareporter
from system import System_Debug as System
import threading
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
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
logging.config.fileConfig('logging.ini')
log = logging.getLogger(__name__)
log1 = logging.getLogger("instruments")
log2 = logging.getLogger("datahandling")
handler = logging.FileHandler('myapp.log')
# log = logging.basicConfig()
# log1 = logging.getLogger("instruments")
# log2 = logging.getLogger("datahandling")
# handler = logging.handlers.RotatingFileHandler('spaceballoon.log', backupCount=5)
formatter = logging.Formatter('[%(asctime)-15s] %(name)-15s %(levelname)-8s %(message)s')
handler.setFormatter(formatter)
log.addHandler(handler)
log1.addHandler(handler)
log2.addHandler(handler)
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)
# log1.setLevel(logging.DEBUG)
# log2.setLevel(logging.INFO)
#start-up
#log denotes write to local, report denotes sending to server
#TODO startup message
#loadconfig
from config import *
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()
log.debug (system.stats)
mission = Mission()
#todo test cell connection
reporter = Datareporter (
use_lan = True,
url = "http://home.ascorrea.com",
server_port = 5010,
missiontime = mission,
use_lan = False,
url = "http://spaceballoon-server.herokuapp.com",
server_port = 80,
data_path = "upload-data",
image_path = "upload-file",
image_path = "missions",
ping_path = "ping",
com_port_name="/dev/ttyAMA0",
baud_rate = 9600)
baud_rate = 9600
)
t = Record({'zt':mission.timezero})
# mid = reporter.send(t) #reply of first message is the mission number
# mission.set_mid(mid)
notebook = Datalogger (
missiontime = mission,
text_path=None,
log_path=log_path,
photo_path=photo_path)
log.debug ("System started")
#system check
system = System()
log.debug (system.stats)
#set mission time
log.info("Mission {} started, time zero is {}".format(mission.name, mission.timezero))
#intiate mission
# log.info('Sent {} to server'.format(intiate))
#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=True,
vflip=False,
hflip=True,
exposure_mode='sports'
exposure_mode='sports',
# debug=True
)
#todo test barometer
barometer = Barometer()
@@ -95,51 +109,51 @@ def scheduler (interval, worker_func, iterations = 0):
def update_barometer_local():
global bar
bar = barometer.read()
notebook.log(bar, message_type="data")
bar.update({'mt':mission.now()})
record = Record(bar.copy(),'b')
notebook.log(record)
def update_image_local():
global img
img = camera.capture()
notebook.log(img.get('hi'), message_type="image")
img = camera.capture(name=mission.now())
record = Record([img.get('hi'), img.get('lo')], 'i')
notebook.log(record)
def submit_report():
global bar
global img
global counter
global transpondence
scheduler(2, update_barometer_local)
scheduler(5, update_image_local)
# reporter.create_transpondence()
if not transpondence:
log.info("type of transpondence is {}".format(type(transpondence)))
transpondence = Record()
log.info("type of transpondence is {} and is {}".format(type(transpondence), transpondence))
if (counter % refresh_barometer_transmit) == 0:
log.info("type of transpondence is {} and is {}".format(type(transpondence), transpondence))
transpondence.add(bar,'b')
if (counter % refresh_camera_transmit) == 0:
transpondence.add(img.get('lo'),'i')
transpondence = reporter.send(transpondence) #returns none on success, (bad practice?)
counter += 1
log.info('Counter = {}'.format(counter))
counter=1
while counter>0:
global img
global bar
# bar=None
# img=None
try:
reporter.send(1, message_type="ping")
img = None
bar = None
transpondence = None
# if (counter % refresh_camera_local) == 0:
# if not img:
# img = camera.capture()
# notebook.log(img.get('hi'), message_type="image")
scheduler(1, update_barometer_local)
scheduler(refresh_camera_local, update_image_local)
scheduler(2, submit_report)
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