const varBraketopcenter = "A:BRAKE PARKING POSITION"; const varGearHandletopcenter = "A:GEAR HANDLE POSITION"; //const varFlapsHandletopcenter = "TRAILING EDGE FLAPS LEFT PERCENT"; const varFlapsHandletopcenter="TRAILING EDGE FLAPS LEFT ANGLE"; const varPlaneHeadingtopcenter = "A:PLANE HEADING DEGREES MAGNETIC"; const varAirspeedtopcenter = "A:AIRSPEED INDICATED"; const varGroundVelocitytopcenter = "A:GROUND VELOCITY"; const varAltitudetopcenter = "A:INDICATED ALTITUDE"; const varAltAboveGroundtopcenter = "A:PLANE ALT ABOVE GROUND"; const varVerticalSpeedtopcenter = "A:VERTICAL SPEED";con const varNacellesRotationtopcenter = "A:SPOILERS HANDLE POSITION"; //const varNG1topcenter="A:ENG N1 RPM:1"; const varRudTrimtopcenter = "A:RUDDER TRIM PCT"; const varElevTrimtopcenter = "A:Elevator TRIM PCT"; const varWindDirectiontopcenter = "A:AMBIENT WIND DIRECTION"; const varWindVelocitytopcenter = "A:AMBIENT WIND VELOCITY"; const varLocalTimetopcenter = "E:LOCAL TIME"; this.store = { active: false, } this.update_interval=.5; //Refresh Interval (Seconds) this.$api.datastore.import(this.store); html_created((el) => { this.cellBraketopcenter = document.getElementById("braketopcenter"); this.cellGearHandletopcenter = document.getElementById("geartopcenter"); this.cellFlapsHandletopcenter = document.getElementById("flapstopcenter"); this.cellPlaneHeadingtopcenter = document.getElementById("hdgtopcenter"); this.cellAirspeedtopcenter = document.getElementById("airspeedtopcenter"); this.cellGroundVelocitytopcenter = document.getElementById("groundspeedtopcenter"); this.cellAltitudetopcenter = document.getElementById("alttopcenter"); this.cellAltAboveGroundtopcenter = document.getElementById("altogtopcenter"); this.cellVerticalSpeedtopcenter = document.getElementById("vstopcenter"); this.cellNacellesRotationtopcenter = document.getElementById("nacellesrotationtopcenter"); this.cellRudTrimtopcenter = document.getElementById("rudtrimtopcenter"); this.cellElevTrimtopcenter = document.getElementById("elevtrimtopcenter"); this.cellWindDirectiontopcenter = document.getElementById("winddirtopcenter"); this.cellWindVelocitytopcenter = document.getElementById("windvelotopcenter"); this.update_elements(); }); this.update_elements = () => { document.getElementById("mytabletopcenter").style.display=(this.store.active ? "block":"none"); this.stateBraketopcenter = this.$api.variables.get(varBraketopcenter, "Bool"); this.stateGearHandletopcenter = this.$api.variables.get(varGearHandletopcenter, "Percent Over 100"); // radians * 180/PI = degrees radians* 57.3 this.stateFlapsHandletopcenter = Math.round(this.$api.variables.get(varFlapsHandletopcenter, "Degrees")) .toString().padStart(3, '0'); //this.stateFlapsHandletopcenter = Math.round(this.$api.variables.get(varFlapsHandletopcenter, "Percent")) % 1000 .toString().padStart(3, '0'); this.statePlaneHeadingtopcenter = Math.round(this.$api.variables.get(varPlaneHeadingtopcenter, "Degrees")).toString().padStart(3, '0'); this.stateAirspeedtopcenter = Math.round(this.$api.variables.get(varAirspeedtopcenter, "Knots")).toString().padStart(3, '0'); this.stateGroundVelocitytopcenter = Math.round(this.$api.variables.get(varGroundVelocitytopcenter, "Knots")).toString().padStart(3, '0'); this.stateAltitudetopcenter = Math.round(this.$api.variables.get(varAltitudetopcenter, "Feet")).toString(); this.stateAltAboveGroundtopcenter = Math.round(this.$api.variables.get(varAltAboveGroundtopcenter, "Feet")); this.stateVerticalSpeedtopcenter = Math.round(this.$api.variables.get(varVerticalSpeedtopcenter, "Feet per minute")); this.stateNacellesRotationtopcenter = Math.round(this.$api.variables.get(varNacellesRotationtopcenter, "Percent")) % 1000 .toString().padStart(3, '0'); this.stateRudTrimtopcenter = Math.round(this.$api.variables.get(varRudTrimtopcenter, "Percent")) % 1000 .toString().padStart(3, '0'); this.stateElevTrimtopcenter = Math.round(this.$api.variables.get(varElevTrimtopcenter, "Percent")) % 1000 .toString().padStart(3, '0'); this.stateWindDirectiontopcenter = Math.round(this.$api.variables.get(varWindDirectiontopcenter, "Degrees")).toString().padStart(3, '0'); this.stateWindVelocitytopcenter = Math.round(this.$api.variables.get(varWindVelocitytopcenter, "Knots")).toString().padStart(3, '0'); // Uhrzeit umrechnen let timeInSeconds = Math.round(this.$api.variables.get(varLocalTimetopcenter, "Seconds")); let date = new Date(null); date.setSeconds(timeInSeconds); let hours = date.getUTCHours().toString().padStart(2, '0'); let minutes = date.getUTCMinutes().toString().padStart(2, '0'); this.stateLocalTimetopcenter = `${hours}:${minutes}`; this.cellLocalTimetopcenter = document.getElementById("localtimetopcenter"); // Windrichtung zum Flugzeug berechnen let relativeWindDirection = this.$api.variables.get(varWindDirectiontopcenter, "Degrees") - this.$api.variables.get(varPlaneHeadingtopcenter, "Degrees"); relativeWindDirection = (relativeWindDirection + 360) % 360; //Pfeil justieren let rotationDegrees = relativeWindDirection - 180;// Drehung auf den Pfeil anwenden document.getElementById("windarrowtopcenter").style.transform = `rotate(${rotationDegrees}deg)`; this.colorNacellesRotationtopcenter = "red"; this.textBraketopcenter = this.stateBraketopcenter ? "on" : "off"; this.colorBraketopcenter = this.stateBraketopcenter ? "red" : "lightgreen"; this.cellBraketopcenter.innerHTML = this.textBraketopcenter; this.cellBraketopcenter.style.color = this.colorBraketopcenter; this.textGearHandletopcenter = ""; this.colorGearHandletopcenter = ""; if (this.stateGearHandletopcenter < 0.25) { this.textGearHandletopcenter = "up"; this.colorGearHandletopcenter = "red"; } else if (this.stateGearHandletopcenter > 0.75) { this.textGearHandletopcenter = "down"; this.colorGearHandletopcenter = "lightgreen"; } else { this.textGearHandletopcenter = `${Math.round(this.stateGearHandle * 100)}%`; this.colorGearHandletopcenter = "black"; } this.cellGearHandletopcenter.innerHTML = this.textGearHandletopcenter; this.cellGearHandletopcenter.style.color = this.colorGearHandletopcenter; this.cellFlapsHandletopcenter.innerHTML = this.stateFlapsHandletopcenter; this.cellPlaneHeadingtopcenter.innerHTML = this.statePlaneHeadingtopcenter; this.cellAirspeedtopcenter.innerHTML = this.stateAirspeedtopcenter; this.cellGroundVelocitytopcenter.innerHTML = this.stateGroundVelocitytopcenter; this.cellAltitudetopcenter.innerHTML = this.stateAltitudetopcenter; this.cellAltAboveGroundtopcenter.innerHTML = this.stateAltAboveGroundtopcenter; this.cellVerticalSpeedtopcenter.innerHTML = this.stateVerticalSpeedtopcenter; this.cellNacellesRotationtopcenter.innerHTML = this.stateNacellesRotationtopcenter; this.cellRudTrimtopcenter.innerHTML = this.stateRudTrimtopcenter; this.cellElevTrimtopcenter.innerHTML = this.stateElevTrimtopcenter; this.cellWindDirectiontopcenter.innerHTML = this.stateWindDirectiontopcenter; this.cellWindVelocitytopcenter.innerHTML = this.stateWindVelocitytopcenter; this.cellLocalTimetopcenter.innerHTML = this.stateLocalTimetopcenter; this.cellNacellesRotationtopcenter.style.color = this.colorNacellesRotationtopcenter; } this.update_counter=0; loop_30hz(()=>{ if(this.store.active && (this.update_counter >= (this.update_interval*30))){ this.update_counter=0; this.update_elements(); } this.update_counter++; }); run(() => { this.store.active=!this.store.active; this.$api.datastore.export(this.store); this.update_elements(); return 2000; }); style(() => { return this.store.active ? 'active' : 'inactive'; });