Guest Makoy

Overheadin sioc projekti

56 viestiä aiheessa

Jeees, kyllä se vaan katkaisee äänen heti. Hyvä juttu, täytyy muuttaa scriptiä. Kiitokset taas Jouni  :thmbup:

Jaa viesti


Link to post
Jaa muulla sivustolla

Dun, ja hyvin skulaa  ;D . Vaihdoin kaikki äänijutskat scriptiin. Naapureillekkin vaihtelua blingblingblingin kera, kun ehkä ovat jo kyllästyneet bing ja bingbong ääniin  ;D

 

23:34 tempasin vielä illanpäätteeksi masterwarning ja mastercaution valot overheadin usb-outputsilta  MIPin masterin outputteihin. On lähempänä niitä ja vapauttaa kaksi overheadin outputtia muuhun. Eiköhän tää viikonlopun värkkäily ollu tässä.

Jaa viesti


Link to post
Jaa muulla sivustolla

Olen yrittänyt esimerkin mukaan duunata nää warning/caution systeemit, mutta en pääse kompiloimaan. Tossa on nyt ongelmana nuo CALL komennot ja " } " -merkki. Miten nuo nyt pitäis laittaa? t-Marco

 

 

 

// ****************************

//     WARNINGS & CAUTIONS

// ****************************

 

Var 0220, name Warn_CautionSw, Link IOCARD_SW, Device 0, Input 217, Type I // SW_WARNING_CAUTION

{

    &Led_Warning = 0

    &Led_Caution = 0

}

 

Var 0221, name Park_brake  //   parkbrake on takeoff....

{

   IF &AC_Position = 1

   {

      IF &BeaconlightSw = 1

      {

         IF &L_EngN2 > 5000

         {

            IF &ParkBrake = 32767

            {

                &Warn_Flag0 = 1

            }

            ELSE

            {

                &Warn_Flag0 = 0

            }

              CALL &Warning_Caution

            }

         }

      }

   }

}

 

Var 0222, name Speed_Brake  //   speedbrake not UP on takeoff....

{

   IF &AC_Position = 1         

   {

      IF &BeaconlightSw = 1

      {

         IF &SpBrake > 1

         {

            IF &L_EngN2 > 5000

            {

                &Warn_Flag1 = 1

            }

            ELSE

            {

                &Warn_Flag1 = 0

            }

              CALL &Warning_Caution

            }

         }

      }

   }

}

 

Var 0223, name Flaps_Ground  //   flaps less than 15 on takeoff....

{

   IF &AC_Position = 1         

   {

      IF &BeaconlightSw = 1

      {

         IF &Flapstate < 8190

         {

            IF &L_EngN2 > 5000

            {

                &Warn_Flag2 = 1

            }

            ELSE

            {

                &Warn_Flag2 = 0

            }

              CALL &Warning_Caution

            }

         }

      }

   }

}

 

Var 0224, name L_Eng_Ground  //  on ground left engine shutdown....

{

   IF &AC_Position = 1       

   {

      IF &ParkBrake = 32767

      { 

         IF &BeaconlightSw = 0

         {

            IF &L_EngN2 < 1000

            {

                &Warn_Flag3 = 1

            }

            ELSE

            {

                &Warn_Flag3 = 0

            }

              CALL &Warning_Caution

            }

         }

      }

   }

}

 

Var 0225, name R_Eng_Ground  //  on ground left engine shutdown....

{

   IF &AC_Position = 1       

   {

      IF &ParkBrake = 32767

      { 

         IF &BeaconlightSw = 0

         {

            IF &R_EngN2 < 1000

            {

                &Warn_Flag4 = 1

            }

            ELSE

            {

                &Warn_Flag4 = 0

            }

              CALL &Warning_Caution

            }

         }

      }

   }

}

 

Var 0226, name Flaps_Air  //  landing, but flaps less than 20....

{   

   IF &AC_Position = 0       

   {

      IF &Flapstate < 5460

      { 

         IF &Altimeter < 800

         {

             &Warn_Flag5 = 1

         }

         ELSE

         {

             &Warn_Flag5 = 0

         }

           CALL &Warning_Caution

         }

      }

   }

}

 

Var 0227, name Gears_air  //  landing, but gears up....

{

   IF &AC_Position = 0       

   {

      IF &Gearstate < 16383

      { 

         IF &Altimeter < 800

         {

             &Warn_Flag6 = 1

         }

         ELSE

         {

             &Warn_Flag6 = 0

         }

           CALL &Warning_Caution

         }

      }

   }

}

 

Var 0239, name Warn_Flag0 // PARKING_BRAKE_TAKEOFF_WARNING_FLAG

 

Var 0240, name Warn_Flag1 // SPEEDBRAKE_TAKEOFF_WARNING_FLAG

 

Var 0241, name Warn_Flag2 // FLAPS_TAKEOFF_WARNING_FLAG

 

Var 0242, name Warn_Flag3 // L_ENG_SHUTDOWN_ON_GROUND_FLAG

 

Var 0243, name Warn_Flag4 // R_ENG_SHUTDOWN_ON_GROUND_FLAG

 

Var 0244, name Warn_Flag5 // LANDING_WITH_FLAPS_BELOW_20

 

Var 0245, name Warn_Flag6 // LANDING_WITH_GEARS_UP

 

Var 0246, name Warn_Flag7 //

 

Var 0247, name Warn_Flag8 //

 

Var 0248, name Warn_Flag9 //

 

var 0249, name Warning_Caution, Link SUBRUTINE // WARNING_CAUTION_LOGIC

   IF &SPD_Warning = 1

   {

       &Led_Warning = 1

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Warning = 0

      }

   }

   IF &Stall_Warning = 1

   {

       &Led_Warning = 1

   }

   ELSE

   {

      IF &Stall_Warning = 0

      {

         IF &Warn_CautionSw = 1

         {

             &Led_Warning = 0

         }

      }

   }

   IF &WarnFlag1 = 1

   {

       &Led_Caution = 1

       &SoundStart = 9

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Caution = 0

      }

   }

   IF &WarnFlag2 = 1

   {

       &Led_Caution = 1

       &SoundStart = 9

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Caution = 0

      }

   }

   IF &WarnFlag3 = 1

   {

       &Led_Caution = 1

       &SoundStart = 9

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Caution = 0

      }

   }

   IF &WarnFlag4 = 1

   {

       &Led_Caution = 1

       &SoundStart = 9

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Caution = 0

      }

   }

   IF &WarnFlag5 = 1

   {

       &Led_Warning = 1

       &SoundStart = 10

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Warning = 0

      }

   }

   IF &WarnFlag6 = 1

   {

       &Led_Warning = 1

       &SoundStart = 10

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Warning = 0

      }

   }

}

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Häh  :o? Tää oli ihan uutta, mä olen ollu siinä uskossa, että scriptin pätkien lopuissa nimenomaan pitää olla noi?

Jaa viesti


Link to post
Jaa muulla sivustolla

Oli ohjelmoitikieli mikä hyvänsä, { ja ) merkkejä pitää olla yhtä monta. Mielestäni nyt ei näin ole.

Jaa viesti


Link to post
Jaa muulla sivustolla

Oot Ville ihan oikeessa  :P Ok, mä kokeilen Tomi tuota juttua. Mulla on tossa kolvi kuumana, pitää jatkaa juottelua. Myöhemmin takasin scriptin kimppuun.

Jaa viesti


Link to post
Jaa muulla sivustolla

Oot Ville ihan oikeessa  :P Ok, mä kokeilen Tomi tuota juttua. Mulla on tossa kolvi kuumana, pitää jatkaa juottelua. Myöhemmin takasin scriptin kimppuun.

 

Nyt kun olen ihan oikean koneen ääressä, niin haluan vielä tarkentaa, että en tiedä, onko se juuri tuo CALL-:n jälkeinen }-merkki se, minkä poistamalla saat toimimaan oikein, mutta se näyttää yksinäiseltä kuin herne Tuntematton sotilaan hernekeitossa.

 

Tämä alue on mulle täysin tuntematon, en tiedä, milloin haluat kutsua CALL:ia. Jos vaatimuksena on, että &Warn_Flag-muuttujat ovat saaneet arvon 1, niin silloin tuo CALL pitäisi samassa lohkossa, kuin missä &Warn_Flagille annetaan arvoksi 1.

 

Var 0221, name Park_brake  //   parkbrake on takeoff....

{

   IF &AC_Position = 1

   {

      IF &BeaconlightSw = 1

      {

         IF &L_EngN2 > 5000

         {

            IF &ParkBrake = 32767

            {

                &Warn_Flag0 = 1

               CALL &Warning_Caution

            }

            ELSE

            {

                &Warn_Flag0 = 0

            }

         }

      }

   }

}

 

Jos taas &Warn_Flag:n arvolla ei ole väliä kun CALL:ia kutsutaan, riittää }-merkin poistaminen.

 

Eikö SIOC:ssa voi käyttää AND- ja OR-operaattoreita?

Jaa viesti


Link to post
Jaa muulla sivustolla

Terve Tomi, hyvä että joku viittii auttaa, muut on tainnu jo luovuttaa. Oli eilen kolvin kanssa treffit ja meni myöhään yöhön. En ehtiny scriptiä mietiskellä. Tuo minkä postasit näyttää siltä mitä pitääkin, noin sen on pakko olla. Pitää testailla huomenna, kun pääsee kotia. Mulla on ihan alkuvaiheessa tää sioc osaaminen, mutta ei siinä ole OR tai AND komentoja, mutta kylläkin on paljon muita. Mulla alkaa olla tää overheadin scripti miltei valmis, pientä hienosäätöä vailla. Ajattelin tehdä tän warning/cautionin samaan syssyyn, kun samoja offsetteja on käytössä overheadissa. t-Marco

Jaa viesti


Link to post
Jaa muulla sivustolla

Sellainen tuli vielä mieleen, että onko &BeaconlightSwitchin asento pakko ottaa huomioon. Nythän tuossa koodissa käy niin, että jos yrittää lentoonlähtöä parkkijarru päällä, mutta beacon on pois päältä, varoitusta ei tule. Toki, jos se on tarkoitus, niin sittenhän se on just niin kuin pitää.

Jaa viesti


Link to post
Jaa muulla sivustolla

Sellainen tuli vielä mieleen, että onko &BeaconlightSwitchin asento pakko ottaa huomioon. Nythän tuossa koodissa käy niin, että jos yrittää lentoonlähtöä parkkijarru päällä, mutta beacon on pois päältä, varoitusta ei tule. Toki, jos se on tarkoitus, niin sittenhän se on just niin kuin pitää.

 

Joo, hyvä havainto  ;) Sillä oli semmoinen tarkoitus, että se erottaa koneen käynnistyksen. Kun kone käynnistetään, kierrokset pompsahtaa ja parkkijarru voi olla päällä, silloin tulis tuo varoitus väärään paikkaan. Beaconhan laitetaan vasta kun ollaan kiitoradalla, niin ajattelin että voisin käyttää sitä. Pitää vaan muistaa laittaa se päälle  ;D

Jaa viesti


Link to post
Jaa muulla sivustolla

Sulla on Marco kyl aikamoinen homma tuossa logiikan kirjoittelussa. Varsinkin jos haluaisi ottaa kaiken mahdollisen huomioon. Itse lähtisin tuota miettimään siltä kantilta että missä vaiheessa mikäkin varoitus on tarkoitus toimia. Sen jälkeen miettiä ne pakolliset kuviot että mikä varoituksen triggeröi ja sen perusteella koodia.

 

Tuo koodi minkä Tomi laittoi on teknisesti oikein mutta hankala sanoa toimiiko logiikka juuri niin kuin pitää. Pitäs syventyä tarkemmin tuohon mitä koodilta haluut niin voisi auttaa enemmän :)

 

t,

Jouni

Jaa viesti


Link to post
Jaa muulla sivustolla

Joo, tuo overhead ja varoitukset taitaa olla se vaikein juttu tehdä kokkarissa  :P Mä olen lueskellu noita 777 manuskoita ahkerasti, siellä on tosi hyvin missä vaiheessa noita varoituksia tulee, minne ne tulee ja mistä syistä. Noita varoituksia tulee neljään eri paikkaan ( PFD, EICAS, Warning/Caution switch ja Landing gear paneeliin ). Esim. tuo warning tai caution. Toiset varoitukset kuittautuu heti ja toiset vasta kun varoituksen syy on poistunut. Heh, kohta tunnen koneen kun omat taskuni  ;D Kokeilin tänään kotona käydessäni tuota uutta scriptiä ja varoitukset ei toiminut. Mutta... selasin äsken noita scriptin offsetteja jos niissä on jotain häikkää, ja kas kummaa sieltäpä löytyi kaksi väärää offsettia. En tiedä minkä offsetit mulla oli niissä, kun ei toiminut...olisko ollu FSX:n tai jotain taivaan vanhoja offsetteja? No joka tapauksessa huomenna uusi testaus simussa. t-Marco

Jaa viesti


Link to post
Jaa muulla sivustolla

Joo, hyvä havainto  ;) Sillä oli semmoinen tarkoitus, että se erottaa koneen käynnistyksen. Kun kone käynnistetään, kierrokset pompsahtaa ja parkkijarru voi olla päällä, silloin tulis tuo varoitus väärään paikkaan. Beaconhan laitetaan vasta kun ollaan kiitoradalla, niin ajattelin että voisin käyttää sitä. Pitää vaan muistaa laittaa se päälle  ;D

 

Sitten kun saat homman toimimaan, niin voisiko Beacon-ongelman ratkaista niin, että moottorin käynnistyskatkaisija/vipu/nappula tai mikä onkaan, käynnistäisi ensin laskurin esim. kymmenestä sekunnista alaspäin ja sinä aikana &startEngDelay=1, muuten 0 ja tuossa skriptissä ensimmäinen IF-lause olisi Esim IF &startEngDelay=0, eli logiikassa ensin tarkastettaisi onko moottorin käynnistintä hipelöity hiljattain. Ihan vaan ideana...

Jaa viesti


Link to post
Jaa muulla sivustolla

Mutta eikös beacon (se punainen vilkku) laiteta päälle heti kun on tarkoitus alkaa käynnistellä? Toki noissa varmaan yhtiön proseduurit saattaa jotain vaihdella noissa valojen käytössä, mutta beacon + navit kun startataan ja liikutaan, kiitotielle mennessä strobet päälle ja landing light kun on lentoonlähtöselvitys? Tai sit jotain muuta, saatan toki olla väärässäkin kun en noita isoja härpäkkeitä lennä :)

 

//T

Jaa viesti


Link to post
Jaa muulla sivustolla

Sitten kun saat homman toimimaan, niin voisiko Beacon-ongelman ratkaista niin, että moottorin käynnistyskatkaisija/vipu/nappula tai mikä onkaan, käynnistäisi ensin laskurin esim. kymmenestä sekunnista alaspäin ja sinä aikana &startEngDelay=1, muuten 0 ja tuossa skriptissä ensimmäinen IF-lause olisi Esim IF &startEngDelay=0, eli logiikassa ensin tarkastettaisi onko moottorin käynnistintä hipelöity hiljattain. Ihan vaan ideana...

 

Hmmm, täytyykin mietiskellä tuota, toi poistais ton käynnistys ongelman. Noihin "jos joku ei toivottu asia takeoffissa" vois tietty käyttää myös landinglights switchiä beaconin sijaan. Ideat on enemmän kun tervetulleita.

Jaa viesti


Link to post
Jaa muulla sivustolla

Mutta eikös beacon (se punainen vilkku) laiteta päälle heti kun on tarkoitus alkaa käynnistellä? Toki noissa varmaan yhtiön proseduurit saattaa jotain vaihdella noissa valojen käytössä, mutta beacon + navit kun startataan ja liikutaan, kiitotielle mennessä strobet päälle ja landing light kun on lentoonlähtöselvitys? Tai sit jotain muuta, saatan toki olla väärässäkin kun en noita isoja härpäkkeitä lennä :)

 

//T

 

Noinpäinhän se tais olla, kiitti Tuomas

Jaa viesti


Link to post
Jaa muulla sivustolla

Tuli mieleen, että voisin tehdä pätkän tosta mun overheadistä ja sen toiminnasta vaikka youtubeen. Selventäis kummasti missä mennään ja miten se toimii tai ei toimi tällähetkellä.

Jaa viesti


Link to post
Jaa muulla sivustolla

Löytyykö jostakin syntakiopasta tuohon sioc-koodiin? Näyttää BASIC kieleltä näin nopeasti katsottuna, joten ehkä varoitukset kannattaa eristää omaan funktioonsa aka. subroutineensa. Kuitenkin ohjelmoinnissa pätee sääntö jos teet samaa koodia teet sen väärin.

Jaa viesti


Link to post
Jaa muulla sivustolla

Ja sellanenkin tuli mieleen, että joissain jeteissä, ehkä kaikissa, on TO/GA-nappula. En tunne proseduureja, joten en tiedä, missä vaiheessa sitä painetaan ja painetaanko sitä aina lentoonlähdössä, mutta voisiko sitä käyttää kertomaan, että nyt lähdetään lentoon ja jos parkkijarru on päällä, niin olis syytä vapauttaa jarrut.

Jaa viesti


Link to post
Jaa muulla sivustolla

No niin, homma jatkuu. Scriptiin vaihdettu Beaconin tilalle Strobe. Mä katson Juha linkin sioc ohjeeseen. Tomi, jep, manuskan mukaan toga laitetaan päälle takeoffissa, kun kaasut on 55% N1.

Ei onnaa varoitukset toisillakaan offseteillä :( Mä laitan tähän nyt vain yhden varoituksen scriptin ( offsetit, switsi+ledit, flagi ja subrutine. Jos saan tän yhden varoituksen toimimaan, niin saan sitten ne loputkin. Joku tässä mättää, enkä tajua mikä?

Ajatus on että jos ollaan kiitoradalla > kaasua lisätään takeoffissa, mutta parkingbrake on unohtunut päälle > seuraa varoitus äänellä ja ledillä, joka kuitataan momentary kytkimellä.

 

// ****************************

//     WARNINGS & CAUTIONS

// ****************************

 

OFFSETIT=

 

Var 0004, name ParkBrake, Link FSUIPC_IN, Offset $0BC8, Length 2 // PARKING_BRAKE

{

   CALL &Warn_Caution

   CALL &Ext_Pwr_Logic

}

 

Var 0017, name AC_Position, Link FSUIPC_IN, Offset $0366, Length 2 // AIRCRAFT_POSITION_AIR=0/GROUND=1

{

   CALL &Warn_Caution

}

 

Var 0025, name L_EngN2, Link FSUIPC_IN, Offset $0896, Length 2 // LEFT_ENG_N2_READOUT

{

  CALL &Warn_Caution

  CALL &Fuel_Logic

  CALL &Air_Logic

  CALL &Hyd_Logic

  CALL &Elec_Logic

  CALL &Ext_Pwr_Logic

}

 

SWITSI JOKA ON MUKANA LOGIIKASSA=

 

Var 0161, name StrobelightSw, Link IOCARD_SW, Device 0, Input 103, Type I // SW_STROBELIGHT

{

  IF &StrobelightSw = 1

  {

    &Lights = CHANGEBIT 4 ,v0161

  }

  ELSE

  {

    &StrobelightSw = 0

  }

 

SWITSI JOKA SAMMUTTAA JOKO WARNING TAI CAUTION LEDIN =

 

Var 0220, name Warn_CautionSw, Link IOCARD_SW, Device 0, Input 217, Type I // SW_WARNING_CAUTION

{

    &Led_Warning = 0

    &Led_Caution = 0

}

 

SCRIPTI VAROITUKSEEN =

Var 0221, name Park_brake  //   parkbrake on takeoff....

{

   IF &AC_Position = 1

   {

      IF &StrobelightSw = 1

      {

         IF &L_EngN2 > 3000

         {

            IF &ParkBrake = 32767

            {

                &Warn_Flag0 = 1

                CALL &Warn_Caution

            }

            ELSE

            {

                &Warn_Flag0 = 0

            }

         }

      }

   }

}

 

TÄSSÄ ON VARRI FLAGILLE=

Var 0239, name Warn_Flag0 // PARKING_BRAKE_TAKEOFF_WARNING_FLAG

 

FLAGI KOLMANTENA SUBRUTINESSA=

var 0249, name Warn_Caution, Link SUBRUTINE // WARNING_CAUTION_LOGIC

   IF &SPD_Warning = 1

   {

       &Led_Warning = 1

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Warning = 0

      }

   }

   IF &Stall_Warning = 1

   {

       &Led_Warning = 1

   }

   ELSE

   {

      IF &Stall_Warning = 0

      {

         IF &Warn_CautionSw = 1

         {

             &Led_Warning = 0

         }

      }

   }

   IF &Warn_Flag0 = 1

   {

       &Led_Caution = 1

       &SoundStart = 9

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Caution = 0

      }

   }

   IF &Warn_Flag1 = 1

   {

       &Led_Caution = 1

       &SoundStart = 9

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Caution = 0

      }

   }

   IF &Warn_Flag2 = 1

   {

       &Led_Caution = 1

       &SoundStart = 9

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Caution = 0

      }

   }

   IF &Warn_Flag3 = 1

   {

       &Led_Caution = 1

       &SoundStart = 9

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Caution = 0

      }

   }

   IF &Warn_Flag4 = 1

   {

       &Led_Caution = 1

       &SoundStart = 9

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Caution = 0

      }

   }

   IF &Warn_Flag5 = 1

   {

       &Led_Warning = 1

       &SoundStart = 10

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Warning = 0

      }

   }

   IF &Warn_Flag6 = 1

   {

       &Led_Warning = 1

       &SoundStart = 10

       &SoundStart = 0

   }

   ELSE

   {

      IF &Warn_CautionSw = 1

      {

          &Led_Warning = 0

      }

   }

}

Jaa viesti


Link to post
Jaa muulla sivustolla
Kauheen paljon koodia...

 

Menee kuitenkin kääntäjästä läpi? Minkäänlaista varoitusta ei siis lentskarissa tule? Kokeilepa osissa, ota subroutineista kaikki muu pois. Täyttyyhän kaikki ehdot eli saahan Warn_Flag0 arvon 1? Voisit ehkä vähentää ehtoja, eli teet ensin kokeilun sillä, että jos pelkästään painaa jarrua, niin varoitusvalo syttyy. Tällöin tiedät, että yhteys jarrun ja varoitusvalon osalta on kunnossa.

Jaa viesti


Link to post
Jaa muulla sivustolla

Juu, kyllä se kompiloituu. Mulla toimii kaksi varoitusta ( overspeed ja stall ) ne on tuossa subrutinen alussa eka ja toka. Erona näissä muihin on se, että ne linkittyy suoraan Offset varreista. Näihin muihin on sitten tehtävä itse logiikkaa. Tässä nuo offsetit=

 

Var 0027, name SPD_Warning, Link FSUIPC_IN, Offset $036D, Length 1 // SPEED_WARNING_READOUT

{

  IF &SPD_Warning = 1

  {

    CALL &Warn_Caution

  }

}

 

Var 0028, name Stall_Warning, Link FSUIPC_IN, Offset $036C, Length 1 // STALL_WARNING_READOUT

{

  IF &Stall_Warning = 1

  {

    CALL &Warn_Caution

  }

}

 

Pitää huomen illalla jatkaa scriptin kanssa ja kokeilla vain yhtä ehtoa kerrallaan.

Jaa viesti


Link to post
Jaa muulla sivustolla

Koodailin hiukan lyhyemmäksi tuota ohjelmaa. Eli käytännössä poistin kaikki ELSE haarat noista alkupään ehdoista, koska virheflagi voidan alustaa heti nollaksi ja virheen sattuessa siihen nostetaan virhe päälle. Jos tähän ohjelmakoodiin on olemassa silmukka (FOR / WHILE / FOREACH) tai vastaava, niin nuo virheet kannattaa taulukoida ja lopussa käydä vain taulukko läpi ja toimia sitten sen mukaan onko virhe päällä vai ei.

 

Kääntäjä ei suostu tuota kääntämään, koska kaikkia muuttujia ei ole näkyvillä, joskin muutoin pitäisi olla kaiketi aika validia koodia. Jostakin syystä kääntäjä kiukutteli Warnig_Caution nimestä, joka oli kuulemma liian pitkä. Muutin sen siis W_caut nimeksi, joka kelpasi sille.

 

>

// ****************************
//     WARNINGS & CAUTIONS 
// ****************************

Var 0220, name Warn_CautionSw, Link IOCARD_SW, Device 0, Input 217, Type I // SW_WARNING_CAUTION
{
&Led_Warning = 0
&Led_Caution = 0
}

Var 0221, name Park_brake  //   parkbrake on takeoff....
{
&Warn_Flag0 = 0
IF &AC_Position = 1 
{
	IF &BeaconlightSw = 1
	{
		IF &L_EngN2 > 5000
		{
			IF &ParkBrake = 32767
			{
				&Warn_Flag0 = 1
			}
			ELSE
			
			CALL &W_caut
		}
	}
}
}

Var 0222, name Speed_Brake  //   speedbrake not UP on takeoff....
{
&Warn_Flag1 = 0
IF &AC_Position = 1         
{
	IF &BeaconlightSw = 1
	{
		IF &SpBrake > 1
		{
			IF &L_EngN2 > 5000
			{
				&Warn_Flag1 = 1
			}
			
			CALL &W_caut
		}
	}
}
}

Var 0223, name Flaps_Ground  //   flaps less than 15 on takeoff....
{
IF &AC_Position = 1         
{
	IF &BeaconlightSw = 1
	{
		IF &Flapstate < 8190
		{
			IF &L_EngN2 > 5000
			{
				&Warn_Flag2 = 1
			}
			
			CALL &W_caut
		}
	}
}
}

Var 0224, name L_Eng_Ground  //on ground left engine shutdown....
{
&Warn_Flag3 = 0
IF &AC_Position = 1        
{
	IF &ParkBrake = 32767
	{  
		IF &BeaconlightSw = 0
		{ 
			IF &L_EngN2 < 1000
			{ 
				&Warn_Flag3 = 1
			}
			
			CALL &W_caut
		}
	}
}
}

Var 0225, name R_Eng_Ground  //  on ground left engine shutdown....
{
&Warn_Flag4 = 0
IF &AC_Position = 1        
{
	IF &ParkBrake = 32767
	{  
		IF &BeaconlightSw = 0
		{ 
			IF &R_EngN2 < 1000
			{ 
				&Warn_Flag4 = 1
			}
			
			CALL &W_caut
		}
	}
}
}

Var 0226, name Flaps_Air  //  landing, but flaps less than 20....
{
&Warn_Flag5 = 0
IF &AC_Position = 0       
{
	IF &Flapstate < 5460
	{  
		IF &Altimeter < 800
		{ 
			&Warn_Flag5 = 1
		}
		
		CALL &W_caut
	}
}
}

Var 0227, name Gears_air  //  landing, but gears up....
{
&Warn_Flag6 = 0
IF &AC_Position = 0       
{
	IF &Gearstate < 16383
	{  
		IF &Altimeter < 800
		{ 
			&Warn_Flag6 = 1
		}
		
		CALL &W_caut
	}
}
}


Var 0239, name Warn_Flag0 // PARKING_BRAKE_TAKEOFF_WARNING_FLAG

Var 0240, name Warn_Flag1 // SPEEDBRAKE_TAKEOFF_WARNING_FLAG

Var 0241, name Warn_Flag2 // FLAPS_TAKEOFF_WARNING_FLAG

Var 0242, name Warn_Flag3 // L_ENG_SHUTDOWN_ON_GROUND_FLAG

Var 0243, name Warn_Flag4 // R_ENG_SHUTDOWN_ON_GROUND_FLAG

Var 0244, name Warn_Flag5 // LANDING_WITH_FLAPS_BELOW_20

Var 0245, name Warn_Flag6 // LANDING_WITH_GEARS_UP

Var 0246, name Warn_Flag7 //

Var 0247, name Warn_Flag8 //

Var 0248, name Warn_Flag9 // 

var 0249, name W_caut, Link SUBRUTINE // W_caut_LOGIC
{  
IF &SPD_Warning = 1
{
	&Led_Warning = 1
} 
ELSE
{
	IF &Warn_CautionSw = 1
	{
		&Led_Warning = 0
	}
}

IF &Stall_Warning = 1
{
	&Led_Warning = 1
} 
ELSE
{
	IF &Stall_Warning = 0
	{
		IF &Warn_CautionSw = 1
		{
			&Led_Warning = 0
		}
	}
}

IF &WarnFlag1 = 1 
{
	&Led_Caution = 1
	&SoundStart = 9
	&SoundStart = 0
} 
ELSE
{
	IF &Warn_CautionSw = 1
	{
		&Led_Caution = 0
	}
}

IF &WarnFlag2 = 1 
{
	&Led_Caution = 1
	&SoundStart = 9
	&SoundStart = 0
} 
ELSE
{
	IF &Warn_CautionSw = 1
	{
		&Led_Caution = 0
	}
}

IF &WarnFlag3 = 1 
{
	&Led_Caution = 1
	&SoundStart = 9
	&SoundStart = 0
} 
ELSE
{
	IF &Warn_CautionSw = 1
	{
		&Led_Caution = 0
	}
}

IF &WarnFlag4 = 1 
{
	&Led_Caution = 1
	&SoundStart = 9
	&SoundStart = 0
} 
ELSE
{
	IF &Warn_CautionSw = 1
	{
		&Led_Caution = 0
	}
}

IF &WarnFlag5 = 1 
{
	&Led_Warning = 1
	&SoundStart = 10
	&SoundStart = 0
} 
ELSE
{
	IF &Warn_CautionSw = 1
	{
		&Led_Warning = 0
	}
}

IF &WarnFlag6 = 1 
{
	&Led_Warning = 1
	&SoundStart = 10
	&SoundStart = 0
} 
ELSE
{
	IF &Warn_CautionSw = 1
	{
		&Led_Warning = 0
	}
}
}

Jaa viesti


Link to post
Jaa muulla sivustolla

Luo uusi käyttäjätunnus tai kirjaudu sisään

Sinun täytyy olla jäsen osallistuaksesi keskusteluun

Luo käyttäjätili

Rekisteröi uusi käyttäjätili helposti ja nopeasti!


Luo uusi käyttäjätili

Kirjaudu sisään

Sinulla on jo käyttäjätili?


Kirjaudu sisään