]> Pileus Git - ~andy/csm213a-hw/blobdiff - vis/logger.py
Finish up
[~andy/csm213a-hw] / vis / logger.py
index bd394a1fdef2b0f14ec6bed489f7c51c063d5231..a1cccf7624ab82e464b704506493c66b501d9d72 100644 (file)
@@ -37,7 +37,7 @@ class Logger:
                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):
@@ -54,14 +54,26 @@ class Logger:
                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 = []