MobiFlight Community Support

Welcome to the forum for MobiFlight! Feel free to reach out to the community in case you have questions, issues or just want to share great ideas or details about your latest home cockpit project.

You like MobiFlight? Donate via PayPal and support the MobiFlight development. Thanks! 

icon
Avatar
Hannes
From: Austria
Posts: 114
Supporter
Hallo,
Kann mir hier jemand helfen. Ich verwende P3D V4 und A2A Cessna 172. Für die Instrumente verwende ich Airmanager. Problem ist, dass Airmanager für die Uhr (OAT and Time Instrument mit den 3 Buttons) andere Befehle verwendet, als ich es für die A2A C172 benötigen würde. Laut Airmanager kann man Instrumente anpassen. Hab schon einiges am Code geschaut und gegoogelt. Leider ohne Erfolgt. Kennt sich hier jemand zufällig aus? Anbei der Code des Instruments. Vielen Dank

iconCode:
---------------------------------------------
--             Chronometer                 --
-- Modification of Russ Barlows original   --
--                OAT & Time indicator     --
-- Brian McMullan 20180324                 -- 
-- Property for background off/on          --
-- Property for dimming overlay            --
---------------------------------------------

---------------------------------------------
--   Properties                            --
---------------------------------------------
prop_BG = user_prop_add_boolean("Background Display",true,"Hide background?")
prop_DO = user_prop_add_boolean("Dimming Overlay",false,"Enable dimming overlay?")

---------------------------------------------
--   Load and display images in Z-order    --
--   Loaded images selectable with prop    --
---------------------------------------------
-- Load images in Z-order --
txt_load_font("digital-7-mono.ttf")
if user_prop_get(prop_BG) == false then
	img_add_fullscreen("Chrono.png")
else
	img_add_fullscreen("ChronowBG.png")
end	
img_on = img_add_fullscreen("ChronoON.png")
img_light = img_add_fullscreen("ChronoONLight.png")
img_UT = img_add("arrowup.png",57,213,34,6)
img_FT = img_add("arrowdown.png",57,222,34,6)
img_LT = img_add("arrowup.png",105,213,34,6)
img_ET = img_add("arrowdown.png",105,222,34,6)

if user_prop_get(prop_DO) == true then
	img_add_fullscreen("dimoverlay.png")
end

-- Load text in Z-order --
txt_time = txt_add(" ", "size:80px; color: black; halign: right;", 135, 170, 200, 100)
txt_tempvolt = txt_add(" ", "size:80px; color: black; halign: center;", 45, 85, 300, 250)

-- Set default visibility --
visible(img_on, false)
visible(img_light, false)
visible(img_UT, false)
visible(img_FT, false)
visible(img_LT, false)
visible(img_ET, false)
visible(txt_time, false)

-- General vars --
local gbl_power		   = false
local gbl_oatv_state   = 0
local gbl_time_state   = 0
local gbl_time_reset   = 0

-- Button functions --
function new_oatv()
  gbl_oatv_state = gbl_oatv_state + 1

  if (gbl_oatv_state > 2) then
    gbl_oatv_state = 0
  end
end

function new_time()
  gbl_time_state = gbl_time_state + 1

  if (gbl_time_state > 3) then
    gbl_time_state = 0
  end
end

function new_control_pressed()
    if not timer_running(timer_control) and gbl_time_state == 3 and gbl_power then
        gbl_time_reset = 0
        timer_control = timer_start(0,100,timer_control_callback)
    end
	
    xpl_command("sim/instruments/timer_start_stop")
end

function new_control_released()
    if timer_running(timer_control) then
        timer_stop(timer_control)
        gbl_time_reset = 0
    end		
end

function timer_control_callback()
    gbl_time_reset = gbl_time_reset + 0.1
    
    if gbl_time_reset > 3 then
        gbl_time_reset = 0
        xpl_command("sim/instruments/timer_reset")
        timer_stop(timer_control)
    end
end


-- Functions --
function new_timeoat(zulu_hours, zulu_minutes, local_hours, local_minutes, time_flight, elapsed_minutes, elapsed_seconds, temperature, avionics, light, voltage, bus_voltage)

	gbl_power = avionics == 1 and bus_voltage[1] >= 10
	visible(img_on, gbl_power)
	visible(img_light, light >= 1 and gbl_power)
	
	if gbl_time_state == 0 then
		vis_time = string.format("%02.0f:%02.0f", (zulu_hours - (zulu_hours%1)), (zulu_minutes - (zulu_minutes%1))%60)
	elseif gbl_time_state == 1 then
		vis_time = string.format("%02.0f:%02.0f", (local_hours - (local_hours%1)), (local_minutes - (local_minutes%1))%60)
	elseif gbl_time_state == 2 then
		vis_time = string.format("%02.0f:%02.0f",(time_flight / 3600), ( (time_flight / 60) % 60) )
	elseif gbl_time_state == 3 then
		vis_time = string.format("%02.0f:%02.0f", elapsed_minutes, elapsed_seconds)
	end

	visible(img_UT, gbl_time_state == 0 and gbl_power)
	visible(img_FT, gbl_time_state == 2 and gbl_power)
	visible(img_LT, gbl_time_state == 1 and gbl_power)
	visible(img_ET, gbl_time_state == 3 and gbl_power)
	
	if gbl_oatv_state == 0 and avionics == 1 then
		txt_set(txt_tempvolt, string.format("T " .. "%.0f" .. "'C", temperature ) )
    elseif gbl_oatv_state == 1 and avionics == 1 then
        txt_set(txt_tempvolt, string.format("T " .. "%.0f" .. "'F", (temperature * 1.8) + 32 ) )
	elseif gbl_oatv_state == 2 and avionics == 1 then
		txt_set(txt_tempvolt, var_format(voltage[1], 1) .. "E" )
	else
		txt_set(txt_tempvolt, " ")
	end
	
	visible(txt_time, gbl_power)
	txt_set(txt_time, vis_time)
	
end

function new_timeoat_fsx(zulu_hours, zulu_minutes, local_hours, local_minutes, time_elapsed, temperature, avionics, light, voltage, bus_voltage)

	avionics = fif(avionics, 1, 0)
	light = fif(light, 1, 0)

    -- There is no flight time and timer elapsed time in FSX
	new_timeoat(zulu_hours, zulu_minutes, local_hours, local_minutes, time_elapsed, 0, 0, temperature, avionics, light, {voltage}, {bus_voltage})
end

---------------------------------------------
-- Switches, buttons and dials             --
---------------------------------------------
button_oatv    = button_add("buttonred.png","buttonredpr.png",140,-16,120,120, new_oatv)
button_time    = button_add("buttonblue.png", "buttonbluepr.png", 60, 280, 120, 120, new_time)
button_control = button_add("buttonblue.png", "buttonbluepr.png", 223, 280, 120, 120, new_control_pressed, new_control_released)

---------------------------------------------
--   Simulator Subscriptions               --
---------------------------------------------
xpl_dataref_subscribe("sim/cockpit2/clock_timer/zulu_time_hours", "INT", 
                      "sim/cockpit2/clock_timer/zulu_time_minutes", "INT",
                      "sim/cockpit2/clock_timer/local_time_hours", "INT",
					  "sim/cockpit2/clock_timer/local_time_minutes", "INT",
					  "sim/time/total_flight_time_sec", "FLOAT",
                      "sim/cockpit2/clock_timer/elapsed_time_minutes", "INT",
					  "sim/cockpit2/clock_timer/elapsed_time_seconds", "INT",
					  "sim/weather/temperature_ambient_c", "FLOAT",
					  "sim/cockpit/electrical/avionics_on", "INT",
					  "sim/cockpit/electrical/cockpit_lights_on", "INT", 
					  "sim/cockpit2/electrical/battery_voltage_indicated_volts", "FLOAT[8]", 
					  "sim/cockpit2/electrical/bus_volts", "FLOAT[6]", new_timeoat)

fsx_variable_subscribe("ZULU TIME", "Hours",
                       "ZULU TIME", "Minutes",
					   "LOCAL TIME", "Hours",
                       "LOCAL TIME", "Minutes",
					   "SIM TIME", "Seconds",
					   "TOTAL AIR TEMPERATURE", "Celsius", 
					   "ELECTRICAL MASTER BATTERY", "Bool", 
					   "LIGHT PANEL", "Bool", 
					   "ELECTRICAL BATTERY VOLTAGE", "Volts",
					   "ELECTRICAL MAIN BUS VOLTAGE", "Volts", new_timeoat_fsx)
					   
---------------------------------------------
--   END   Chronometer                     --
---------------------------------------------
www.modellbau-technik.at
hannes.dobersberger@modellbau-technik.at
2019-01-02 08:30
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 2189
Supporter
Hi Hannes

Ein Programmierer würde vermutlich den Code anschauen.... Und wissen wie er funktioniert und was am Ende raus kommt.

Ich als Laie lese ihn und versuche mir mit logik zusammenzubauen was da wohl passiert.
DAS geht noch viel einfacher wenn ich das Egebnis kenne.

Stell dir vor in einen Kochrezept steht " Karotten in Julienne schneiden". Der Laie weis vielleicht nicht was Julienne sind.
Hätte er aber vorher das Gericht bereits mal gesehen dann müsste er nur die Karotten darauf ansehen und würde erkennen das Julienne schlicht "dünne Streifen" sind.

Zurück zum Problem.

Wenn du uns jetzt noch sagst wie das "Endprodukt" dieses Codes ( also die Uh in ihrer jetzigen Form) arbeitet dann ist es deutlich einfacher den Code zu verstehen,

Also:
Wieviele Schalter gibt es .... Haben diese eine art Name oder benennung.
WAS macht Schalter A , B C und so weiter. z.b. Hat schalter A beispielsweise 4 Funktionen die man durchschaltet und nach der 4. kommt die 1. erneut ?
Machen die Schalter etwas bei Press UND ODER bei Release ?
Macht ein Schalter etwas Anderes in Abhängigkeit einer Situation ? Z.b. Stoppt ein Schalter die Stopuhr wenn sie läuft UND der selbe Schalter startetn die Uhr falls sie nicht läuft.
Gibt es mehrere Modus ? Also Ist Schalter A bei aktiver Stopuhr z.b. zum starten und stoppen da.... Aber wenn Modus "Zulu Uhr" aktiv ist macht der selbe schalter z.b. ein Umschalten zwischen 12 und 24 Stunden system.

Um mit den Beispielen aufzuhören....

Wenns geht sag uns WAS die Uhr aktuell alles macht und was sie machen soll in deinen Projekt ( Welche Unterschiede).
Der Code sieht sehr einfach aus. womöglich kriegen wir das als Laien selber hin .... Wenn nicht gibts Profis !
Good Luck !
2019-01-02 15:17
Avatar
Hannes
From: Austria
Posts: 114
Supporter
Sorry. OK, versuche es mal zu erklären.
Anbei ein Link von der Uhr die in der A2A C172 verbaut ist und wie sie funktioniert. Die Uhr im Airmanager (Code laut vorherigen Post) ist optisch und von den Funktionen gleich aufgebaut. Folgendes Probelm. Ich stelle alle Instrumente vom Panel mit Airmanager dar. Alle Instrumente funktionieren (zeigen gleiche Werte wie im virtuellen Cockpit der A2A an), außer diese Uhr. Durch auslesen der Lvars von der A2A konnte ich meine Hardware-Taster von meinem gebauten Panel über Mobiflight und FSUIPC, mittels einer LUA Datei schon zum Funktionieren bringen. Wenn ich also meine Taster betätige passiert im virtuellen Cockpit genau das was passieren soll. Beim Instrument, dass der Airmanager anzeigt leider nichts. Es werden keine Anzeigen gewechselt und auch keine Werte aktualisiert.
Da man laut Airmanager Instrumente auch anpassen kann, war meine Überlegung diesen Code (die Programmierung) so anzupassen, dass es funktioniert.
Alternative wäre, wenn man die Standard Offsets, EventID´s oder Lvars vom P3D kennen würde. Dann könnte man diese verwenden. Es würden dann zwar die Taster keine Aktualisierung der Uhr im virtuellen Panel bewirken (ist egal, weil man dies im Betrieb sowieso nicht sieht), aber dafür die Uhr des Airmanagers beeinflussen. Dies wäre meiner Meinung nach die einfachste Lösung. Habe jedoch alle erdenklichen Dokumente, Log.dateien und Foren durchsucht. Leider ohne Erfolg.
Der Airmanager kommuniziert über Simconnect mit P3D. Aber auch in dieser Doku konnte ich für mich keine Anhaltspunkte zu dieser Uhr finden.
Vielen Dank

Link zum PDF mit der Funktionsberschreibung: https://readycloud.netgear.com/client/browselink.html#t=0cbxlezqcq7md05hboav0yqw3o8/MF-Freigabe
www.modellbau-technik.at
hannes.dobersberger@modellbau-technik.at
2019-01-02 15:54
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 2189
Supporter
Hhhm.

Das ist halt jetzt der Nachteil wenn man auf so eine Software wie airmanager zurückgreift.
Grundsätzlich müsste man eigentlich sagen ist die Anfrage "hier" eigentlich falsch.... Denn dein Poblem ist ja in dem fall nicht der P3D bzw Mobiflight sondern der Airmanager.

Leider kenn ich mich mit dem Programm überhaupt nicht aus und weis davon eh erst von dir.

Verstehe ich das richtig das dieses "Display" das du da auf dem Bildschirm siehst eigentlich eine art 2D Cockpit ist. Also es bildet nicht nur die Anzeigen ab sondern die besagten 3 "Taster" befinden sich effektiv auch auf dieser Oberfläche und könnten mit der Maus geklickt werden ?
Zumindest sieht es für mich so aus da die Buttons dort mit Coordinaten definiert werden.

Folge: Die ganze logik in diesen Code von Airmanager bezieht sich auf diese Buttons ! Heist es bewirkt natürlich nichts wenn du auf die A2A zugreifst denn du müsstest mit deinen INPUTS ja besagte Airmanager Buttons steuern.

Lösung:
Sehe mehrere möglichkeiten.

1. Du schaffst es das du die Buttons des Airmanager mit deinen Hardwarebuttons verknüpfst. In diesen Fall ist es wie du sagst das du unabhängig von der A2A bist... Die dortige Uhr ändert sich nicht mehr denn du verwendest die reinen P3D Werte. ( Ist aber auch völlig egal denke ich... Denn auch die A2A verwendet intern zu 99% diese Werte)
Ob und wie das geht ist sache von den Airmanager Profis.... Kannst du dort diese Buttons irgendwie belegen mit Tastatur/Joystick Commandos ? Womöglich geht es auch über den Script das du sagen kannst der "indikator" für eine function ist nicht mehr der virtuelle Button sondern z.b. ein Tastenkommando oder ein Offsetwert.
(Falls das möglich ist wäre das die einfachste Variante)

2. Lösung über den Sim.
Wenn du die Airmanager Buttons nicht steuern kannst musst du sozusagen den Airmanager als reine "Ausgabe" verwenden.
Sprich alle funktionen in dem script fliegen raus und du hast nur noch das Bild der Uhr und du lässt eine Variable anzeigen die das Display "füttert" .
Das Problem hier...
Du brauchst eine Variable die auf deine Tasteneingaben natürlich reagiert. Sprich all die Funktionen des Airmanager müssten irgendwo anders passieren.
Hier wäre es am einfachsten wenn du aus der A2A den Inhalt der Uhr Displays als "Wert" auslesen könntest..... Ich bezweifle aber das es das gibt.

Bleibt also nur eine selbstgebaute Lösung. Sprich du müsstest dir so eine Uhr selber programmieren. Ein LUA Script der ALLES macht was in dem Airmanager Script auch gemacht wird.... Dieser script würde dann deine 3 Tasten sehen ( z.b. über keysend , Joystick oder Offset Überwachung.... Er würde sich aus dem P3D die Rohwerte holen (wie Temperatur, Zulu Zeit usw. ) und er würde die ganzen funktionen etc regeln..... Am Ende gibt er die Werte dann auf einen Offset aus.
Auch hier wieder die Frage.... Kann Airmanager denn einen Offset lesen oder arbeitet es Direkt mit dem Sim und nicht auch über FSUIPC.

*******
Zusammengefasst. Hilfe wirst du vermutlich nur über die Jungs von Airmanager finden !
Good Luck !
2019-01-03 05:04
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 2189
Supporter
Update:

Google Hilft:

https://siminnovations.com/wiki/index.php?title=Air_Manager_Instrument_Logic_API#Button

Habs nur überflogen.... Wenn ich es richtig sehe.... Airmanager kann aus dem FSX/P3D nur die Simconnect Variablen ziehen. Folge wird es wohl auf den ersten Blick nicht gehen irgendwelche "selbstgebauten" Werte aus FSUIPC zu nehmen.

Auch sieht man in dem Link das Die INPUTS eben diese Virtuellen Buttons sind ODER in der Profi version über ein Arduino-RasPI etc kommen können. Einen Wert aus dem Sim als Indicator zu nehmen geht wohl.... Aber da wir die Simconnect Variablen ja per Mobiflight nicht schreiben können wird das wohl nicht gehen.

******
Mit dieser neuen Info....

Beste lösung dürfte es sein einen Controller ( Kompatibel für Airmanager ) zu verwenden wie ein kleines Arduino nano etc .... Und mit diesen dann die Buttons zu verbauen. so steuerst du direkt Airmanager.... Und der macht den Rest.
ODER
Du baust dir die Uhr schlicht richtig mit 7 Segment Displays.... Denn gehts über LUA und FSUIPC!
Good Luck !
2019-01-03 05:47
Avatar
Hannes
From: Austria
Posts: 114
Supporter
Danke für deinen Gedankenanstoß. Einen Arduino direkt an Airmanager habe ich noch gar nicht gedacht. :-/
Ich werde das auf jeden Fall mal mit einem Nano testen und hier nochmal kurz berichten. Sollte es so funktionieren, wäre das ja eine sehr einfache und effektive Lösung.

Vielen Dank
www.modellbau-technik.at
hannes.dobersberger@modellbau-technik.at
2019-01-03 06:35
Avatar
Hannes
From: Austria
Posts: 114
Supporter
Das Instrument funktioniert!

Hab es jetzt direkt über Airmanager mit einem Arduino Nano gemacht. Hier sind grundsätzlich alle Befehle möglich, die mit einem Instrument von Airmanager zusammenhängt, möglich. Wer das auch mal braucht kann sich gerne bei mir melden.

Hier der Code für den Arduino Nano, um eben in diesem Fall 3 Buttons zu bedienen:
iconCode:
-- Push Button OAT-Volts

-- Callback function which is called when the button is pressed
function button_pressed()
	print("button pressed")
end

-- Callback function which is called when the button is released
function button_released()
	print("button_released")
end

-- Bind to Arduino A, Pin 2
hw_button_add("ARDUINO_NANO_A_D2, button_pressed, button_released)


-- Push Button SELECT-Volts

-- Callback function which is called when the button is pressed
function button_pressed()
	print("button pressed")
end

-- Callback function which is called when the button is released
function button_released()
	print("button_released")
end

-- Bind to Arduino A, Pin 4
hw_button_add("ARDUINO_NANO_A_D4, button_pressed, button_released)


-- Push Button CONTROL-Volts

-- Callback function which is called when the button is pressed
function button_pressed()
	print("button pressed")
end

-- Callback function which is called when the button is released
function button_released()
	print("button_released")
end

-- Bind to Arduino A, Pin 8
hw_button_add("ARDUINO_NANO_A_D8, button_pressed, button_released)


Und hier der Code vom Instrument selbst:
iconCode:
---------------------------------------------
--             Chronometer                 --
-- Modification of Russ Barlows original   --
--                OAT & Time indicator     --
-- Brian McMullan 20180324                 -- 
-- Property for background off/on          --
-- Property for dimming overlay            --
---------------------------------------------

---------------------------------------------
--   Properties                            --
---------------------------------------------
prop_BG = user_prop_add_boolean("Background Display",true,"Hide background?")
prop_DO = user_prop_add_boolean("Dimming Overlay",false,"Enable dimming overlay?")

---------------------------------------------
--   Load and display images in Z-order    --
--   Loaded images selectable with prop    --
---------------------------------------------
-- Load images in Z-order --
txt_load_font("digital-7-mono.ttf")
if user_prop_get(prop_BG) == false then
	img_add_fullscreen("Chrono.png")
else
	img_add_fullscreen("ChronowBG.png")
end	
img_on = img_add_fullscreen("ChronoON.png")
img_light = img_add_fullscreen("ChronoONLight.png")
img_UT = img_add("arrowup.png",57,213,34,6)
img_FT = img_add("arrowdown.png",57,222,34,6)
img_LT = img_add("arrowup.png",105,213,34,6)
img_ET = img_add("arrowdown.png",105,222,34,6)

if user_prop_get(prop_DO) == true then
	img_add_fullscreen("dimoverlay.png")
end

-- Load text in Z-order --
txt_time = txt_add(" ", "size:80px; color: black; halign: right;", 135, 170, 200, 100)
txt_tempvolt = txt_add(" ", "size:80px; color: black; halign: center;", 45, 85, 300, 250)

-- Set default visibility --
visible(img_on, false)
visible(img_light, false)
visible(img_UT, false)
visible(img_FT, false)
visible(img_LT, false)
visible(img_ET, false)
visible(txt_time, false)

-- General vars --
local gbl_power		   = false
local gbl_oatv_state   = 0
local gbl_time_state   = 0
local gbl_time_reset   = 0

-- Button functions --
function new_oatv()
  gbl_oatv_state = gbl_oatv_state + 1

  if (gbl_oatv_state > 2) then
    gbl_oatv_state = 0
  end
end

function new_time()
  gbl_time_state = gbl_time_state + 1

  if (gbl_time_state > 3) then
    gbl_time_state = 0
  end
end

function new_control_pressed()
    if not timer_running(timer_control) and gbl_time_state == 3 and gbl_power then
        gbl_time_reset = 0
        timer_control = timer_start(0,100,timer_control_callback)
    end
	
    xpl_command("sim/instruments/timer_start_stop")
end

function new_control_released()
    if timer_running(timer_control) then
        timer_stop(timer_control)
        gbl_time_reset = 0
    end		
end

function timer_control_callback()
    gbl_time_reset = gbl_time_reset + 0.1
    
    if gbl_time_reset > 3 then
        gbl_time_reset = 0
        xpl_command("sim/instruments/timer_reset")
        timer_stop(timer_control)
    end
end


-- Functions --
function new_timeoat(zulu_hours, zulu_minutes, local_hours, local_minutes, time_flight, elapsed_minutes, elapsed_seconds, temperature, avionics, light, voltage, bus_voltage)

	gbl_power = avionics == 1 and bus_voltage[1] >= 10
	visible(img_on, gbl_power)
	visible(img_light, light >= 1 and gbl_power)
	
	if gbl_time_state == 0 then
		vis_time = string.format("%02.0f:%02.0f", (zulu_hours - (zulu_hours%1)), (zulu_minutes - (zulu_minutes%1))%60)
	elseif gbl_time_state == 1 then
		vis_time = string.format("%02.0f:%02.0f", (local_hours - (local_hours%1)), (local_minutes - (local_minutes%1))%60)
	elseif gbl_time_state == 2 then
		vis_time = string.format("%02.0f:%02.0f",(time_flight / 3600), ( (time_flight / 60) % 60) )
	elseif gbl_time_state == 3 then
		vis_time = string.format("%02.0f:%02.0f", elapsed_minutes, elapsed_seconds)
	end

	visible(img_UT, gbl_time_state == 0 and gbl_power)
	visible(img_FT, gbl_time_state == 2 and gbl_power)
	visible(img_LT, gbl_time_state == 1 and gbl_power)
	visible(img_ET, gbl_time_state == 3 and gbl_power)
	
	if gbl_oatv_state == 0 and avionics == 1 then
		txt_set(txt_tempvolt, string.format("T " .. "%.0f" .. "'C", temperature ) )
    elseif gbl_oatv_state == 1 and avionics == 1 then
        txt_set(txt_tempvolt, string.format("T " .. "%.0f" .. "'F", (temperature * 1.8) + 32 ) )
	elseif gbl_oatv_state == 2 and avionics == 1 then
		txt_set(txt_tempvolt, var_format(voltage[1], 1) .. "E" )
	else
		txt_set(txt_tempvolt, " ")
	end
	
	visible(txt_time, gbl_power)
	txt_set(txt_time, vis_time)
	
end

function new_timeoat_fsx(zulu_hours, zulu_minutes, local_hours, local_minutes, time_elapsed, temperature, avionics, light, voltage, bus_voltage)

	avionics = fif(avionics, 1, 0)
	light = fif(light, 1, 0)

    -- There is no flight time and timer elapsed time in FSX
	new_timeoat(zulu_hours, zulu_minutes, local_hours, local_minutes, time_elapsed, 0, 0, temperature, avionics, light, {voltage}, {bus_voltage})
end

---------------------------------------------
-- Switches, buttons and dials             --
---------------------------------------------
button_oatv    = hw_button_add("ARDUINO_NANO_A_D2, new_oatv)
button_time    = hw_button_add("ARDUINO_NANO_A_D4, new_time)
button_control = hw_button_add("ARDUINO_NANO_A_D8, new_control_pressed, new_control_released)

---------------------------------------------
--   Simulator Subscriptions               --
---------------------------------------------
xpl_dataref_subscribe("sim/cockpit2/clock_timer/zulu_time_hours", "INT", 
                      "sim/cockpit2/clock_timer/zulu_time_minutes", "INT",
                      "sim/cockpit2/clock_timer/local_time_hours", "INT",
					  "sim/cockpit2/clock_timer/local_time_minutes", "INT",
					  "sim/time/total_flight_time_sec", "FLOAT",
                      "sim/cockpit2/clock_timer/elapsed_time_minutes", "INT",
					  "sim/cockpit2/clock_timer/elapsed_time_seconds", "INT",
					  "sim/weather/temperature_ambient_c", "FLOAT",
					  "sim/cockpit/electrical/avionics_on", "INT",
					  "sim/cockpit/electrical/cockpit_lights_on", "INT", 
					  "sim/cockpit2/electrical/battery_voltage_indicated_volts", "FLOAT[8]", 
					  "sim/cockpit2/electrical/bus_volts", "FLOAT[6]", new_timeoat)

fsx_variable_subscribe("ZULU TIME", "Hours",
                       "ZULU TIME", "Minutes",
					   "LOCAL TIME", "Hours",
                       "LOCAL TIME", "Minutes",
					   "SIM TIME", "Seconds",
					   "TOTAL AIR TEMPERATURE", "Celsius", 
					   "ELECTRICAL MASTER BATTERY", "Bool", 
					   "LIGHT PANEL", "Bool", 
					   "ELECTRICAL BATTERY VOLTAGE", "Volts",
					   "ELECTRICAL MAIN BUS VOLTAGE", "Volts", new_timeoat_fsx)
					   
---------------------------------------------
--   END   Chronometer                     --
---------------------------------------------


Und hier noch ein Link zu einem Testvideo des Instruments: https://readycloud.netgear.com/client/browselink.html#t=0u48dx7dpq6aon6mxg2ls3c8wek/MF-Freigabe

Wie gesagt, wer was benötigt, kann sich gerne bei mir melden …
www.modellbau-technik.at
hannes.dobersberger@modellbau-technik.at
2019-01-06 07:45
icon