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