From 56caa7750c08f2187493f4d88e4961c9ac552123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Sat, 12 Mar 2016 09:40:33 +0100 Subject: [PATCH] Twice as fast checksum calculation Thanks @nophead! --- src/octoprint/util/comm.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/octoprint/util/comm.py b/src/octoprint/util/comm.py index 54ab12d6..d484f6fa 100644 --- a/src/octoprint/util/comm.py +++ b/src/octoprint/util/comm.py @@ -1854,7 +1854,9 @@ class MachineCom(object): def _do_send_with_checksum(self, command, linenumber): command_to_send = "N" + str(linenumber) + " " + command - checksum = reduce(lambda x, y: x ^ y, map(ord, command_to_send)) + checksum = 0 + for c in command_to_send: + checksum ^= ord(c) command_to_send = command_to_send + "*" + str(checksum) self._do_send_without_checksum(command_to_send)