tunning session management
This commit is contained in:
parent
644974a51c
commit
0aad187956
@ -157,7 +157,7 @@
|
||||
TextInput:
|
||||
id: flock_server
|
||||
font_size: '15sp'
|
||||
text: 'http://flock.apps.lancis.ecologia.unam.mx'
|
||||
text: 'http://132.247.90.102'
|
||||
multiline: False
|
||||
BackgroundLabel:
|
||||
text: "Dark theme"
|
||||
|
||||
43
main.py
43
main.py
@ -83,7 +83,7 @@ class FlockompassApp(App):
|
||||
settings = {'settings_smoothing': 0.88,
|
||||
'settings_compass_update': 0.88,
|
||||
'settings_theme': "dark",
|
||||
'settings_flock_server': 'http://flock.apps.lancis.ecologia.unam.mx'
|
||||
'settings_flock_server': 'http://132.247.90.102'
|
||||
}
|
||||
|
||||
with open(pickle_path, 'wb') as f:
|
||||
@ -318,29 +318,27 @@ class FlockompassApp(App):
|
||||
def flock_server_register(self):
|
||||
|
||||
# flush session data
|
||||
self.session_data.pop('session_id', None)
|
||||
self.session_data.pop('bike_id', None)
|
||||
self.session_data.pop('client_id', None)
|
||||
self.session_data.pop('speed', None)
|
||||
self.session_data.pop('bearing', None)
|
||||
self.session_data.pop('last_update', None)
|
||||
|
||||
Logger.info("Unique ID: %s" % uniqueid.get_uid())
|
||||
client_id = hashlib.sha256(b"%s/%s/%s" % (uniqueid.get_uid(),
|
||||
self.session_data['dest_lon'],
|
||||
self.session_data['dest_lat'],
|
||||
)).hexdigest()
|
||||
key = "%s" % uniqueid.get_uid()
|
||||
client_id = str(hashlib.sha256(key.encode()).hexdigest())[0:10]
|
||||
|
||||
try:
|
||||
register_url = "{server}/register/" % self.session_data['settings_flock_server']
|
||||
|
||||
register_url = "%s/register/" % self.session_data['settings_flock_server']
|
||||
Logger.info('trying %s' % register_url)
|
||||
r = requests.get(register_url,
|
||||
params={'dest_lon': self.session_data['dest_lon'],
|
||||
'dest_lat': self.session_data['dest_lat'],
|
||||
'client_id': client_id},
|
||||
timeout=0.5)
|
||||
# TODO: check for response code, only proceed if 200
|
||||
self.session_data['session_id'] = r.json()['session_id']
|
||||
self.session_data['bike_id'] = r.json()['bike_id']
|
||||
self.session_data['client_id'] = client_id
|
||||
Logger.info('registered! got session_id: %s' % self.session_data['session_id'])
|
||||
Logger.info('registered! got bike_id: %s' % self.session_data['bike_id'])
|
||||
self.flock_server_update()
|
||||
except requests.exceptions.Timeout:
|
||||
Logger.info('comm timeout while registering with flock server')
|
||||
@ -352,13 +350,15 @@ class FlockompassApp(App):
|
||||
def flock_server_update(self):
|
||||
|
||||
try:
|
||||
update_url = "{server}/update/{client_id}/?lat={lat}&lon={lon}&speed={speed}&bearing={bearing}"
|
||||
req = requests.get(update_url.format(server=self.session_data['settings_flock_server'],
|
||||
client_id=self.session_data['client_id'],
|
||||
speed=self.session_data.get('speed', 0),
|
||||
bearing=self.session_data.get('bearing', 0),
|
||||
lat=self.session_data['lat'],
|
||||
lon=self.session_data['lon']),
|
||||
update_url = "{server}/update/{bike_id}/?lat={lat}&lon={lon}&speed={speed}&bearing={bearing}"
|
||||
req = requests.get("%s/update/%s/" % (self.session_data['settings_flock_server'],
|
||||
self.session_data['bike_id']),
|
||||
params={
|
||||
'client_id': self.session_data['client_id'],
|
||||
'speed': self.session_data.get('speed', 0),
|
||||
'bearing': self.session_data.get('bearing', 0),
|
||||
'lat': self.session_data['lat'],
|
||||
'lon': self.session_data['lon']},
|
||||
timeout=0.5)
|
||||
resp = req.json()
|
||||
if resp:
|
||||
@ -370,8 +370,6 @@ class FlockompassApp(App):
|
||||
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')
|
||||
|
||||
@ -388,8 +386,9 @@ class FlockompassApp(App):
|
||||
|
||||
|
||||
def flock(self, dt):
|
||||
if ('session_id' in self.session_data
|
||||
and (self.session_data.get('last_update') + self.get_session_timeout()) > datetime.now()):
|
||||
if ('bike_id' in self.session_data
|
||||
and 'last_update' in self.session_data
|
||||
and (self.session_data.get('last_update', 0) + self.get_session_timeout()) > datetime.now()):
|
||||
self.flock_server_update()
|
||||
else:
|
||||
self.flock_server_register()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user