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:
Gina Häußge 2014-07-31 18:16:53 +02:00
parent 5e8a04e54d
commit f9d1086062
5 changed files with 29 additions and 16 deletions

View file

@ -164,6 +164,10 @@ Job information
- 0..1
- Integer
- 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``
- 0..1
- Object

View file

@ -95,6 +95,7 @@ class Printer():
"date": None
},
"estimatedPrintTime": None,
"lastPrintTime": None,
"filament": {
"length": None,
"volume": None
@ -389,6 +390,7 @@ class Printer():
self._selectedFile = None
estimatedPrintTime = None
lastPrintTime = None
date = None
filament = None
if filename:
@ -398,11 +400,14 @@ class Printer():
date = int(os.stat(filename).st_ctime)
fileData = self._gcodeManager.getFileData(filename)
if fileData is not None and "gcodeAnalysis" in fileData.keys():
if "estimatedPrintTime" in fileData["gcodeAnalysis"].keys():
estimatedPrintTime = fileData["gcodeAnalysis"]["estimatedPrintTime"]
if "filament" in fileData["gcodeAnalysis"].keys():
filament = fileData["gcodeAnalysis"]["filament"]
if fileData is not None:
if "gcodeAnalysis" in fileData:
if estimatedPrintTime is None and "estimatedPrintTime" in fileData["gcodeAnalysis"]:
estimatedPrintTime = fileData["gcodeAnalysis"]["estimatedPrintTime"]
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({
"file": {
@ -412,6 +417,7 @@ class Printer():
"date": date
},
"estimatedPrintTime": estimatedPrintTime,
"lastPrintTime": lastPrintTime,
"filament": filament,
})

View file

@ -274,12 +274,12 @@ function GcodeFilesViewModel(printerStateViewModel, loginStateViewModel) {
} 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"]) {
output += "<br>Last Printed: " + formatTimeAgo(data["prints"]["last"]["date"]);
output += "Last Printed: " + formatTimeAgo(data["prints"]["last"]["date"]) + "<br>";
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;

View file

@ -24,13 +24,16 @@ function PrinterStateViewModel(loginStateViewModel) {
self.filament = ko.observableArray([]);
self.estimatedPrintTime = ko.observable(undefined);
self.lastPrintTime = ko.observable(undefined);
self.currentHeight = ko.observable(undefined);
self.estimatedPrintTimeString = ko.computed(function() {
if (!self.estimatedPrintTime())
return "-";
return formatDuration(self.estimatedPrintTime());
if (self.lastPrintTime())
return formatDuration(self.lastPrintTime());
if (self.estimatedPrintTime())
return formatDuration(self.estimatedPrintTime());
return "-";
});
self.byteString = ko.computed(function() {
if (!self.filesize())
@ -123,6 +126,7 @@ function PrinterStateViewModel(loginStateViewModel) {
}
self.estimatedPrintTime(data.estimatedPrintTime);
self.lastPrintTime(data.lastPrintTime);
var result = [];
if (data.filament && typeof(data.filament) == "object" && _.keys(data.filament).length > 0) {

View file

@ -125,12 +125,11 @@
<div class="accordion-inner">
Machine State: <strong data-bind="text: stateString"></strong><br>
File: <strong data-bind="text: filename"></strong>&nbsp;<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>
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 Left: <strong data-bind="text: printTimeLeftString"></strong><br>
Printed: <strong data-bind="text: byteString"></strong><br>