commit 11/12/2015
This commit is contained in:
174
main.py
174
main.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user