followme_e-tron/Nasal/node_setup.nas

159 lines
7.1 KiB
Plaintext

#//Node Management system and setting up these nodes
#//Sidi Liang, 2021
io.include("library.nas");
var VehicleInformationManager = {
new: func(){
var m = {parents:[VehicleInformationManager]};
m._speedKTSNode = props.getNode("/sim/multiplay/generic/float[15]", 1);
m._odometerNMNode = props.getNode("instrumentation/gps/odometer", 1);
m._headingNode = props.getNode("orientation/heading-deg",1);
m._altitudeFTNode = props.getNode("/position/altitude-ft",1);
m._timeHourNode = props.getNode("sim/time/real/hour", 1);
m._timeMinuteNode = props.getNode("sim/time/real/minute", 1);
return m;
},
registerNode: func(){
},
getSpeedKMH: func(){
return me._speedKTSNode.getValue()*1.852;
},
getSpeedKTS: func(){
return me._speedKTSNode.getValue();
},
getOdometerKM: func(){
return me._odometerNMNode.getValue()*1.852;
},
getHeadingDEG: func(){
return me._headingNode.getValue();
},
getAltitudeFT: func(){
return me._altitudeFTNode.getValue();
},
getAltitudeMETERS: func(){
return me._altitudeFTNode.getValue() * FT2M;
},
getTimeHour: func(){
return me._timeHourNode.getValue();
},
getTimeMinute: func(){
return me._timeMinuteNode.getValue();
},
};
var vehicleInformation = VehicleInformationManager.new();
#//Environment
vehicleInformation.environment = props.getNode("/environment", 1);
vehicleInformation.environment.temperature = props.getNode("/environment/temperature-degc", 1);
#//Engine
vehicleInformation.engine = {};
vehicleInformation.engine.throttleNode = props.getNode("/controls/engines/engine/throttle",1);
vehicleInformation.engine.rpmNode = props.getNode("/controls/engines/engine/rpma",1);
vehicleInformation.engine.isStarted = props.getNode("/controls/engines/engine/started",1);
vehicleInformation.engine.direction = props.getNode("/controls/direction", 1);
vehicleInformation.engine.mode = props.getNode("/controls/mode", 1);
#//Controls
vehicleInformation.controls = props.getNode("/controls", 1);
vehicleInformation.controls.lighting = vehicleInformation.controls.getNode("lighting", 1);
vehicleInformation.controls.doors = vehicleInformation.controls.getNode("doors", 1);
#//Doors
vehicleInformation.controls.doors.FL = vehicleInformation.controls.doors.getNode("FL", 1);
vehicleInformation.controls.doors.FR = vehicleInformation.controls.doors.getNode("FR", 1);
vehicleInformation.controls.doors.RL = vehicleInformation.controls.doors.getNode("RL", 1);
vehicleInformation.controls.doors.RR = vehicleInformation.controls.doors.getNode("RR", 1);
vehicleInformation.controls.doors.charging_cap = vehicleInformation.controls.doors.getNode("charging_cap", 1);
#//Shortcut for Lignting
vehicleInformation.lighting = vehicleInformation.controls.lighting;
vehicleInformation.lighting.reverseIndicator = vehicleInformation.lighting.getNode("reverse_indicator", 1);
vehicleInformation.lighting.highBeam = vehicleInformation.lighting.getNode("highBeam", 1);
vehicleInformation.lighting.indicator = vehicleInformation.lighting.getNode("indicator", 1);
vehicleInformation.lighting.indicator.leftSwitch = vehicleInformation.lighting.indicator.getNode("left_switch", 1);
vehicleInformation.lighting.indicator.rightSwitch = vehicleInformation.lighting.indicator.getNode("right_switch", 1);
vehicleInformation.lighting.indicator.left = vehicleInformation.lighting.getNode("indicator-left", 1);
vehicleInformation.lighting.indicator.right = vehicleInformation.lighting.getNode("indicator-right", 1);
vehicleInformation.lighting.warningLight = props.getNode("/warninglight/start");
#//Systems
vehicleInformation.systems = props.getNode("/systems", 1);
vehicleInformation.systems.welcomeMessage = vehicleInformation.systems.getNode("welcome-message", 1);
vehicleInformation.systems.horn = vehicleInformation.systems.getNode("horn", 1);
vehicleInformation.systems.speedometer = vehicleInformation.systems.getNode("speedometer", 1);
vehicleInformation.systems.speedometer.type = vehicleInformation.systems.speedometer.getNode("type", 1);
vehicleInformation.systems.batteryGauge = vehicleInformation.systems.getNode("battery-gauge", 1);
vehicleInformation.systems.batteryGauge.type = vehicleInformation.systems.batteryGauge.getNode("type", 1);
vehicleInformation.systems.electrical = {};
#//Safety
vehicleInformation.systems.safety = vehicleInformation.systems.getNode("safety", 1);
vehicleInformation.systems.safety.aebActivated = vehicleInformation.systems.safety.getNode("aeb_activated", 1);
vehicleInformation.systems.safety.isAebOn = vehicleInformation.systems.safety.getNode("aeb_on", 1);
#//Automatic driving
vehicleInformation.systems.isAutoholdEnabled = vehicleInformation.systems.getNode("auto_hold_enabled", 1);
vehicleInformation.systems.isAutoholdWorking = vehicleInformation.systems.getNode("auto_hold_working", 1);
#//Initialization
#//Lignting
vehicleInformation.lighting.reverseIndicator.setValue(0);
vehicleInformation.lighting.highBeam.setValue(0);
vehicleInformation.lighting.indicator.left.setValue(0);
vehicleInformation.lighting.indicator.right.setValue(0);
vehicleInformation.lighting.indicator.left.setValue(0);
vehicleInformation.lighting.indicator.right.setValue(0);
vehicleInformation.lighting.warningLight.setValue(0);
#//Systems
vehicleInformation.systems.welcomeMessage.setValue(0);
vehicleInformation.systems.speedometer.type.setValue("None");
vehicleInformation.systems.batteryGauge.type.setValue("None");
vehicleInformation.systems.safety.aebActivated.setValue("0");
vehicleInformation.systems.safety.isAebOn.setValue("0");
vehicleInformation.systems.isAutoholdEnabled.setValue("0");
vehicleInformation.systems.isAutoholdWorking.setValue("0");
#//Doors
vehicleInformation.controls.doors.FL.setValue(0);
vehicleInformation.controls.doors.FR.setValue(0);
vehicleInformation.controls.doors.RL.setValue(0);
vehicleInformation.controls.doors.RR.setValue(0);
props.getNode("/",1).setValue("/controls/mode", 1);
props.getNode("/",1).setValue("/controls/direction", 1);
props.getNode("/",1).setValue("/systems/instruments/enable_switches", 0);
props.getNode("/",1).setValue("services/service-truck/enable", 0);
props.getNode("controls/is-recharging", 1).setValue(0);
props.getNode("systems/plate/file", 1).setValue("NONE");
props.getNode("systems/plate/name", 1).setValue("NONE");
props.getNode("/controls/steering_wheel", 1).setValue(0);
props.getNode("controls/interior/luxury/storage_cover_pos", 1).setValue(0);
props.getNode("sim/remote/pilot-callsign", 1).setValue("");
props.getNode("systems/codriver-enable", 1).setValue(0);
props.getNode("systems/screen-enable", 1).setValue(0);
props.getNode("systems/pmodel-enable", 1).setValue(1);
props.getNode("systems/decorations-enable", 1).setValue(0);
props.getNode("systems/interior/type", 1).setValue("404Design (Default)");
#Keep or abandon?
props.getNode("controls/lighting/headlight-als", 1).setValue(0);
props.getNode("systems/display-speed", 1).setValue(0);
props.getNode("/",1).setValue("/systems/instruments/enable_cdu", 0);
props.getNode("/",1).setValue("/instrumentation/cdu/ident/model", "Follow me EV");
props.getNode("/",1).setValue("/instrumentation/cdu/ident/engines", "EV Motor");