diff options
Diffstat (limited to 'klippy/msgproto.py')
-rw-r--r-- | klippy/msgproto.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/klippy/msgproto.py b/klippy/msgproto.py index 177dbf7b..f8a12530 100644 --- a/klippy/msgproto.py +++ b/klippy/msgproto.py @@ -234,6 +234,7 @@ class MessageParser: self.messages = [] self.messages_by_id = {} self.messages_by_name = {} + self.msgtag_by_format = {} self.config = {} self.version = self.build_versions = "" self.raw_identify_data = "" @@ -316,6 +317,11 @@ class MessageParser: self._error("Command format mismatch: %s vs %s", msgformat, mp.msgformat) return mp + def lookup_msgtag(self, msgformat): + msgtag = self.msgtag_by_format.get(msgformat) + if msgtag is None: + self._error("Unknown command: %s", msgformat) + return msgtag def create_command(self, msg): parts = msg.strip().split() if not parts: @@ -376,6 +382,7 @@ class MessageParser: self.messages.append((msgtag, msgtype, msgformat)) if msgtag < -32 or msgtag > 95: self._error("Multi-byte msgtag not supported") + self.msgtag_by_format[msgformat] = msgtag msgid = msgtag & 0x7f if msgtype == 'output': self.messages_by_id[msgid] = OutputFormat(msgid, msgformat) |