UI now displays last print time as approx. total print time if available, otherwise uses estimated print time if available
Closes #523
This commit is contained in:
parent
5e8a04e54d
commit
f9d1086062
5 changed files with 29 additions and 16 deletions
|
|
@ -164,6 +164,10 @@ Job information
|
||||||
- 0..1
|
- 0..1
|
||||||
- Integer
|
- Integer
|
||||||
- The estimated print time for the file, in seconds.
|
- The estimated print time for the file, in seconds.
|
||||||
|
* - ``lastPrintTime``
|
||||||
|
- 0..1
|
||||||
|
- Integer
|
||||||
|
- The print time of the last print of the file, in seconds.
|
||||||
* - ``filament``
|
* - ``filament``
|
||||||
- 0..1
|
- 0..1
|
||||||
- Object
|
- Object
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ class Printer():
|
||||||
"date": None
|
"date": None
|
||||||
},
|
},
|
||||||
"estimatedPrintTime": None,
|
"estimatedPrintTime": None,
|
||||||
|
"lastPrintTime": None,
|
||||||
"filament": {
|
"filament": {
|
||||||
"length": None,
|
"length": None,
|
||||||
"volume": None
|
"volume": None
|
||||||
|
|
@ -389,6 +390,7 @@ class Printer():
|
||||||
self._selectedFile = None
|
self._selectedFile = None
|
||||||
|
|
||||||
estimatedPrintTime = None
|
estimatedPrintTime = None
|
||||||
|
lastPrintTime = None
|
||||||
date = None
|
date = None
|
||||||
filament = None
|
filament = None
|
||||||
if filename:
|
if filename:
|
||||||
|
|
@ -398,11 +400,14 @@ class Printer():
|
||||||
date = int(os.stat(filename).st_ctime)
|
date = int(os.stat(filename).st_ctime)
|
||||||
|
|
||||||
fileData = self._gcodeManager.getFileData(filename)
|
fileData = self._gcodeManager.getFileData(filename)
|
||||||
if fileData is not None and "gcodeAnalysis" in fileData.keys():
|
if fileData is not None:
|
||||||
if "estimatedPrintTime" in fileData["gcodeAnalysis"].keys():
|
if "gcodeAnalysis" in fileData:
|
||||||
estimatedPrintTime = fileData["gcodeAnalysis"]["estimatedPrintTime"]
|
if estimatedPrintTime is None and "estimatedPrintTime" in fileData["gcodeAnalysis"]:
|
||||||
if "filament" in fileData["gcodeAnalysis"].keys():
|
estimatedPrintTime = fileData["gcodeAnalysis"]["estimatedPrintTime"]
|
||||||
filament = fileData["gcodeAnalysis"]["filament"]
|
if "filament" in fileData["gcodeAnalysis"].keys():
|
||||||
|
filament = fileData["gcodeAnalysis"]["filament"]
|
||||||
|
if "prints" in fileData and "last" in fileData["prints"] and "lastPrintTime" in fileData["prints"]["last"]:
|
||||||
|
lastPrintTime = fileData["prints"]["last"]["lastPrintTime"]
|
||||||
|
|
||||||
self._stateMonitor.setJobData({
|
self._stateMonitor.setJobData({
|
||||||
"file": {
|
"file": {
|
||||||
|
|
@ -412,6 +417,7 @@ class Printer():
|
||||||
"date": date
|
"date": date
|
||||||
},
|
},
|
||||||
"estimatedPrintTime": estimatedPrintTime,
|
"estimatedPrintTime": estimatedPrintTime,
|
||||||
|
"lastPrintTime": lastPrintTime,
|
||||||
"filament": filament,
|
"filament": filament,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -274,12 +274,12 @@ function GcodeFilesViewModel(printerStateViewModel, loginStateViewModel) {
|
||||||
} while (filament.hasOwnProperty("tool" + i));
|
} while (filament.hasOwnProperty("tool" + i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
output += "Estimated Print Time: " + formatDuration(data["gcodeAnalysis"]["estimatedPrintTime"]);
|
output += "Estimated Print Time: " + formatDuration(data["gcodeAnalysis"]["estimatedPrintTime"]) + "<br>";
|
||||||
}
|
}
|
||||||
if (data["prints"] && data["prints"]["last"]) {
|
if (data["prints"] && data["prints"]["last"]) {
|
||||||
output += "<br>Last Printed: " + formatTimeAgo(data["prints"]["last"]["date"]);
|
output += "Last Printed: " + formatTimeAgo(data["prints"]["last"]["date"]) + "<br>";
|
||||||
if (data["prints"]["last"]["lastPrintTime"]) {
|
if (data["prints"]["last"]["lastPrintTime"]) {
|
||||||
output += "<br>Last Print Time: " + formatDuration(data["prints"]["last"]["lastPrintTime"]);
|
output += "Last Print Time: " + formatDuration(data["prints"]["last"]["lastPrintTime"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return output;
|
return output;
|
||||||
|
|
|
||||||
|
|
@ -24,13 +24,16 @@ function PrinterStateViewModel(loginStateViewModel) {
|
||||||
|
|
||||||
self.filament = ko.observableArray([]);
|
self.filament = ko.observableArray([]);
|
||||||
self.estimatedPrintTime = ko.observable(undefined);
|
self.estimatedPrintTime = ko.observable(undefined);
|
||||||
|
self.lastPrintTime = ko.observable(undefined);
|
||||||
|
|
||||||
self.currentHeight = ko.observable(undefined);
|
self.currentHeight = ko.observable(undefined);
|
||||||
|
|
||||||
self.estimatedPrintTimeString = ko.computed(function() {
|
self.estimatedPrintTimeString = ko.computed(function() {
|
||||||
if (!self.estimatedPrintTime())
|
if (self.lastPrintTime())
|
||||||
return "-";
|
return formatDuration(self.lastPrintTime());
|
||||||
return formatDuration(self.estimatedPrintTime());
|
if (self.estimatedPrintTime())
|
||||||
|
return formatDuration(self.estimatedPrintTime());
|
||||||
|
return "-";
|
||||||
});
|
});
|
||||||
self.byteString = ko.computed(function() {
|
self.byteString = ko.computed(function() {
|
||||||
if (!self.filesize())
|
if (!self.filesize())
|
||||||
|
|
@ -123,6 +126,7 @@ function PrinterStateViewModel(loginStateViewModel) {
|
||||||
}
|
}
|
||||||
|
|
||||||
self.estimatedPrintTime(data.estimatedPrintTime);
|
self.estimatedPrintTime(data.estimatedPrintTime);
|
||||||
|
self.lastPrintTime(data.lastPrintTime);
|
||||||
|
|
||||||
var result = [];
|
var result = [];
|
||||||
if (data.filament && typeof(data.filament) == "object" && _.keys(data.filament).length > 0) {
|
if (data.filament && typeof(data.filament) == "object" && _.keys(data.filament).length > 0) {
|
||||||
|
|
|
||||||
|
|
@ -125,12 +125,11 @@
|
||||||
<div class="accordion-inner">
|
<div class="accordion-inner">
|
||||||
Machine State: <strong data-bind="text: stateString"></strong><br>
|
Machine State: <strong data-bind="text: stateString"></strong><br>
|
||||||
File: <strong data-bind="text: filename"></strong> <strong data-bind="visible: sd">(SD)</strong><br>
|
File: <strong data-bind="text: filename"></strong> <strong data-bind="visible: sd">(SD)</strong><br>
|
||||||
<!-- ko foreach: filament -->
|
|
||||||
<span data-bind="text: 'Filament (' + name() + '): '"></span><strong data-bind="text: formatFilament(data())"></strong><br>
|
|
||||||
<!-- /ko -->
|
|
||||||
Estimated Print Time: <strong data-bind="text: estimatedPrintTimeString"></strong><br>
|
|
||||||
Timelapse: <strong data-bind="text: timelapseString"></strong><br>
|
Timelapse: <strong data-bind="text: timelapseString"></strong><br>
|
||||||
Height: <strong data-bind="text: heightString"></strong><br>
|
<!-- ko foreach: filament -->
|
||||||
|
<span data-bind="text: 'Filament (' + name() + '): '"></span><strong data-bind="text: formatFilament(data())"></strong><br>
|
||||||
|
<!-- /ko -->
|
||||||
|
Approx. Total Print Time: <strong data-bind="text: estimatedPrintTimeString"></strong><br>
|
||||||
Print Time: <strong data-bind="text: printTimeString"></strong><br>
|
Print Time: <strong data-bind="text: printTimeString"></strong><br>
|
||||||
Print Time Left: <strong data-bind="text: printTimeLeftString"></strong><br>
|
Print Time Left: <strong data-bind="text: printTimeLeftString"></strong><br>
|
||||||
Printed: <strong data-bind="text: byteString"></strong><br>
|
Printed: <strong data-bind="text: byteString"></strong><br>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue