Use UTC timestamps only for the temperature graph. Should get rid of weird timestamps in case server and client are in a different timezone.
Also fixed the "display minutes since the epoch when not connected to a freshly started server" issue ;)master
parent
ca3c973bfc
commit
01ffd88a37
|
@ -258,18 +258,18 @@ class Printer():
|
||||||
self._stateMonitor.setProgress({"progress": self._progress, "printTime": formattedPrintTime, "printTimeLeft": formattedPrintTimeLeft})
|
self._stateMonitor.setProgress({"progress": self._progress, "printTime": formattedPrintTime, "printTimeLeft": formattedPrintTimeLeft})
|
||||||
|
|
||||||
def _addTemperatureData(self, temp, bedTemp, targetTemp, bedTargetTemp):
|
def _addTemperatureData(self, temp, bedTemp, targetTemp, bedTargetTemp):
|
||||||
currentTime = int(time.time() * 1000)
|
currentTimeUtc = int((time.time() + time.timezone) * 1000)
|
||||||
|
|
||||||
self._temps["actual"].append((currentTime, temp))
|
self._temps["actual"].append((currentTimeUtc, temp))
|
||||||
self._temps["actual"] = self._temps["actual"][-300:]
|
self._temps["actual"] = self._temps["actual"][-300:]
|
||||||
|
|
||||||
self._temps["target"].append((currentTime, targetTemp))
|
self._temps["target"].append((currentTimeUtc, targetTemp))
|
||||||
self._temps["target"] = self._temps["target"][-300:]
|
self._temps["target"] = self._temps["target"][-300:]
|
||||||
|
|
||||||
self._temps["actualBed"].append((currentTime, bedTemp))
|
self._temps["actualBed"].append((currentTimeUtc, bedTemp))
|
||||||
self._temps["actualBed"] = self._temps["actualBed"][-300:]
|
self._temps["actualBed"] = self._temps["actualBed"][-300:]
|
||||||
|
|
||||||
self._temps["targetBed"].append((currentTime, bedTargetTemp))
|
self._temps["targetBed"].append((currentTimeUtc, bedTargetTemp))
|
||||||
self._temps["targetBed"] = self._temps["targetBed"][-300:]
|
self._temps["targetBed"] = self._temps["targetBed"][-300:]
|
||||||
|
|
||||||
self._temp = temp
|
self._temp = temp
|
||||||
|
@ -277,7 +277,7 @@ class Printer():
|
||||||
self._targetTemp = targetTemp
|
self._targetTemp = targetTemp
|
||||||
self._targetBedTemp = bedTargetTemp
|
self._targetBedTemp = bedTargetTemp
|
||||||
|
|
||||||
self._stateMonitor.addTemperature({"currentTime": currentTime, "temp": self._temp, "bedTemp": self._bedTemp, "targetTemp": self._targetTemp, "targetBedTemp": self._targetBedTemp})
|
self._stateMonitor.addTemperature({"currentTime": currentTimeUtc, "temp": self._temp, "bedTemp": self._bedTemp, "targetTemp": self._targetTemp, "targetBedTemp": self._targetBedTemp})
|
||||||
|
|
||||||
def _setJobData(self, filename, gcode, gcodeList):
|
def _setJobData(self, filename, gcode, gcodeList):
|
||||||
self._filename = filename
|
self._filename = filename
|
||||||
|
|
|
@ -250,9 +250,19 @@ function TemperatureViewModel() {
|
||||||
mode: "time",
|
mode: "time",
|
||||||
minTickSize: [2, "minute"],
|
minTickSize: [2, "minute"],
|
||||||
tickFormatter: function(val, axis) {
|
tickFormatter: function(val, axis) {
|
||||||
|
if (val == undefined || val == 0)
|
||||||
|
return ""; // we don't want to display the minutes since the epoch if not connected yet ;)
|
||||||
|
|
||||||
|
// calculate current time in milliseconds in UTC
|
||||||
var now = new Date();
|
var now = new Date();
|
||||||
var diff = now.getTime() - val;
|
var timezoneOffset = now.getTimezoneOffset() * 60 * 1000;
|
||||||
var diffInMins = Math.round(diff / (60000));
|
var timestampUtc = now.getTime() + timezoneOffset;
|
||||||
|
|
||||||
|
// calculate difference in milliseconds
|
||||||
|
var diff = timestampUtc - val;
|
||||||
|
|
||||||
|
// convert to minutes
|
||||||
|
var diffInMins = Math.round(diff / (60 * 1000));
|
||||||
if (diffInMins == 0)
|
if (diffInMins == 0)
|
||||||
return "just now";
|
return "just now";
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue