needle to flock, flock data from server
This commit is contained in:
parent
0a2ddf3a10
commit
083603ca11
47
main.py
47
main.py
@ -190,6 +190,23 @@ class FlockompassApp(App):
|
|||||||
self.dest_distance = "Destino: %s\nVel: %0.1f km/h" % (dest_distance,
|
self.dest_distance = "Destino: %s\nVel: %0.1f km/h" % (dest_distance,
|
||||||
self.gps_data['speed'] * 1.609344)
|
self.gps_data['speed'] * 1.609344)
|
||||||
|
|
||||||
|
|
||||||
|
if 'flock_lat' in self.session_data:
|
||||||
|
flock_distance = geodesic(
|
||||||
|
(self.gps_data['lat'], self.gps_data['lon']),
|
||||||
|
(self.session_data['flock_lat'], self.session_data['flock_lon'])).kilometers
|
||||||
|
if flock_distance < 1:
|
||||||
|
flock_distance *= 1000
|
||||||
|
flock_distance = "%i metros" % flock_distance
|
||||||
|
else:
|
||||||
|
flock_distance = "%0.1f km" % flock_distance
|
||||||
|
|
||||||
|
self.dashboard_flock = "Flock: %s\nVel: %0.1f km/h" % (flock_distance,
|
||||||
|
self.session_data['flock_avg_speed'] * 1.609344)
|
||||||
|
else:
|
||||||
|
self.dashboard_flock = "no flocks"
|
||||||
|
|
||||||
|
|
||||||
self.session_data.update({'speed': self.gps_data['speed'] * 1.609344,
|
self.session_data.update({'speed': self.gps_data['speed'] * 1.609344,
|
||||||
'bearing': self.gps_data['bearing'],
|
'bearing': self.gps_data['bearing'],
|
||||||
'lat': self.gps_data['lat'],
|
'lat': self.gps_data['lat'],
|
||||||
@ -246,6 +263,23 @@ class FlockompassApp(App):
|
|||||||
d=0.1,
|
d=0.1,
|
||||||
t='out_quad')
|
t='out_quad')
|
||||||
|
|
||||||
|
if 'flock_lat' in self.session_data:
|
||||||
|
self.cs.ids.to_flock.source = 'assets/needle_to_flock.png'
|
||||||
|
lat2 = self.session_data['flock_lat']
|
||||||
|
lon2 = self.session_data['flock_lon']
|
||||||
|
|
||||||
|
fbearing = atan2(sin(lon2 - lon1) * cos(lat2),
|
||||||
|
cos(lat1) * sin(lat2)
|
||||||
|
- sin(lat1) * cos(lat2) * cos(lon2-lon1))
|
||||||
|
fbearing = self.needle_angle - degrees(fbearing)
|
||||||
|
|
||||||
|
self.cs._anim &= Animation(fbearing=fbearing,
|
||||||
|
d=0.1,
|
||||||
|
t='out_quad')
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.cs.ids.to_flock.source = 'assets/pivot.png'
|
||||||
|
|
||||||
self.cs._anim.start(self)
|
self.cs._anim.start(self)
|
||||||
|
|
||||||
def compass_enable(self):
|
def compass_enable(self):
|
||||||
@ -267,17 +301,22 @@ class FlockompassApp(App):
|
|||||||
self.gps_start(1000, 0)
|
self.gps_start(1000, 0)
|
||||||
|
|
||||||
def flock_server_register(self):
|
def flock_server_register(self):
|
||||||
|
try:
|
||||||
register_url = "{server}/register/?dest_lon={dest_lon}&dest_lat={dest_lat}"
|
register_url = "{server}/register/?dest_lon={dest_lon}&dest_lat={dest_lat}"
|
||||||
|
|
||||||
r = requests.get(register_url.format(server=FLOCK_SERVER,
|
r = requests.get(register_url.format(server=FLOCK_SERVER,
|
||||||
dest_lon=self.session_data['dest_lon'],
|
dest_lon=self.session_data['dest_lon'],
|
||||||
dest_lat=self.session_data['dest_lat']))
|
dest_lat=self.session_data['dest_lat']))
|
||||||
out = r.json()
|
out = r.json()
|
||||||
|
|
||||||
self.session_data['bike_id'] = out['bike_id']
|
self.session_data['bike_id'] = out['bike_id']
|
||||||
|
except:
|
||||||
|
self.session_data.pop('bike_id', None)
|
||||||
|
|
||||||
|
|
||||||
def flock_server_update(self):
|
def flock_server_update(self):
|
||||||
|
|
||||||
|
try:
|
||||||
update_url = "{server}/update/{bike_id}/?lat={lat}&lon={lon}&speed={speed}&bearing={bearing}"
|
update_url = "{server}/update/{bike_id}/?lat={lat}&lon={lon}&speed={speed}&bearing={bearing}"
|
||||||
req = requests.get(update_url.format(server=FLOCK_SERVER,
|
req = requests.get(update_url.format(server=FLOCK_SERVER,
|
||||||
bike_id=self.session_data['bike_id'],
|
bike_id=self.session_data['bike_id'],
|
||||||
@ -286,8 +325,12 @@ class FlockompassApp(App):
|
|||||||
lat=self.session_data['lat'],
|
lat=self.session_data['lat'],
|
||||||
lon=self.session_data['lon']))
|
lon=self.session_data['lon']))
|
||||||
resp = req.json()
|
resp = req.json()
|
||||||
|
print('server update ¡¡¡¡¡¡¡¡', req, resp)
|
||||||
self.session_data.update(resp)
|
self.session_data.update(resp)
|
||||||
|
except:
|
||||||
|
self.session_data.pop('bike_id', None)
|
||||||
|
self.session_data.pop('speed', None)
|
||||||
|
self.session_data.pop('bearing', None)
|
||||||
|
|
||||||
|
|
||||||
def flock(self, dt):
|
def flock(self, dt):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user