register and update to server, better compass updates
This commit is contained in:
parent
4ac945ebac
commit
f7d0dbb0af
@ -27,7 +27,6 @@
|
||||
background_color: 0, 0, 0, 0
|
||||
background_color: rgba("#c0464b")
|
||||
|
||||
|
||||
<RootScreen>:
|
||||
MapScreen:
|
||||
CompassScreen:
|
||||
@ -54,13 +53,6 @@
|
||||
id: centermark
|
||||
anchor_x: 0.5
|
||||
anchor_y: 0
|
||||
TextInput:
|
||||
pos_hint: {"x":0.05, "top":0.97}
|
||||
size_hint: 0.9, None
|
||||
height: "32sp"
|
||||
font_size: '20sp'
|
||||
hint_text: 'buscar destino'
|
||||
multiline: False
|
||||
IconButton:
|
||||
pos_hint: {"x":.8, "top":0.95}
|
||||
size_hint: 0.2, 0.2
|
||||
@ -157,6 +149,16 @@
|
||||
<SettingsScreen>:
|
||||
GridLayout:
|
||||
cols: 2
|
||||
BackgroundLabel:
|
||||
text: "Flock Server"
|
||||
background_color: rgba(app.theme['bgcolor'])
|
||||
color: rgba(app.theme['fgcolor'])
|
||||
font_size: '14sp'
|
||||
TextInput:
|
||||
id: flock_server
|
||||
font_size: '15sp'
|
||||
text: 'http://flock.apps.lancis.ecologia.unam.mx'
|
||||
multiline: False
|
||||
BackgroundLabel:
|
||||
text: "Dark theme"
|
||||
background_color: rgba(app.theme['bgcolor'])
|
||||
@ -193,9 +195,9 @@
|
||||
id: slider_compass_update
|
||||
background_color: rgba(app.theme['bgcolor'])
|
||||
color: rgba(app.theme['fgcolor'])
|
||||
min: 0.1
|
||||
max: 0.9
|
||||
step: 0.05
|
||||
min: 0.80
|
||||
max: 0.95
|
||||
step: 0.01
|
||||
orientation: 'horizontal'
|
||||
value: app.session_data['settings_compass_update']
|
||||
on_value: app.set_compass_update()
|
||||
@ -209,11 +211,12 @@
|
||||
id: slider_update_freq
|
||||
background_color: rgba(app.theme['bgcolor'])
|
||||
color: rgba(app.theme['fgcolor'])
|
||||
min: 0
|
||||
max: 1
|
||||
step: 0.1
|
||||
min: 5
|
||||
max: 30
|
||||
step: 2
|
||||
orientation: 'horizontal'
|
||||
value: 0.5
|
||||
value: 10
|
||||
on_value: app.set_update_freq()
|
||||
BackgroundLabel:
|
||||
text: "Local altruism"
|
||||
background_color: rgba(app.theme['bgcolor'])
|
||||
|
||||
46
main.py
46
main.py
@ -20,7 +20,7 @@ from os import path
|
||||
import pickle
|
||||
|
||||
#FLOCK_SERVER="http://192.168.0.8:5000"
|
||||
FLOCK_SERVER="http://awelo.ath.cx:5000"
|
||||
#FLOCK_SERVER="http://awelo.ath.cx:5000"
|
||||
|
||||
class IconButton(ButtonBehavior, Image):
|
||||
pass
|
||||
@ -84,9 +84,11 @@ class FlockompassApp(App):
|
||||
settings = pickle.load(f)
|
||||
else:
|
||||
settings = {'settings_smoothing': 0.88,
|
||||
'settings_compass_update': 0.777,
|
||||
'settings_theme': "dark"
|
||||
'settings_compass_update': 0.88,
|
||||
'settings_theme': "dark",
|
||||
'settings_flock_server': 'http://flock.apps.lancis.ecologia.unam.mx'
|
||||
}
|
||||
|
||||
with open(pickle_path, 'wb') as f:
|
||||
pickle.dump(settings, f)
|
||||
|
||||
@ -113,6 +115,18 @@ class FlockompassApp(App):
|
||||
self.session_data['settings_smoothing'] = self.ss.ids.slider_smoothing.value
|
||||
self.save_settings()
|
||||
|
||||
def set_flock_server(self):
|
||||
self.session_data['settings_flock_server'] = self.ss.ids.flock_server.value
|
||||
self.save_settings()
|
||||
|
||||
def set_update_freq(self):
|
||||
print('setting update freq to', self.ss.ids.slider_update_freq.value)
|
||||
self.session_data['settings_update_freq'] = self.ss.ids.slider_update_freq.value
|
||||
self.save_settings()
|
||||
Clock.unschedule(self.flock)
|
||||
Clock.schedule_interval(self.flock,
|
||||
self.session_data.get('settings_update_freq', 10.0))
|
||||
|
||||
def set_compass_update(self):
|
||||
self.session_data['settings_compass_update'] = self.ss.ids.slider_compass_update.value
|
||||
self.compass_disable()
|
||||
@ -166,7 +180,7 @@ class FlockompassApp(App):
|
||||
@mainthread
|
||||
def on_location(self, **kwargs):
|
||||
self.gps_data = kwargs
|
||||
self.dump(1)
|
||||
# self.dump(1)
|
||||
|
||||
if ('dest_lat' not in self.session_data
|
||||
and
|
||||
@ -200,7 +214,7 @@ class FlockompassApp(App):
|
||||
flock_distance = "%i metros" % flock_distance
|
||||
else:
|
||||
flock_distance = "%0.1f km" % flock_distance
|
||||
|
||||
|
||||
self.dashboard_flock = "%s @ %s\nvel: %0.1f km/h" % (self.session_data['flock_size'],
|
||||
flock_distance,
|
||||
self.session_data['flock_avg_speed'] * 1.609344)
|
||||
@ -277,16 +291,16 @@ class FlockompassApp(App):
|
||||
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)
|
||||
|
||||
|
||||
def compass_enable(self):
|
||||
self.cs.facade.enable()
|
||||
Clock.schedule_interval(self.get_field,
|
||||
1.0 - self.session_data.get('settings_compass_update', 0.777))
|
||||
1.0 - self.session_data.get('settings_compass_update', 0.88))
|
||||
|
||||
def compass_disable(self):
|
||||
self.cs.facade.disable()
|
||||
@ -305,22 +319,25 @@ class FlockompassApp(App):
|
||||
try:
|
||||
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=self.session_data['settings_flock_server'],
|
||||
dest_lon=self.session_data['dest_lon'],
|
||||
dest_lat=self.session_data['dest_lat']),
|
||||
timeout=0.5)
|
||||
out = r.json()
|
||||
|
||||
self.session_data['bike_id'] = out['bike_id']
|
||||
except:
|
||||
print('registered! got bike_id:', self.session_data['bike_id'])
|
||||
except requests.exceptions.Timeout:
|
||||
print('comm timeout while registering with flock server', self.session_data)
|
||||
self.session_data.pop('bike_id', None)
|
||||
except requests.exceptions.ConnectionError:
|
||||
print('unable to connect while registering with flock server')
|
||||
|
||||
|
||||
def flock_server_update(self):
|
||||
|
||||
try:
|
||||
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=self.session_data['settings_flock_server'],
|
||||
bike_id=self.session_data['bike_id'],
|
||||
speed=self.session_data['speed'],
|
||||
bearing=self.session_data['bearing'],
|
||||
@ -330,7 +347,8 @@ class FlockompassApp(App):
|
||||
resp = req.json()
|
||||
print('server update ¡¡¡¡¡¡¡¡', req, resp)
|
||||
self.session_data.update(resp)
|
||||
except:
|
||||
except requests.exceptions.Timeout:
|
||||
print('comm timeout while updating flock server, gonna have to re-register')
|
||||
self.session_data.pop('bike_id', None)
|
||||
self.session_data.pop('speed', None)
|
||||
self.session_data.pop('bearing', None)
|
||||
@ -381,7 +399,7 @@ class FlockompassApp(App):
|
||||
self.cs._anim1 = None
|
||||
screen_manager.add_widget(self.cs)
|
||||
|
||||
Clock.schedule_interval(self.flock, 20.0)
|
||||
Clock.schedule_interval(self.flock, self.session_data.get('settings_update_freq', 10.0))
|
||||
|
||||
return screen_manager
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user