self.queue.append(state)
delta = datetime.utcnow() - self.last
if delta.total_seconds() > self.config.maxrate:
- self.flush()
+ return self.flush()
# Private methods
def flush(self):
if not self.running() or len(self.queue) == 0:
return
+ # Limit data to 500 samples per upload
+ limit = 500
+ upload = self.queue
+ if len(upload) > limit:
+ print("upload: cropping - %d -> %d" %
+ (len(upload), limit))
+ upload = upload[0:limit-1]
+
self.feed.datastreams = [
- get(self.queue, 'acc'),
- get(self.queue, 'mag'),
- get(self.queue, 'tch'),
- get(self.queue, 'lgt'),
- get(self.queue, 'a2d'),
+ get(upload, 'acc'),
+ get(upload, 'mag'),
+ get(upload, 'tch'),
+ get(upload, 'lgt'),
+ get(upload, 'a2d'),
]
- self.feed.update()
+
+ try:
+ self.feed.update()
+ except Exception as ex:
+ return str(ex)
self.last = datetime.utcnow()
self.queue = []