aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2016-10-31 11:04:31 -0400
committerKevin O'Connor <kevin@koconnor.net>2016-10-31 11:15:38 -0400
commit41ef0bd98cb31c7f73b784f580d3f5ae926b4824 (patch)
treeabefffa30840386c334a7f25bd67af99cd8a4c15
parentf58d93c0bf793ddc73967c066a0a817195b48dfc (diff)
downloadkutter-41ef0bd98cb31c7f73b784f580d3f5ae926b4824.tar.gz
kutter-41ef0bd98cb31c7f73b784f580d3f5ae926b4824.tar.xz
kutter-41ef0bd98cb31c7f73b784f580d3f5ae926b4824.zip
stepstats: Add debugging script to calculate stats on stepper movement
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rwxr-xr-xscripts/stepstats.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/stepstats.py b/scripts/stepstats.py
new file mode 100755
index 00000000..19baf8a3
--- /dev/null
+++ b/scripts/stepstats.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+# Script to calculate stats for each stepper from a log of messages
+#
+# Copyright (C) 2016 Kevin O'Connor <kevin@koconnor.net>
+#
+# This file may be distributed under the terms of the GNU GPLv3 license.
+import optparse
+
+def main():
+ usage = "%prog [options] <comms file>"
+ opts = optparse.OptionParser(usage)
+ options, args = opts.parse_args()
+ if len(args) != 1:
+ opts.error("Incorrect number of arguments")
+ filename = args[0]
+
+ steppers = {}
+ f = open(filename, 'rb')
+ for line in f:
+ parts = line.split()
+ if not parts:
+ continue
+ args = dict([p.split('=', 1) for p in parts[1:]])
+ if parts[0] == 'config_stepper':
+ steppers[args['oid']] = [0, 0, 0, 0, 0]
+ elif parts[0] == 'set_next_step_dir':
+ so = steppers[args['oid']]
+ so[0] += 1
+ so[1] = args['dir']
+ elif parts[0] == 'queue_step':
+ so = steppers[args['oid']]
+ so[2] += 1
+ so[{'0': 3, '1': 4}[so[1]]] += int(args['count'])
+ for oid, so in sorted([(int(i[0]), i[1]) for i in steppers.items()]):
+ print "oid:%3d dir_cmds:%6d queue_cmds:%7d +:%8d -:%8d =:%8d" % (
+ oid, so[0], so[2], so[3], so[4], so[3]-so[4])
+
+if __name__ == '__main__':
+ main()