diff --git a/src/octoprint/static/js/app/viewmodels/gcode.js b/src/octoprint/static/js/app/viewmodels/gcode.js index efba29c0..d29efe66 100644 --- a/src/octoprint/static/js/app/viewmodels/gcode.js +++ b/src/octoprint/static/js/app/viewmodels/gcode.js @@ -168,7 +168,7 @@ function GcodeViewModel(loginStateViewModel, settingsViewModel) { step: 1, value: 0, enabled: false, - formatter: function(value) { return "Layer #" + value; } + formatter: function(value) { return "Layer #" + (value + 1); } }).on("slide", self.changeLayer); }; @@ -333,7 +333,7 @@ function GcodeViewModel(loginStateViewModel, settingsViewModel) { self.currentCommand = [0, 1]; } else { var output = []; - output.push("Layer number: " + layer.number); + output.push("Layer number: " + (layer.number + 1)); output.push("Layer height (mm): " + layer.height); output.push("GCODE commands in layer: " + layer.commands); if (layer.filament.length == 1) { diff --git a/src/octoprint/timelapse.py b/src/octoprint/timelapse.py index 2c3b2c82..3a3ad906 100644 --- a/src/octoprint/timelapse.py +++ b/src/octoprint/timelapse.py @@ -236,10 +236,13 @@ class Timelapse(object): return filename def _captureWorker(self, filename): - eventManager().fire(Events.CAPTURE_START, {"file": filename}); - urllib.urlretrieve(self._snapshotUrl, filename) - self._logger.debug("Image %s captured from %s" % (filename, self._snapshotUrl)) - eventManager().fire(Events.CAPTURE_DONE, {"file": filename}); + eventManager().fire(Events.CAPTURE_START, {"file": filename}) + try: + urllib.urlretrieve(self._snapshotUrl, filename) + self._logger.debug("Image %s captured from %s" % (filename, self._snapshotUrl)) + except: + self._logger.exception("Could not capture image %s from %s" % (filename, self._snapshotUrl)) + eventManager().fire(Events.CAPTURE_DONE, {"file": filename}) def _createMovie(self, success=True): ffmpeg = settings().get(["webcam", "ffmpeg"])