This commit is contained in:
rgarcia-herrera 2022-02-16 13:46:01 -06:00
parent bc11d35338
commit f8a37d5b65

18
main.py
View File

@ -1,4 +1,4 @@
from plyer import gps
from plyer import gps, uniqueid
from kivy.app import App
from kivy.clock import Clock
from kivy.core.window import Window
@ -16,9 +16,7 @@ from math import atan2, sin, cos, degrees, floor
import requests
from datetime import timedelta, datetime
from dateutil.parser import isoparse
from geopy.distance import geodesic
from os import path
import pickle
@ -186,7 +184,7 @@ class FlockompassApp(App):
self.gps_data = kwargs
if ('dest_lat' not in self.session_data and 'dest_lon' not in self.session_data):
self.session_data['dest_lat'] = self.gps_data['lat']
self.session_data['dest_lon'] = self.gps_data['lon']
@ -270,7 +268,7 @@ class FlockompassApp(App):
lat2 = self.session_data.get('dest_lat', 0)
lon2 = self.session_data.get('dest_lon', 0)
dbearing = atan2(sin(lon2 - lon1) * cos(lat2),
cos(lat1) * sin(lat2)
- sin(lat1) * cos(lat2) * cos(lon2-lon1))
@ -320,6 +318,7 @@ class FlockompassApp(App):
self.gps_start(1000, 0)
def flock_server_register(self):
Logger.info("Unique ID: %s" % uniqueid.get_uid())
try:
register_url = "{server}/register/?dest_lon={dest_lon}&dest_lat={dest_lat}"
@ -327,6 +326,7 @@ class FlockompassApp(App):
dest_lon=self.session_data['dest_lon'],
dest_lat=self.session_data['dest_lat']),
timeout=0.5)
# TODO: check for response code, only proceed if 200
self.session_data['bike_id'] = r.json()['bike_id']
Logger.info('registered! got bike_id: %s' % self.session_data['bike_id'])
self.flock_server_update()
@ -341,7 +341,7 @@ class FlockompassApp(App):
def flock_server_update(self):
Logger.info("Unique ID: %s" % uniqueid.get_uid())
try:
update_url = "{server}/update/{bike_id}/?lat={lat}&lon={lon}&speed={speed}&bearing={bearing}"
req = requests.get(update_url.format(server=self.session_data['settings_flock_server'],
@ -352,7 +352,7 @@ class FlockompassApp(App):
lon=self.session_data['lon']),
timeout=0.5)
resp = req.json()
if resp:
if resp:
self.session_data['last_update'] = isoparse(resp.pop('last_update'))
if 'flock_size' not in resp:
@ -360,9 +360,9 @@ class FlockompassApp(App):
self.session_data.pop('flock_lat', None)
self.session_data.pop('flock_lon', None)
self.session_data.pop('flock_size', None)
pLogger.info(self.session_data)
except requests.exceptions.Timeout:
Logger.info('comm timeout while updating flock server')