add power to tempHistory
Signed-off-by: Stefan Dej <meteyou@gmail.com>
This commit is contained in:
parent
8a8587786a
commit
9888d796bd
@ -41,6 +41,13 @@ export default {
|
||||
maximum: 300,
|
||||
interval: 50,
|
||||
},
|
||||
axisY2: {
|
||||
gridThickness: 0,
|
||||
gridColor: '#ffffff30',
|
||||
minimum: 0,
|
||||
maximum: 1,
|
||||
interval: 0.25,
|
||||
},
|
||||
data: [ ]
|
||||
},
|
||||
chart : null
|
||||
@ -53,6 +60,8 @@ export default {
|
||||
|
||||
return datasets.sort((a,b) => {
|
||||
if ('name' in a && 'name' in b) {
|
||||
if (a.name.endsWith("_target") > b.name.endsWith("_power")) return -1
|
||||
if (a.name.endsWith("_power") < b.name.endsWith("_target")) return 1
|
||||
if (a.name.endsWith("_target") > b.name.endsWith("_target")) return -1
|
||||
if (a.name.endsWith("_target") < b.name.endsWith("_target")) return 1
|
||||
}
|
||||
|
@ -53,6 +53,9 @@
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox class="mt-0" v-model="autoscaleTempchart" hide-details label="Autoscale Chart"></v-checkbox>
|
||||
</v-list-item>
|
||||
<v-list-item class="minHeight36">
|
||||
<v-checkbox class="mt-0" v-model="boolPowerDatasets" hide-details label="Show PWM-Datasets"></v-checkbox>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-menu>
|
||||
</v-toolbar>
|
||||
@ -185,6 +188,14 @@
|
||||
return this.$store.dispatch("gui/setSettings", { tempchart: { autoscale: newVal } })
|
||||
}
|
||||
},
|
||||
boolPowerDatasets: {
|
||||
get() {
|
||||
return this.$store.state.gui.tempchart.boolPowerDatasets
|
||||
},
|
||||
set: function(newVal) {
|
||||
return this.$store.dispatch("gui/setSettings", { tempchart: { boolPowerDatasets: newVal } })
|
||||
}
|
||||
},
|
||||
},
|
||||
created() {
|
||||
|
||||
|
@ -11,6 +11,12 @@ export default {
|
||||
|
||||
setSettings({ commit, dispatch }, payload) {
|
||||
commit('setSettings', payload)
|
||||
|
||||
if ('tempchart' in payload && 'boolPowerDatasets' in payload.tempchart) {
|
||||
if (payload.tempchart.boolPowerDatasets) commit('printer/tempHistory/showPowerDatasets', {}, { root: true })
|
||||
else commit('printer/tempHistory/hidePowerDatasets', {}, { root: true })
|
||||
}
|
||||
|
||||
dispatch('upload')
|
||||
},
|
||||
|
||||
|
@ -24,6 +24,7 @@ export function getDefaultState() {
|
||||
},
|
||||
tempchart: {
|
||||
autoscale: false,
|
||||
boolPowerDatasets: false,
|
||||
},
|
||||
console: {
|
||||
hideWaitTemperatures: true,
|
||||
|
@ -59,6 +59,9 @@ export default {
|
||||
|
||||
if (value.target) this.commit('printer/tempHistory/addValue', { name: name+'_target', value: value.target, time: now })
|
||||
else if (key in state && 'target' in state[key]) this.commit('printer/tempHistory/addValue', { name: name+'_target', value: state[key].target, time: now })
|
||||
|
||||
if (value.power) this.commit('printer/tempHistory/addValue', { name: name+'_power', value: value.power, time: now })
|
||||
else if (key in state && 'power' in state[key]) this.commit('printer/tempHistory/addValue', { name: name+'_power', value: state[key].power, time: now })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,122 @@
|
||||
import {colorArray, colorChamber, colorHeaterBed} from "@/store/variables";
|
||||
|
||||
export default {
|
||||
reset({ commit }) {
|
||||
commit('reset')
|
||||
},
|
||||
|
||||
getHistory({ commit }, payload) {
|
||||
commit('setHistory', payload);
|
||||
getHistory({ commit, state }, payload) {
|
||||
window.console.log("getHistory")
|
||||
window.console.log(payload)
|
||||
|
||||
if (payload !== undefined) {
|
||||
Object.entries(payload).sort().forEach(([name, datasets]) => {
|
||||
let keySplit = name.split(" ")
|
||||
if (keySplit.length > 1) name = keySplit[1]
|
||||
const type = keySplit[0]
|
||||
|
||||
if (datasets.temperatures) {
|
||||
let now = new Date()
|
||||
window.console.log(datasets)
|
||||
|
||||
let datasetTemperature = state.datasets.find(element => element.name === name)
|
||||
if (datasetTemperature === undefined) {
|
||||
let color = ''
|
||||
|
||||
switch (name) {
|
||||
case 'heater_bed':
|
||||
color = colorHeaterBed;
|
||||
break;
|
||||
case 'chamber':
|
||||
color = colorChamber;
|
||||
break;
|
||||
default:
|
||||
color = colorArray[state.datasets.filter(element =>
|
||||
!element.name.endsWith("_target") && element.name !== "heater_bed" && element.name !== "chamber"
|
||||
).length];
|
||||
break;
|
||||
}
|
||||
|
||||
datasetTemperature = {
|
||||
type: "spline",
|
||||
name: name,
|
||||
legendText: name,
|
||||
xValueType: "dateTime",
|
||||
dataPoints:[],
|
||||
showInLegend: true,
|
||||
markerType: 'none',
|
||||
toolTipContent: "{name}: {y}°C",
|
||||
color: color,
|
||||
}
|
||||
|
||||
commit('addDataset', datasetTemperature)
|
||||
}
|
||||
|
||||
commit('addValue', {
|
||||
name: name,
|
||||
value: datasets.temperatures,
|
||||
type: type,
|
||||
time: now
|
||||
})
|
||||
|
||||
if ('targets' in datasets && (type.startsWith("extruder") || type === "heater_bed" || type === "temperature_fan")) {
|
||||
let datasetTarget = state.datasets.find(element => element.name === name+"_target")
|
||||
if (datasetTarget === undefined) {
|
||||
datasetTarget = {
|
||||
type: "stepArea",
|
||||
name: name+"_target",
|
||||
legendText: name+"_target",
|
||||
xValueType: "dateTime",
|
||||
dataPoints:[],
|
||||
showInLegend: false,
|
||||
markerType: 'none',
|
||||
toolTipContent: "{name}: {y}°C",
|
||||
color: datasetTemperature.color,
|
||||
fillOpacity: .1,
|
||||
lineThickness: 0,
|
||||
}
|
||||
|
||||
commit('addDataset', datasetTarget)
|
||||
}
|
||||
|
||||
commit('addValue', {
|
||||
name: name+"_target",
|
||||
value: datasets.targets,
|
||||
type: type,
|
||||
time: now
|
||||
})
|
||||
}
|
||||
|
||||
if ('powers' in datasets && (type.startsWith("extruder") || type === "heater_bed")) {
|
||||
let datasetPower = state.datasets.find(element => element.name === name+"_power")
|
||||
if (datasetPower === undefined) {
|
||||
datasetPower = {
|
||||
type: "spline",
|
||||
name: name+"_power",
|
||||
legendText: name+"_power",
|
||||
xValueType: "dateTime",
|
||||
dataPoints:[],
|
||||
showInLegend: false,
|
||||
markerType: 'none',
|
||||
lineDashType: "dot",
|
||||
lineThickness: 1,
|
||||
visible: 0,
|
||||
toolTipContent: "{name}: {y}%",
|
||||
color: datasetTemperature.color,
|
||||
}
|
||||
|
||||
commit('addDataset', datasetPower)
|
||||
}
|
||||
|
||||
commit('addValue', {
|
||||
name: name+"_power",
|
||||
value: datasets.powers,
|
||||
type: type,
|
||||
time: now
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
@ -1,42 +1,15 @@
|
||||
import { getDefaultState } from './index'
|
||||
import { colorArray, colorChamber, colorHeaterBed } from "@/store/variables"
|
||||
|
||||
export default {
|
||||
reset(state) {
|
||||
Object.assign(state, getDefaultState())
|
||||
},
|
||||
|
||||
setHistory(state, payload) {
|
||||
let now = new Date();
|
||||
|
||||
if (payload !== undefined) {
|
||||
Object.entries(payload).sort().forEach(([key, datasets]) => {
|
||||
let keySplit = key.split(" ");
|
||||
addDataset(state, payload) {
|
||||
window.console.log("addDataset")
|
||||
window.console.log(payload.name)
|
||||
|
||||
if (keySplit.length > 1) key = keySplit[1];
|
||||
|
||||
if (datasets.temperatures) {
|
||||
let max = datasets.temperatures.length;
|
||||
for (let i = 0; i < max; i++) {
|
||||
let time = new Date(now.getTime() - 1000 * (max - i));
|
||||
|
||||
this.commit('printer/tempHistory/addValue', {
|
||||
name: key,
|
||||
value: datasets.temperatures[i],
|
||||
type: keySplit[0],
|
||||
time: time
|
||||
});
|
||||
|
||||
this.commit('printer/tempHistory/addValue', {
|
||||
name: key+'_target',
|
||||
value: datasets.targets[i],
|
||||
type: keySplit[0],
|
||||
time: time
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
state.datasets.push(payload)
|
||||
},
|
||||
|
||||
addValue(state, payload) {
|
||||
@ -46,61 +19,14 @@ export default {
|
||||
//let deletedIndex
|
||||
|
||||
let mainDataset = state.datasets.find(element => element.name === payload.name)
|
||||
if (!mainDataset) {
|
||||
//TODO load hidden sensors from gui store
|
||||
//let hidden = this.rootState.gui.dashboard.hiddenTempChart.indexOf(payload.name.toUpperCase()) >= 0;
|
||||
//let hidden = false
|
||||
|
||||
if (payload.name.includes('_target')) {
|
||||
let masterDataset = state.datasets.find(element => element.name === payload.name.replace('_target', ''))
|
||||
|
||||
if (masterDataset) {
|
||||
mainDataset = {
|
||||
type: "stepArea",
|
||||
name: payload.name,
|
||||
legendText: payload.name,
|
||||
xValueType: "dateTime",
|
||||
dataPoints:[],
|
||||
showInLegend: false,
|
||||
markerType: 'none',
|
||||
fillOpacity: .1,
|
||||
lineThickness: 0,
|
||||
toolTipContent: "{name}: {y}°C",
|
||||
color: masterDataset.color || '#666'
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let color = '';
|
||||
|
||||
switch (payload.name) {
|
||||
case 'heater_bed': color = colorHeaterBed; break;
|
||||
case 'chamber': color = colorChamber; break;
|
||||
default: color = colorArray[state.datasets.filter(element => !element.name.endsWith("_target") && element.name !== "heater_bed" && element.name !== "chamber").length]; break;
|
||||
}
|
||||
|
||||
mainDataset = {
|
||||
type: "spline",
|
||||
name: payload.name,
|
||||
legendText: payload.name,
|
||||
xValueType: "dateTime",
|
||||
dataPoints:[],
|
||||
showInLegend: true,
|
||||
markerType: 'none',
|
||||
toolTipContent: "{name}: {y}°C",
|
||||
color: color,
|
||||
}
|
||||
}
|
||||
|
||||
mainDataset = state.datasets.push(mainDataset);
|
||||
}
|
||||
|
||||
// update current temp in temperature chart
|
||||
if (mainDataset && payload.value !== undefined) {
|
||||
if (mainDataset !== undefined && payload.value !== undefined) {
|
||||
if (Array.isArray(payload.value)) {
|
||||
for (let i = 0; i < payload.value.length; i++) {
|
||||
mainDataset.data.push({
|
||||
x: payload.time - 1000 * i,
|
||||
y: Math.round(payload.value[i]*100)/100
|
||||
for (let i = payload.value.length; i > 0; i--) {
|
||||
mainDataset.dataPoints.push({
|
||||
x: payload.time - (i*1000),
|
||||
y: Math.round(payload.value[payload.value.length - i]*100)/100
|
||||
})
|
||||
}
|
||||
} else {
|
||||
@ -131,4 +57,20 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
hidePowerDatasets(state) {
|
||||
state.datasets.forEach(element => {
|
||||
if (element.name.endsWith("_power")) {
|
||||
element.visible = false
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
showPowerDatasets(state) {
|
||||
state.datasets.forEach(element => {
|
||||
if (element.name.endsWith("_power")) {
|
||||
element.visible = true
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user