![]() |
![]() |
|
![]() |
![]() |
|
Home Cockpit - Das Forum für die "Bastler" Cockpitbauer tauschen Pläne, Erfahrungen, Meinungen über den Bau von Homecockpits aus... |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 06.03.2003
Alter: 57
Beiträge: 278
|
![]() Hallo,
hat jemand mal ein Beispiel für SIOC oder kann mir sagen, wie ich es schaffe meine Radios erst bei Battery on zum leuchten zu bewegen. Meine Radios funktionieren einwandfrei, mich stört es nur das auch bei Cold and Dark diese in Funktin sind, sprich die 7 Segment Anzeigen leuchten. Den Offsetwert habe ich so hoffe ich zumindest in der Doku gefunden nur fehlt mir bei den Befehlen nach dem IF ein THEN, oder mache ich einen Gedankenfehler. Gruss Dirk |
![]() |
![]() |
![]() |
#2 |
Senior Member
![]() |
![]() Hi, Dirk!
Ich hab's bei mir so gelöst (sind zwar andere Variablen, aber vielleicht hilft dir das): Code:
Var 0001, name InternalFlags { &ElecOn = TESTBIT &InternalFlags ,0 &MaingenOn = TESTBIT &InternalFlags ,6 } Var 0005, name ElecOn // Boolean to check, when displaying lights { CALL &updateFPanel } Var 0006, name MaingenOn { CALL &updateCMDS } Var 0007 Var 0010, name CPanelLights Var 0011, name FPanelLights { CALL &updateFPanel } Var 1000, name updateFPanel, Link SUBRUTINE { IF &ElecOn = 1 // check, if electricity in jet { &masterc = TESTBIT &FPanelLights ,0 &lebTfFail = TESTBIT &FPanelLights ,1 &aoa_dn = TESTBIT &FPanelLights ,2 &aoa_ok = TESTBIT &FPanelLights ,3 &aoa_up = TESTBIT &FPanelLights ,4 &rdy = TESTBIT &FPanelLights ,5 &nws = TESTBIT &FPanelLights ,6 &disc = TESTBIT &FPanelLights ,7 &rebEngFire = TESTBIT &FPanelLights ,8 &rebEngine = TESTBIT &FPanelLights ,9 &rebHydPres = TESTBIT &FPanelLights ,10 &rebOilPres = TESTBIT &FPanelLights ,10 &rebFlcs = TESTBIT &FPanelLights ,11 &rebDbuOn = TESTBIT &FPanelLights ,12 &rebToLdg = TESTBIT &FPanelLights ,13 &rebConfig = TESTBIT &FPanelLights ,13 &rebCanopy = TESTBIT &FPanelLights ,14 &rebOxyLow = TESTBIT &FPanelLights ,15 &twsHandoff = TESTBIT &FPanelLights ,16 &twsLaunch = TESTBIT &FPanelLights ,17 &twsPriMode = TESTBIT &FPanelLights ,18 &twsNaval = TESTBIT &FPanelLights ,19 &twsUnknown = TESTBIT &FPanelLights ,20 &twsTgtSep = TESTBIT &FPanelLights ,21 &ecmOn = TESTBIT &FPanelLights ,22 &tfrActive = TESTBIT &FPanelLights ,23 &tfrStby = TESTBIT &FPanelLights ,24 } ELSE { &masterc = 0 &lebTfFail = 0 &aoa_dn = 0 &aoa_ok = 0 &aoa_up = 0 &rdy = 0 &nws = 0 &disc = 0 &rebEngFire = 0 &rebEngine = 0 &rebHydPres = 0 &rebOilPres = 0 &rebFlcs = 0 &rebDbuOn = 0 &rebToLdg = 0 &rebConfig = 0 &rebCanopy = 0 &rebOxyLow = 0 &twsHandoff = 0 &twsLaunch = 0 &twsPriMode = 0 &twsNaval = 0 &twsUnknown = 0 &twsTgtSep = 0 &ecmOn = 0 &tfrActive = 0 &tfrStby = 0 } } Var 1001, name updateCMDS, Link SUBRUTINE { L0 = &MaingenOn + &ElecOn IF L0 = 2 // check, if mainGenerator running and ELEC switch on { if &ChaffCount < 100 { &disp_Chaff = &ChaffCount } ELSE { &disp_Chaff = 99 } if &FlareCount < 100 { &disp_Flares = &FlareCount } ELSE { &disp_Flares = 99 } } else { &disp_Flares = -999999 &disp_Chaff = -999999 } } ///////////////////////////////// // LEDs are from 2000 - 2050 // ///////////////////////////////// Var 2000, name masterc, Link IOCARD_OUT, Output 11 // Master Caution Light Var 2001, name aoa_dn, Link IOCARD_OUT, Output 12 Var 2002, name aoa_ok, Link IOCARD_OUT, Output 13 usw... michi
____________________________________
Michi \"MiHi\" Hirczy http://www.f16simulator.net ########################### |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() Registriert seit: 06.03.2003
Alter: 57
Beiträge: 278
|
![]() Hallo Michi,
vielen Dank für dein Script. Ich werde es mir am Freitag mal in Ruhe anschauen un versuchen zu verstehen. Mir ist aufgefallen das du nicht wie von mir eigentlich versucht mit IF / THEN Schleifen bzw. mit NOT oder OR Befehlen gearbeitet hast. Hmmm mal sehen. Ich hoffe ich darf mich noch einmal melden wenn ich Probleme habe???? Schönen Tag rüber Dirk |
![]() |
![]() |
![]() |
#4 | ||
Senior Member
![]() |
![]() Hi, Dirk!
Zitat:
1.) In der Variable 0001 werden bitweise diverse Stati gesetzt - unter anderem auch ElecOn (Elektrizität im Pit) und MainGenOn (Hauptgenerator läuft). Wenn diese Bits gesetzt sind werden die Variablen 5 und 6 auf "1" gesetzt. 2.) In der Variable 0011 werden die Werte für die Lampen des Frontpanels bitweise gesetzt (jede Lampe ein Bit). Ändert sich nun der Wert dieser Variable (weil z.B. eine Lampe an/aus gegangen ist, wird die Funktion "updateFPanel" (V1000) aufgerufen. 3.) In der Funktion updateFPanel wird gleich zu Beginn gecheckt: Ist &ElecOn auf "1"? (Strom im Pit). Falls ja -> beschalte die LED Outputs entsprechend der Bitwerte in der Variable 0011. Fall nein (ELSE-Block) -> schalte alle Outputs auf "0" (aus). 4.) Die oben genannte Funktion wird auch bei Änderung des Wertes von &ElecOn aufgerufen, da ja auch auf die Position des Stromschalters reagiert werden muss. Zitat:
lg michi
____________________________________
Michi \"MiHi\" Hirczy http://www.f16simulator.net ########################### |
||
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|