Commit 10/22
This commit is contained in:
135
main.py
135
main.py
@@ -1,113 +1,94 @@
|
||||
__author__ = 'asc'
|
||||
DEBUG = True
|
||||
import logging
|
||||
|
||||
if DEBUG:
|
||||
from instruments import Barometer_Debug as Barometer
|
||||
from instruments import Camera_Debug as Camera
|
||||
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
|
||||
|
||||
# else:
|
||||
# from instruments import Barometer, Camera
|
||||
# from datahandling import Datalogger, Datareporter
|
||||
# from system import System
|
||||
# import threading
|
||||
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 ()
|
||||
logger.log ("System Startup")
|
||||
logger.log("Log Intiated")
|
||||
log.debug ("System started")
|
||||
# logger.log("Log Intiated")
|
||||
|
||||
#system check
|
||||
system = System()
|
||||
system_status = system.status
|
||||
|
||||
logger.log (system_status[1])
|
||||
# logger.log (system_status[1])
|
||||
|
||||
#todo test cell connection, log, report
|
||||
reporter = Datareporter()
|
||||
reporter_status = reporter.status
|
||||
|
||||
logger.log (reporter_status[1])
|
||||
# logger.log (reporter_status[1])
|
||||
reporter.send(reporter_status[1])
|
||||
reporter.send(system_status[1])
|
||||
|
||||
#TODO test camera, log, report
|
||||
camera = Camera ()
|
||||
camera = Camera (low_quality_compression_pct=low_quality_compression_pct,
|
||||
low_quality_resolution=low_quality_resolution)
|
||||
camera_status = camera.status
|
||||
logger.log (camera_status[1])
|
||||
reporter.send(camera_status[1])
|
||||
|
||||
#todo test barometer, log, report
|
||||
barometer = Barometer()
|
||||
barometer_status = barometer.status
|
||||
logger.log (barometer_status[1])
|
||||
reporter.send(barometer_status[1])
|
||||
# barometer_status = barometer.status
|
||||
# logger.log (barometer_status[1])
|
||||
# reporter.send(barometer_status[1])
|
||||
|
||||
#todo test GPS, log, report
|
||||
|
||||
#check for errors, throw exception if error
|
||||
#todo check for errors, throw exception if error
|
||||
|
||||
if(system_status[0] or reporter_status[0] or camera_status[0]):
|
||||
raise Exception ('Error')
|
||||
|
||||
if DEBUG:
|
||||
#rate refresh hi-res camera images, saved locally, in seconds
|
||||
refresh_camera_local = 2
|
||||
refresh_camera_transmit = 5
|
||||
|
||||
refresh_barometer_local = 1
|
||||
refresh_barometer_transmit = 5
|
||||
|
||||
refresh_gps_local = 2
|
||||
refresh_gps_transmit = 5
|
||||
|
||||
else:
|
||||
refresh_camera_local = 10
|
||||
refresh_camera_transmit= 60
|
||||
|
||||
refresh_barometer_local = 10
|
||||
refresh_barometer_transmit= 60
|
||||
|
||||
refresh_gps_local = 10
|
||||
refresh_gps_transmit= 60
|
||||
|
||||
def update_barometer():
|
||||
#refresh each instrument
|
||||
alt = barometer.altitude
|
||||
press = barometer.pressure
|
||||
temp = barometer.temperature
|
||||
|
||||
#log instrument info
|
||||
logger.log({"altitude":alt,
|
||||
"temperature":temp,
|
||||
"pressure":press,
|
||||
"sent":datetime.datetime.now()
|
||||
})
|
||||
|
||||
#report instrument info
|
||||
reporter.send({"altitude":alt,
|
||||
"temperature": temp,
|
||||
"pressure":press,
|
||||
"sent":datetime.datetime.now()
|
||||
},type="data")
|
||||
|
||||
|
||||
|
||||
def update_camera():
|
||||
image = camera.capture()
|
||||
#log image
|
||||
logger.log(image.get('file'), type="image")
|
||||
#report image
|
||||
reporter.send(image.get('file'), type="image")
|
||||
pass
|
||||
|
||||
def scheduler (interval, worker_func, iterations = 0):
|
||||
if iterations != 1:
|
||||
threading.Timer (
|
||||
@@ -119,9 +100,17 @@ def scheduler (interval, worker_func, iterations = 0):
|
||||
|
||||
#while 1:
|
||||
|
||||
update_camera()
|
||||
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, 20)
|
||||
scheduler(refresh_camera_local, update_camera, 1)
|
||||
# scheduler(refresh_barometer_local, update_barometer, 2)
|
||||
# scheduler(refresh_camera_local, update_camera, 2)
|
||||
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user