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: 0, 0, 0, 0
|
||||||
background_color: rgba("#c0464b")
|
background_color: rgba("#c0464b")
|
||||||
|
|
||||||
|
|
||||||
<RootScreen>:
|
<RootScreen>:
|
||||||
MapScreen:
|
MapScreen:
|
||||||
CompassScreen:
|
CompassScreen:
|
||||||
@ -54,13 +53,6 @@
|
|||||||
id: centermark
|
id: centermark
|
||||||
anchor_x: 0.5
|
anchor_x: 0.5
|
||||||
anchor_y: 0
|
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:
|
IconButton:
|
||||||
pos_hint: {"x":.8, "top":0.95}
|
pos_hint: {"x":.8, "top":0.95}
|
||||||
size_hint: 0.2, 0.2
|
size_hint: 0.2, 0.2
|
||||||
@ -157,6 +149,16 @@
|
|||||||
<SettingsScreen>:
|
<SettingsScreen>:
|
||||||
GridLayout:
|
GridLayout:
|
||||||
cols: 2
|
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:
|
BackgroundLabel:
|
||||||
text: "Dark theme"
|
text: "Dark theme"
|
||||||
background_color: rgba(app.theme['bgcolor'])
|
background_color: rgba(app.theme['bgcolor'])
|
||||||
@ -193,9 +195,9 @@
|
|||||||
id: slider_compass_update
|
id: slider_compass_update
|
||||||
background_color: rgba(app.theme['bgcolor'])
|
background_color: rgba(app.theme['bgcolor'])
|
||||||
color: rgba(app.theme['fgcolor'])
|
color: rgba(app.theme['fgcolor'])
|
||||||
min: 0.1
|
min: 0.80
|
||||||
max: 0.9
|
max: 0.95
|
||||||
step: 0.05
|
step: 0.01
|
||||||
orientation: 'horizontal'
|
orientation: 'horizontal'
|
||||||
value: app.session_data['settings_compass_update']
|
value: app.session_data['settings_compass_update']
|
||||||
on_value: app.set_compass_update()
|
on_value: app.set_compass_update()
|
||||||
@ -209,11 +211,12 @@
|
|||||||
id: slider_update_freq
|
id: slider_update_freq
|
||||||
background_color: rgba(app.theme['bgcolor'])
|
background_color: rgba(app.theme['bgcolor'])
|
||||||
color: rgba(app.theme['fgcolor'])
|
color: rgba(app.theme['fgcolor'])
|
||||||
min: 0
|
min: 5
|
||||||
max: 1
|
max: 30
|
||||||
step: 0.1
|
step: 2
|
||||||
orientation: 'horizontal'
|
orientation: 'horizontal'
|
||||||
value: 0.5
|
value: 10
|
||||||
|
on_value: app.set_update_freq()
|
||||||
BackgroundLabel:
|
BackgroundLabel:
|
||||||
text: "Local altruism"
|
text: "Local altruism"
|
||||||
background_color: rgba(app.theme['bgcolor'])
|
background_color: rgba(app.theme['bgcolor'])
|
||||||
|
|||||||
40
main.py
40
main.py
@ -20,7 +20,7 @@ from os import path
|
|||||||
import pickle
|
import pickle
|
||||||
|
|
||||||
#FLOCK_SERVER="http://192.168.0.8:5000"
|
#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):
|
class IconButton(ButtonBehavior, Image):
|
||||||
pass
|
pass
|
||||||
@ -84,9 +84,11 @@ class FlockompassApp(App):
|
|||||||
settings = pickle.load(f)
|
settings = pickle.load(f)
|
||||||
else:
|
else:
|
||||||
settings = {'settings_smoothing': 0.88,
|
settings = {'settings_smoothing': 0.88,
|
||||||
'settings_compass_update': 0.777,
|
'settings_compass_update': 0.88,
|
||||||
'settings_theme': "dark"
|
'settings_theme': "dark",
|
||||||
|
'settings_flock_server': 'http://flock.apps.lancis.ecologia.unam.mx'
|
||||||
}
|
}
|
||||||
|
|
||||||
with open(pickle_path, 'wb') as f:
|
with open(pickle_path, 'wb') as f:
|
||||||
pickle.dump(settings, f)
|
pickle.dump(settings, f)
|
||||||
|
|
||||||
@ -113,6 +115,18 @@ class FlockompassApp(App):
|
|||||||
self.session_data['settings_smoothing'] = self.ss.ids.slider_smoothing.value
|
self.session_data['settings_smoothing'] = self.ss.ids.slider_smoothing.value
|
||||||
self.save_settings()
|
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):
|
def set_compass_update(self):
|
||||||
self.session_data['settings_compass_update'] = self.ss.ids.slider_compass_update.value
|
self.session_data['settings_compass_update'] = self.ss.ids.slider_compass_update.value
|
||||||
self.compass_disable()
|
self.compass_disable()
|
||||||
@ -166,7 +180,7 @@ class FlockompassApp(App):
|
|||||||
@mainthread
|
@mainthread
|
||||||
def on_location(self, **kwargs):
|
def on_location(self, **kwargs):
|
||||||
self.gps_data = kwargs
|
self.gps_data = kwargs
|
||||||
self.dump(1)
|
# self.dump(1)
|
||||||
|
|
||||||
if ('dest_lat' not in self.session_data
|
if ('dest_lat' not in self.session_data
|
||||||
and
|
and
|
||||||
@ -286,7 +300,7 @@ class FlockompassApp(App):
|
|||||||
def compass_enable(self):
|
def compass_enable(self):
|
||||||
self.cs.facade.enable()
|
self.cs.facade.enable()
|
||||||
Clock.schedule_interval(self.get_field,
|
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):
|
def compass_disable(self):
|
||||||
self.cs.facade.disable()
|
self.cs.facade.disable()
|
||||||
@ -305,22 +319,25 @@ class FlockompassApp(App):
|
|||||||
try:
|
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=self.session_data['settings_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']),
|
||||||
timeout=0.5)
|
timeout=0.5)
|
||||||
out = r.json()
|
out = r.json()
|
||||||
|
|
||||||
self.session_data['bike_id'] = out['bike_id']
|
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)
|
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):
|
def flock_server_update(self):
|
||||||
|
|
||||||
try:
|
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=self.session_data['settings_flock_server'],
|
||||||
bike_id=self.session_data['bike_id'],
|
bike_id=self.session_data['bike_id'],
|
||||||
speed=self.session_data['speed'],
|
speed=self.session_data['speed'],
|
||||||
bearing=self.session_data['bearing'],
|
bearing=self.session_data['bearing'],
|
||||||
@ -330,7 +347,8 @@ class FlockompassApp(App):
|
|||||||
resp = req.json()
|
resp = req.json()
|
||||||
print('server update ¡¡¡¡¡¡¡¡', req, resp)
|
print('server update ¡¡¡¡¡¡¡¡', req, resp)
|
||||||
self.session_data.update(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('bike_id', None)
|
||||||
self.session_data.pop('speed', None)
|
self.session_data.pop('speed', None)
|
||||||
self.session_data.pop('bearing', None)
|
self.session_data.pop('bearing', None)
|
||||||
@ -381,7 +399,7 @@ class FlockompassApp(App):
|
|||||||
self.cs._anim1 = None
|
self.cs._anim1 = None
|
||||||
screen_manager.add_widget(self.cs)
|
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
|
return screen_manager
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user