Smart Screen: Shut down when shutting down the vehicle

This commit is contained in:
Sidi Liang 2020-08-12 20:08:05 +08:00
parent 5268a1e0c0
commit 8cee705ce1
No known key found for this signature in database
GPG Key ID: 79F0A6B20B72F42F
2 changed files with 36 additions and 11 deletions

View File

@ -11,8 +11,15 @@ var SmartInstruments = {
}),
};
m.group = m.instrumentCanvas.createGroup();#//Main group
m.signGroup = m.instrumentCanvas.createGroup();#//sign group
m.welcomeGroup = m.instrumentCanvas.createGroup();
m.instrumentCanvas.addPlacement({"node": placement});
#Sign svg
#canvas.parsesvg(
# m.signGroup,
# "Aircraft/followme_e-tron/Models/Interior/Instruments/Smart/dashboard.svg",
#);
#m.signGroup.hide();
#Background
m.backgroundPath = "Aircraft/followme_e-tron/Models/Interior/Instruments/Smart/dashboard0.png";
# create an image child for the texture
@ -169,7 +176,7 @@ var SmartInstruments = {
me.updateTimer.start();
},
shutDown:func(){
if(me.updateTimer) me.updateTimer.stop();
if(me.updateTimer != nil) me.updateTimer.stop();
me.group.hide();
me.welcomeGroup.hide();
}
@ -178,10 +185,7 @@ var SmartInstruments = {
var smartInstruments = SmartInstruments.new("instrumentScreen");
#canvas.parsesvg(
# group,
# "Aircraft/followme_e-tron/Models/Interior/Instruments/Smart/dashboard.svg",
#);
#props.getNode("/dev/smart/size", 1).setValue(30);
#props.getNode("/dev/smart/x", 1).setValue(520);
@ -196,5 +200,5 @@ var runtimeTextAdjust = func(text){
}
var window = canvas.Window.new([756,368],"dialog");
window.setCanvas(smartInstruments.instrumentCanvas);
#var window = canvas.Window.new([756,368],"dialog");
#window.setCanvas(smartInstruments.instrumentCanvas);

View File

@ -57,6 +57,7 @@ var Series = {
}
}
}
#//Calculated by solving the equation UI = I^2*R + Power output
var a = me.totalResistance();
var b = me.voltage;
var c = math.sqrt(me.voltage * me.voltage - 4 * me.totalResistance() * me.totalActivePower());
@ -67,13 +68,20 @@ var Series = {
calculateSeriesVoltage: func(){
var tR = me.totalResistance();
cElectromotiveForce = me.voltage - me.current() * tR; #Total counterElectromotiveForce, calculated from UI = I^R + Power output
me.voltage = me.voltage - cElectromotiveForce; #//Voltage with counterElectromotiveForce in consideration
totalTmp = 0;
foreach(elem; me.units){
totalTmp += elem.current * elem.current * elem.resistance + elem.activePower + elem.activePower_kW * 1000;
}
foreach(elem; me.units){
if(elem.isSwitch()){
if(!elem.isConnected()){
me.voltage = 0;
}
}
elem.voltage = (elem.resistance/tR) * me.voltage;
var factor = (elem.current * elem.current * elem.resistance + elem.activePower + elem.activePower_kW * 1000)/totalTmp;
elem.voltage = me.voltage * factor;
}
},
@ -122,11 +130,22 @@ var Circuit = {
current: 0, #//Ampere
voltage: func(){
return me.parallelConnection[0].units[0].electromotiveForce;
var v = 0;
#if(me.calculateTotalParallelCurrent()){
v = me.parallelConnection[0].units[0].electromotiveForce - me.calculateTotalParallelCurrent()*me.parallelConnection[0].units[0].resistance;
#}
#foreach(elem; me.parallelConnection){
# if(elem.voltage != v){
# v = elem.voltage;
# break;
# }
#}
return v
}, #//Volt
calculateParallelVoltage: func(){
var setVoltage = me.voltage();
var totalCounterElecMotiveForce = 0;
foreach(elem; me.parallelConnection){
if(elem.isSwitch()){
if(!elem.isConnected()){
@ -191,7 +210,7 @@ var Circuit = {
foreach(elem; me.parallelConnection){
foreach(unit; elem.units){
if(unit.isCurrentSource()) unit.currentSourceUpdate(me.calculateTotalPower(), me.updateInterval); #//Pass in negetive power for charging
if(unit.isCurrentSource()) unit.currentSourceUpdate(me.calculateTotalPower(), me.updateInterval); #//Update the current source. Pass in negetive power in case of charging
}
}
if(me.debugMode == 2) print("Power Calculated");
@ -241,7 +260,9 @@ var Appliance = {
power: func(){
return me.activePower + me.activePower_kW*1000 + me.heatingPower();
},
counterElectromotiveForce: func(){
return (me.activePower + me.activePower_kW*1000)/me.current; #//Counter Electromotive Force calculated by output power divided by current
},
isResistor: 0,