From 02b0e906f1ee0a92db5e9d5732cd1d17d014e431 Mon Sep 17 00:00:00 2001 From: Mark Walker Date: Wed, 30 Dec 2015 14:25:58 -0700 Subject: [PATCH] Allow M23 "File opened" response with no filename (cherry-picked from ba4b7c0) --- src/octoprint/settings.py | 2 +- src/octoprint/util/comm.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index d9a0f6df..577e02bc 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -293,7 +293,7 @@ default_settings = { "okWithLinenumber": False, "numExtruders": 1, "includeCurrentToolInTemps": True, - "includeFilenameOnOpened": True, + "includeFilenameInOpened": True, "movementSpeed": { "x": 6000, "y": 6000, diff --git a/src/octoprint/util/comm.py b/src/octoprint/util/comm.py index dc88d71f..bd84f70a 100644 --- a/src/octoprint/util/comm.py +++ b/src/octoprint/util/comm.py @@ -1120,12 +1120,16 @@ class MachineCom(object): elif 'File opened' in line and not self._ignore_select: # answer to M23, at least on Marlin, Repetier and Sprinter: "File opened:%s Size:%d" match = regex_sdFileOpened.search(line) + if match: + name = match.group("name") + size = int(match.group("size")) + else: + name = "Unknown" + size = 0 if self._sdFileToSelect: name = self._sdFileToSelect self._sdFileToSelect = None - else: - name = match.group("name") - self._currentFile = PrintingSdFileInformation(name, int(match.group("size"))) + self._currentFile = PrintingSdFileInformation(name, size) elif 'File selected' in line: if self._ignore_select: self._ignore_select = False