From 2ce9a085129ae7bcf24ffb1e254ad15fbaefd79b Mon Sep 17 00:00:00 2001
From: Kristoffer Richardsson <kristoffer@bitcraze.io>
Date: Wed, 17 May 2017 10:41:05 +0200
Subject: [PATCH] Added position logging to swarm example. Disabled by default.
 Closes #48

---
 examples/swarmSequence.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/examples/swarmSequence.py b/examples/swarmSequence.py
index f500d5a..96037b5 100644
--- a/examples/swarmSequence.py
+++ b/examples/swarmSequence.py
@@ -110,6 +110,24 @@ def reset_estimator(scf):
     wait_for_position_estimator(cf)
 
 
+def position_callback(timestamp, data, logconf):
+    x = data['kalman.stateX']
+    y = data['kalman.stateY']
+    z = data['kalman.stateZ']
+    print('pos: ({}, {}, {})'.format(x, y, z))
+
+
+def start_position_printing(scf):
+    log_conf = LogConfig(name='Position', period_in_ms=500)
+    log_conf.add_variable('kalman.stateX', 'float')
+    log_conf.add_variable('kalman.stateY', 'float')
+    log_conf.add_variable('kalman.stateZ', 'float')
+
+    scf.cf.log.add_config(log_conf)
+    log_conf.data_received_cb.add_callback(position_callback)
+    log_conf.start()
+
+
 def run_sequence(scf, sequence):
     cf = scf.cf
 
@@ -134,4 +152,5 @@ if __name__ == '__main__':
 
     with Swarm(uris) as swarm:
         swarm.parallel(reset_estimator)
+        # swarm.parallel(start_position_printing)
         swarm.parallel(run_sequence, args_dict=seq_args)
-- 
GitLab