Merge branch 'develop' of https://bitbucket.org/ncarminati/cms_thermo_active into develop
This commit is contained in:
@@ -31,6 +31,9 @@
|
||||
font-size: 32px;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
&.disabled{
|
||||
cursor:not-allowed;
|
||||
}
|
||||
|
||||
&.temp{
|
||||
grid-template-columns: 50% 50%;
|
||||
|
||||
@@ -4736,6 +4736,9 @@ article .box .body {
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
}
|
||||
.warmers svg .resistance.disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.warmers svg .resistance.temp {
|
||||
grid-template-columns: 50% 50%;
|
||||
grid-template-rows: 50% 50%;
|
||||
|
||||
+19
-8
@@ -11,6 +11,9 @@ export default class Resistance extends Vue {
|
||||
|
||||
@Prop()
|
||||
channel: Warmers.IChannel;
|
||||
|
||||
@Prop({ default: true })
|
||||
editable: boolean;
|
||||
|
||||
@Prop({ default: false })
|
||||
selected: boolean;
|
||||
@@ -36,25 +39,33 @@ export default class Resistance extends Vue {
|
||||
@Prop({ default: function () { return [23, 86, 173] } })
|
||||
selectedColorTo: number[];
|
||||
|
||||
click(){
|
||||
if(this.editable)
|
||||
this.$emit('click');
|
||||
}
|
||||
|
||||
get currentStandardTempColor() {
|
||||
//Not linear, but quadratic
|
||||
if(!this.channel.tCamActive || this.channel.tCamTempSet==0)
|
||||
if(!this.channel.tCamActive || this.channel.setpointHMI==0)
|
||||
return "179, 179, 179";
|
||||
|
||||
var delta = this.channel.tCamTempSet - this.channel.tCamTempAct;
|
||||
if(delta=> - 5 && delta<=5)
|
||||
console.log(delta);
|
||||
if(delta >= - 5 && delta <= 5)
|
||||
{
|
||||
console.log("delta");
|
||||
return "144,191,61";
|
||||
}
|
||||
else if(delta>5){
|
||||
return [this.colorFrom[0] - (this.colorFrom[0] - this.colorTo[0]) * delta / 100,
|
||||
this.colorFrom[1] - (this.colorFrom[1] - this.colorTo[1]) * delta / 100,
|
||||
this.colorFrom[2] - (this.colorFrom[2] - this.colorTo[2]) * delta / 100];
|
||||
return [this.colorFrom[0] - (this.colorFrom[0] - this.colorTo[0]) * delta / 300,
|
||||
this.colorFrom[1] - (this.colorFrom[1] - this.colorTo[1]) * delta / 300,
|
||||
this.colorFrom[2] - (this.colorFrom[2] - this.colorTo[2]) * delta / 300];
|
||||
}
|
||||
else {
|
||||
return [this.ColorColdFrom[0] - (this.ColorColdFrom[0] - this.colorColdTo[0]) * delta / 100,
|
||||
this.ColorColdFrom[1] - (this.ColorColdFrom[1] - this.colorColdTo[1]) * delta / 100,
|
||||
this.ColorColdFrom[2] - (this.ColorColdFrom[2] - this.colorColdTo[2]) * delta / 100];
|
||||
delta = delta* (-1);
|
||||
return [this.ColorColdFrom[0] - (this.ColorColdFrom[0] - this.colorColdTo[0]) * delta / 300,
|
||||
this.ColorColdFrom[1] - (this.ColorColdFrom[1] - this.colorColdTo[1]) * delta / 300,
|
||||
this.ColorColdFrom[2] - (this.ColorColdFrom[2] - this.colorColdTo[2]) * delta / 300];
|
||||
}
|
||||
|
||||
|
||||
|
||||
+6
-5
@@ -3,19 +3,20 @@
|
||||
class="resistance"
|
||||
:key="selected"
|
||||
v-if="!temperature"
|
||||
@click="$emit('click')"
|
||||
v-on:touchend="$emit('click')"
|
||||
@click="click"
|
||||
v-on:touchend="click"
|
||||
:style="{backgroundColor:`rgb(${currentColor})`}"
|
||||
>{{channel.setpointHMI}} %</div>
|
||||
<div
|
||||
class="resistance temp"
|
||||
:class="{'disabled':!editable}"
|
||||
:key="selected"
|
||||
@click="$emit('click')"
|
||||
v-on:touchend="$emit('click')"
|
||||
@click="click"
|
||||
v-on:touchend="click"
|
||||
v-else
|
||||
:style="{backgroundColor:`rgb(${currentColorTemp})`}"
|
||||
>
|
||||
<span v-if="channel.tCamTempSet == 0 || !channel.tCamActive">--</span>
|
||||
<span v-if="channel.setpointHMI == 0 || !channel.tCamActive">--</span>
|
||||
<span v-else>{{channel.tCamTempSet}} °C</span>
|
||||
<span>{{channel.tCamTempAct}} °C</span>
|
||||
<span>{{channel.setpointHMI}} %</span>
|
||||
|
||||
+15
-2
@@ -34,7 +34,7 @@ export default class Thermocamera extends Vue {
|
||||
setpointHMI: this.thermocameraOnOff,
|
||||
range: { min: 0, max: 999999 },
|
||||
status: {
|
||||
enabled: true,
|
||||
enabled: this.isOnOffRunEnabled,
|
||||
hasError: false,
|
||||
visible: true
|
||||
}
|
||||
@@ -67,6 +67,19 @@ export default class Thermocamera extends Vue {
|
||||
return store.state.warmers.channels.filter(i => this.selectedChannelIds.indexOf(i.idChannel) >= 0);
|
||||
}
|
||||
|
||||
|
||||
get isEnableDisableEnabled(): Boolean{
|
||||
return !store.state.warmers.tCamStatus.thermoCamOnOff;
|
||||
}
|
||||
|
||||
get isOnOffRunEnabled(): Boolean{
|
||||
for(const ch of store.state.warmers.channels){
|
||||
if(ch.tCamTempSet > 0)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
get thermocameraMode(): number {
|
||||
if(store.state.warmers.tCamStatus.thermoCamMode)
|
||||
return 1
|
||||
@@ -130,7 +143,7 @@ export default class Thermocamera extends Vue {
|
||||
}
|
||||
|
||||
clearAllTemperature(){
|
||||
for (const c of this.selectedChannels) c.tCamTempSet = 0;
|
||||
(this.$refs.warmers as any).clearTemp();
|
||||
this.$emit("tempsChanged");
|
||||
}
|
||||
|
||||
|
||||
+24
-19
@@ -12,17 +12,14 @@
|
||||
:status="modeEnabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<template>
|
||||
<div class="input-area">
|
||||
<label>{{'thermocamera_on_off'|localize('Thermoprophet Run')}}</label>
|
||||
<toggle-button
|
||||
v-model="OnOffEnabled.setpointHMI"
|
||||
:status="OnOffEnabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
<div class="divider"></div>
|
||||
</template>
|
||||
<div class="input-area left grid">
|
||||
<button
|
||||
class="btn"
|
||||
@click="showcamera"
|
||||
>{{'warmers_showcamera' | localize('Show Camera Image')}}</button>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
<div class="input-area">
|
||||
<label>{{'warmers_selection' | localize('Selezione')}}</label>
|
||||
</div>
|
||||
@@ -49,13 +46,7 @@
|
||||
<label>{{'warmers_select_none' | localize('Nessuno')}}</label>
|
||||
</button>
|
||||
</div>
|
||||
<div class="input-area left grid">
|
||||
<button
|
||||
class="btn"
|
||||
@click="showcamera"
|
||||
>{{'warmers_showcamera' | localize('Show Camera Image')}}</button>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
<div class="divider"></div>
|
||||
<div class="input-area">
|
||||
<label>{{'warmers_enable' | localize('Enable/Disable Management')}}</label>
|
||||
</div>
|
||||
@@ -63,10 +54,12 @@
|
||||
<button
|
||||
class="btn"
|
||||
@click="enableHeater"
|
||||
:disabled="!isEnableDisableEnabled"
|
||||
>{{'warmers_enabletemp' | localize('Enable selected')}}</button>
|
||||
<button
|
||||
class="btn"
|
||||
@click="disableHeater"
|
||||
:disabled="!isEnableDisableEnabled"
|
||||
>{{'warmers_disabletemp' | localize('Disable selected')}}</button>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
@@ -87,12 +80,24 @@
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="setAllTemperature"
|
||||
:disabled="!isEnableDisableEnabled"
|
||||
>{{'warmers_setTemperature' | localize('Set all temperature')}}</button>
|
||||
<button
|
||||
class="btn btn-success"
|
||||
@click="clearAllTemperature"
|
||||
:disabled="!isEnableDisableEnabled"
|
||||
>{{'warmers_setTemperature' | localize('Clear all temperature')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
<template>
|
||||
<div class="input-area">
|
||||
<label>{{'thermocamera_on_off'|localize('Thermoprophet Run')}}</label>
|
||||
<toggle-button
|
||||
v-model="OnOffEnabled.setpointHMI"
|
||||
:status="OnOffEnabled.status"
|
||||
></toggle-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
|
||||
+23
-14
@@ -48,6 +48,7 @@ export default class Warmers extends Vue {
|
||||
|
||||
selectedChannels: number[] = []
|
||||
|
||||
|
||||
selectionMethod: SelectionMethod = SelectionMethod.none;
|
||||
|
||||
get parameters() {
|
||||
@@ -100,7 +101,11 @@ export default class Warmers extends Vue {
|
||||
}
|
||||
|
||||
selectAll() {
|
||||
this.selectedChannels.splice(0, this.selectedChannels.length, ...this.channels.map(c => c.idChannel));
|
||||
this.selectedChannels = [];
|
||||
for (var ch of this.channels) {
|
||||
if(!this.isdisabled(ch.idChannel))
|
||||
this.selectedChannels.push(ch.idChannel);
|
||||
}
|
||||
this.$emit('select', this.selectedChannels)
|
||||
}
|
||||
|
||||
@@ -150,6 +155,7 @@ export default class Warmers extends Vue {
|
||||
}
|
||||
|
||||
async mounted() {
|
||||
|
||||
let $this = this;
|
||||
if (this.usePanZoom)
|
||||
setTimeout(() => {
|
||||
@@ -157,6 +163,7 @@ export default class Warmers extends Vue {
|
||||
zoomEnabled: true,
|
||||
controlIconsEnabled: false,
|
||||
center: true,
|
||||
dblClickZoomEnabled: false
|
||||
});
|
||||
}, 500);
|
||||
}
|
||||
@@ -199,7 +206,8 @@ export default class Warmers extends Vue {
|
||||
this.resistancePosition(row, cell, point1, point2, point3, point4);
|
||||
|
||||
if (lazo.isPointInFill(point1) || lazo.isPointInFill(point2) || lazo.isPointInFill(point3) || lazo.isPointInFill(point4)) {
|
||||
captured.add(cell.idChannel);
|
||||
if(!this.isdisabled(cell.idChannel))
|
||||
captured.add(cell.idChannel);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -224,6 +232,19 @@ export default class Warmers extends Vue {
|
||||
|
||||
}
|
||||
|
||||
isdisabled(id){
|
||||
if(!this.temperature)
|
||||
return false;
|
||||
let channel = this.channels.find(c => c.idChannel == id);
|
||||
return channel.setpointHMI==0;
|
||||
}
|
||||
|
||||
clearTemp() {
|
||||
for (const chan of this.channels) {
|
||||
chan.tCamTempSet = 0;
|
||||
}
|
||||
}
|
||||
|
||||
automateTemp() {
|
||||
|
||||
var min = parseFloat(this.parameters.warmerAutocompStartValue.toString());
|
||||
@@ -236,9 +257,6 @@ export default class Warmers extends Vue {
|
||||
|
||||
let result = new Map<number, Warmers.IResistance[]>();
|
||||
|
||||
for (const c of this.channels) c.setpointHMI = 0;
|
||||
|
||||
|
||||
for (const row of this.rows) {
|
||||
for (const cell of this.resistancesPerRow(row)) {
|
||||
this.resistancePosition(row, cell, point1, point2, point3, point4);
|
||||
@@ -251,12 +269,6 @@ export default class Warmers extends Vue {
|
||||
}
|
||||
}
|
||||
|
||||
let mink = Math.min(...Array.from(result.keys()));
|
||||
let maxk = Math.max(...Array.from(result.keys()));
|
||||
|
||||
let dk = maxk - mink;
|
||||
let dv = max - min;
|
||||
|
||||
for (const i of Array.from(result.keys())) {
|
||||
for (const res of result.get(i)) {
|
||||
let channel = this.channels.find(c => c.idChannel == res.idChannel);
|
||||
@@ -265,9 +277,6 @@ export default class Warmers extends Vue {
|
||||
}
|
||||
}
|
||||
|
||||
// console.log('automate', result);
|
||||
|
||||
|
||||
}
|
||||
|
||||
automate() {
|
||||
|
||||
+1
@@ -27,6 +27,7 @@
|
||||
@click="select(cell)"
|
||||
:selected="isSelected(cell.idChannel)"
|
||||
:temperature="temperature"
|
||||
:editable="!isdisabled(cell.idChannel)"
|
||||
/>
|
||||
</foreignObject>
|
||||
</g>
|
||||
|
||||
+8
-2
@@ -167,15 +167,21 @@ export default class ShowRiscaldamentoSuperioreInfo extends Vue {
|
||||
// recipeActions.setCurrent(store, this.recipe);
|
||||
|
||||
this.isLoading = true;
|
||||
if(this.warmersEdited)
|
||||
if(this.warmersEdited){
|
||||
for (const ch of store.state.warmers.channels) {
|
||||
if(ch.setpointHMI==0)
|
||||
ch.tCamActive = false;
|
||||
}
|
||||
await warmersService.Update(store.state.warmers.channels.reduce((p, c) => { p[c.idChannel] = c.setpointHMI; return p; }, {}));
|
||||
}
|
||||
if(this.tempsEdited)
|
||||
await warmersService.UpdateTemp(store.state.warmers.channels.reduce((p, c) => { p[c.idChannel] = c.tCamTempSet; return p; }, {}));
|
||||
if(this.tempEnabledEdited){
|
||||
if(this.warmersEdited || this.tempEnabledEdited){
|
||||
await warmersService.UpdateEnable(store.state.warmers.channels.reduce((p, c) => { p[c.idChannel] = c.tCamActive; return p; }, {}));
|
||||
await warmersService.setTCamMode(store.state.warmers.tCamStatus.thermoCamMode);
|
||||
await warmersService.setTCamOn(store.state.warmers.tCamStatus.thermoCamOnOff);
|
||||
}
|
||||
|
||||
if(this.warmersEdited || this.tempsEdited || this.tempEnabledEdited)
|
||||
await warmersService.Confirm();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user