Guest Makoy

Overheadin sioc projekti

56 viestiä aiheessa

Tälläinen rojekti olis menossa, johon aivan varmasti tarvitsen neuvoja ja apuja, että saisin tän kerralla alusta asti oikein ja järkevästi. Aloitan tän scriptin täysin uudelleen ja varmaan kannattaa vaihtaa tuohon " nimet numeroiden sijaan" siocciin, kun sitä taitaa kaikki käyttää nykyjään? Oon perehtynyt tuohon 777 overheadin sielunelämään ja aika hyvin pitäis olla kaalissa. Ensin varmaan kannattaa tehdä sioc scriptin pohja, eli perus toiminnot ja sen jälkeen lisätä scriptiin lisää logiikkaa. Päivitän tätä scriptiä aina kun se edistyy.

 

Var 0002, name FuelSel, Link FSUIPC_OUT, Offset $0AF8, Length 2 // FUEL_TANK_SELECT

 

Var 0003, name FuelPumps, Link FSUIPC_OUT, Offset $3125, Length 1 // L_R_FUEL_PUMPS

 

Var 0004, name L_EngStart, Link FSUIPC_INOUT, Offset $0892, Length 0 // LEFT_ENG_START

 

Var 0005, name R_EngStart, Link FSUIPC_INOUT, Offset $092A, Length 0 // RIGHT_ENG_START

 

Var 0006, name Masterbattery, Link FSUIPC_INOUT, Offset $3102, Length 1 // MASTER_BATTERY

 

Var 0007, name Avionics, Link FSUIPC_INOUT, Offset $3103, Length 1 // AVIONICS

 

Var 0008, name SendMFD, Link FSUIPC_OUT, Offset $3340, Length 4 // SEND_KEY_TO_MFD

 

Var 0009, name Sound, Link SOUND

 

Var 0018, name BatterySwitch, Link IOCARD_SW, Device 0, Input 36, Type I

{

IF &BatterySwitch = 1

{

&Masterbattery = 1

&LedBatOff = 0

&Sound = 3

&Sound = DELAY 1, 100

&Sound = 0

&SendMFD = CHANGEBIT 0

&LedAdiruOff = DELAY 1, 100

&LedThrustOff = DELAY 1, 100

&LedApuGenOff = DELAY 1, 100

&LedL_Isln = DELAY 1, 100

&LedR_Isln = DELAY 1, 100

&LedL-GenCtrl = DELAY 1, 100

&LedR_GenCtrl = DELAY 1, 100

&LedL_BackUpGen = DELAY 1, 200

&LedR_BackUpGen = DELAY 1, 200

&LedRamAirUnlock = DELAY 1, 200

&LedC1Fault = DELAY 1, 100

&LedC2Fault = DELAY 1, 100

&LedHyd1Fault = DELAY 1, 150

&LedHyd2Fault = DELAY 1, 150

&LedHyd3Fault = DELAY 1, 150

&LedHyd4Fault = DELAY 1, 150

&LedL_PumpFwdPress = DELAY 1, 200

&LedL_PumpAftPress = DELAY 1, 200

&LedR_PumpFwdPress = DELAY 1, 200

&LedR_PumpAftPress = DELAY 1, 200

&LedL_CentPumpPress = DELAY 1, 150

&LedR_CentPumpPress = DELAY 1, 150

&LedL_EngBleedOff = DELAY 1, 150

&LedR_BleedOff = DELAY 1, 150

&LedSecAvail = DELAY 1, 200

&LedPriAvail = DELAY 1, 200

}

ELSE

{

&battery_switch = 0

&Masterbattery = 0

&SendMFD = CHANGEBIT 0

&LedBatOff = 1

&Sound = 3

&Sound = DELAY 1, 100

&Sound = 0

&LedAdiruOff = DELAY 0, 100

&LedThrustOff = DELAY 0, 100

&LedApuGenOff = DELAY 0, 100

&LedL_Isln = DELAY 0, 100

&LedR_Isln = DELAY 0, 100

&LedL-GenCtrl = DELAY 0, 100

&LedR_GenCtrl = DELAY 0, 100

&LedL_BackUpGen = DELAY 0,200

&LedR_BackUpGen = DELAY 0,200

&LedRamAirUnlock = DELAY 0,200

&LedC1Fault = DELAY 0, 100

&LedC2Fault = DELAY 0, 100

&LedHyd1Fault = DELAY 0, 150

&LedHyd2Fault = DELAY 0, 150

&LedHyd3Fault = DELAY 0, 150

&LedHyd4Fault = DELAY 0, 150

&LedL_PumpFwdPress = DELAY 0, 200

&LedL_PumpAftPress = DELAY 0, 200

&LedR_PumpFwdPress = DELAY 0, 200

&LedR_PumpAftPress = DELAY 0, 200

&LedL_CentPumpPress = DELAY 0, 150

&LedR_CentPumpPress = DELAY 0, 150

&LedL_EngBleedOff = DELAY 0, 150

&LedR_BleedOff = DELAY 0, 150

&LedSecAvail = DELAY 0, 200

&LedPriAvail = DELAY 0, 200

}

}

 

Update 7.10. Vaihdoin kaikki outputit varreista nimiksi.

Update 12.10. Logiikkaa mitä valoja syttyy, kun batteryn kytkee päälle. Delayt että ei syty samaan aikaan ja heti. Sanokaa jos huomaatte jotain **turalleen.

Jaa viesti


Link to post
Jaa muulla sivustolla

Nyt on metrin verran perus scriptiä ilman erikoisempia logiikoita  :P Törmäsin tuohon Fuel pumpseihin. Tietääkö kukaan toimiiko tuo FSuipc:n "fuel tank selector" ( Offset $0AF8 ) noihin pumppuihin tai tarkottaako se just niitä? Tossa Offsetissä on myös 11=right tip / 12=left tip, meinaiskohan nuo polttoaineen dumppausta?

Jaa viesti


Link to post
Jaa muulla sivustolla

Meinaa tiptankkeja, mitä joissain koneissa on siivenkärjissä. Nää lienee aina lentomallikohtaisia juttuja mitkä saattaa olla käytössä sellaisenaan tai sit jotenkin muuten jos on custom-juttuja lisäosakoneessa paljon.

 

var 0 oli muistaakseni semmonen mikä saa siocin startissa yhden eventin kun sioc on käynnistynyt ja simu hereillä myös. Siihen voi siten laittaa juttuja mitä haluaa tehdä simun startissa, alustaa muuttujiin tiettyjä arvoja jne...

 

//Tuomas

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Tossa Offsetissä on myös 11=right tip / 12=left tip, meinaiskohan nuo polttoaineen dumppausta?

 

Sillä offsetillä valitaan nimensä mukaisesti käytettävä polttoainesäiliö. Tip tarkoittaa siivenkärkisäilitöä esim. jossain sotilaskoneessa. Mutta eikö siellä FSUIPC:stä löysy suoraan offsetit papumpuille? Kyllä minä ainkin olen koodannut mäntämoottorivehkeeseen pumput SIOCilla.

Juha

Jaa viesti


Link to post
Jaa muulla sivustolla

Moi, oon taas seilannut netissä tän illan ja jos oikein jymmärrän, niin pitää käyttää kumpaakin Offsettia. Pumps $3125 ja tank selector $0AF8. Tank selectorista oli vaan on sellanen juttu, että  oikeaa ja vasenta tankkia ei voi valita samaan aikaan tai sitten pitää olla kaikki tankit valittuna. Pitää jatkaa metsästystä  :P

Jaa viesti


Link to post
Jaa muulla sivustolla

Poistelin pari kyssäriviestiä turhaan tilaa viemästä ja laitan uuden. Oon saanu scriptin toimimaan overheadissa jo aika hyvällä menestyksellä ja kyllä.....se on compiloitunut  ;D.  Ledit syttyy mitkä pitääkin ja sammuu viiveillä muiden toimintojen vaikutuksesta....paitsi vasen ja oikea keskipumppu. Vaikka korryt on ON asennossa, niissä palaa PRESS niin kauan, kunnes moottorit käynnistyy. Tälleen ne on oikeassa koneessa. Sou... yritän saada ne sammumaan tuolloin tällä lailla, mutta ei tapahdu mittään ? Neuvoja?

 

Var 0013, name L_EngRpm, Link FSUIPC_IN, Offset $0898, Length 1 // LEFT_ENG_RPM_READOUT

 

Var 0058, name CenterLpumpSw, Link IOCARD_SW, Device 0, Input 2, Type I // PUSH_L_PUMP_CENTER

{

IF &CenterLpumpSw = 1

{

&FuelPumps = 1

&SendMFD = CHANGEBIT 1 ,v0058

}

IF &L_EngRpm > 3000

{

&LedL_CentPump = DELAY 0, 400

}

ELSE

{

&FuelPumps = 0

&CenterLpumpSw = 0

&SendMFD = CHANGEBIT 1 ,v0058

}

}

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Moro,

 

Poistelin pari kyssäriviestiä turhaan tilaa viemästä ja laitan uuden. Oon saanu scriptin toimimaan overheadissa jo aika hyvällä menestyksellä ja kyllä.....se on compiloitunut  ;D.  Ledit syttyy mitkä pitääkin ja sammuu viiveillä muiden toimintojen vaikutuksesta....paitsi vasen ja oikea keskipumppu. Vaikka korryt on ON asennossa, niissä palaa PRESS niin kauan, kunnes moottorit käynnistyy. Tälleen ne on oikeassa koneessa. Sou... yritän saada ne sammumaan tuolloin tällä lailla, mutta ei tapahdu mittään ? Neuvoja?

 

Näyttäs perinteiseltä virheeltä SIOC logiikassa. Sinulla nyt tuo logiikka on kokonaisuudessaan Var 0058:n alla jolloin se ajetaan vain kun kytkintä kääntää. Ymäärsiin niin että se pitää ajaa kun RPM:n on kasvanut tarpeeksi ja ollaan käynnistysvaihessa eli sun pitää laittaa logiikkaa Var 0013:n alle.

 

Oletkos täl viikol virka-ajan jälkeen maisemissa? Voisin tulla käväseen katsomassa simuasi (vaikka tänään) ja samalla vähän antaa vinkkejä tuohon SIOCin kanssa pelaamiseen. Sillä saa aikaan monia kikkoja kun tietää millä logiikalla se toimii. Esim tohon sun koodiin ehdottaisin subrutinen käyttöä jota kutsutaan sekä 0013 ja 0058:n muuttuessa ja sit siinä subrutinen sisällä tehdään logiikka.

 

t,

Jouni

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Terve Jouni, kiitos tarjouksesta. Harmi kun mulla on just tällä viikolla iltavuoro. Ens viikolla onnistuis 15:30 jälkeen, jos sulle käy?. Toi subrutine on just opiskelun alla, mulla ei ole vielä muut kun ihan perusjutut hallussa. t-Marco

 

Lisäys....Jaa, nyt mä taisin hiffata ton virheen. Pitäiskö sit laittaa Var 0058 alle vain CALL v0059.

Var 0059, Link SUBROUTINE // ja tän alle kaikki logiikka? Tulee töihin kiire, pitää jatkaa illalla/yöllä  :P

Jaa viesti


Link to post
Jaa muulla sivustolla

Jeps, ens viikko vois joku päivä onnistua. Palaan astialle kun tiedän kalenterini tarkemmin.

 

En tiedä koodin taustoista mitä kaikkea ne tekee mutta kirjoitin tuohon alle pientä esimerkkiä toiminnasta

Toimii niin että Flagi nostetaan ykköseen kun switchiä käännetään ja vain silloin kun flagi on 1 niin seurataan engine rpm:ää ja kun se nousee tarpeeksi (>3000) niin suljetaan ledi ja tehdään jotain muuta mitä haluat. Tässä vaihessa myös flagi palautetaan nollaan  koska koko startti on tehty eikä logiikkaa enää tarvita. Ei tuohon näköjään kannattanu subrutinea sotkea.

 

t,

Jouni

 

 

>
Var 0013, name L_EngRpm, Link FSUIPC_IN, Offset $0898, Length 1 // LEFT_ENG_RPM_READOUT
{
  IF &I_L_STR_Flag = 1
  {
    IF &L_EngRpm > 3000
    {
      &LedL_CentPump = DELAY 0, 400
      &I_L_STR_Flag = 0
    }
  }
}

Var 0058, name CenterLpumpSw, Link IOCARD_SW, Device 0, Input 2, Type I // PUSH_L_PUMP_CENTER 
{ 
  IF &CenterLpumpSw = 1
  {
    &FuelPumps = 1
    &SendMFD = CHANGEBIT 1 ,v0058
    &I_L_STR_Flag = 1
  } 
}

Var 0059, name I_L_STR_Flag

J

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Ok, toi Flag on ihan uusi tuttavuus. Jos ton Flagin jättää päälle niin se vissiin seuraa tuota rpm:ää jatkuvasti tarvittaessa? Mulla olis tarkoitus lisätä scriptiin myös warningcautioneita ja tuota rpm offsettia vois käyttää myös siihen ( jos moottorit huutaa liian kauan täysillä, warningcaution valo syttyy > kuitataan kytkimestä ) Siihen vois kyllä käyttää muitakin offsetteja, ehkä engine vibration offset. Gotta go......

Jaa viesti


Link to post
Jaa muulla sivustolla

Flagi on periaatteessa ihan normi variable mutta siihen ei oo linkitetty mitään inputteja tai outputteja. Variablea Käytetään vain hyväksi muiden variablien koodissa. Nimesin sen vain flagiksi kun se kuvaa logiikkaa sopivasti.

 

Tuota flagi variablea ei kannata käyttää muualle kuin tuohon starttiin. Jos tarvit jatkuvaa RPM seurantaa voit lisätä sen tarvitseman logiikan esimerkiksi tuon IF:n ulkopuolelle RPM variablen sisään jolloin sitä logiikkaa ajetaan aina kun RPM muuttuu.

 

esim jotenkin näin, koodia ei testattu kun kirjoittelin sen tässä tauollani :)

 

t,

Jouni

 

>
Var 0013, name L_EngRpm, Link FSUIPC_IN, Offset $0898, Length 1 // LEFT_ENG_RPM_READOUT
{
  IF &I_L_STR_Flag = 1
  {
    IF &L_EngRpm > 3000
    {
      &LedL_CentPump = DELAY 0, 400
      &I_L_STR_Flag = 0
    }
  }
  IF &L_EngRpm > 7000
  {
    IF &I_L_OSpd_Flag = 0
    {
      &I_L_OSpd_Flag = 1
      &Led_Warning = 1
    }
  }
  IF &L_EngRpm < 7000
  {
    IF &I_L_OSpd_Flag = 1
    {
      &I_L_OSpd_Flag = 0
      &Led_Warning = 0
    }
  }
}

Var 0015, name I_OverSpd_Flag

Var 0016, name SW_WARN_BUTTON, Link IOCARD_SW, Device 0, Input 444, Type I // OVR_SPD_WARNING BUTTON
{
  &Led_Warning = 0
}


Var 0058, name CenterLpumpSw, Link IOCARD_SW, Device 0, Input 2, Type I // PUSH_L_PUMP_CENTER 
{ 
  IF &CenterLpumpSw = 1
  {
    &FuelPumps = 1
    &SendMFD = CHANGEBIT 1 ,v0058
    &I_L_STR_Flag = 1
  } 
}

Var 0059, name I_L_STR_Flag

Jaa viesti


Link to post
Jaa muulla sivustolla

Kiitti tosi paljon Jouni, tää valaisi kummasti asiaa. Kantsuisko mun muuten laittaa kaikki mastercautioniin vaikuttavat asiat tollaisilla flageillä ja muille sitten subrutinet, mitkä sellaisen tarvitsee? Pitää laittaa koko scripti uusiksi. Onni onnettomuudessa on se, että mulla on nimet var-numeroiden sijaan > ei tarvii kaikkea kirjoittaa uudelleen  :P  t-Marco

Jaa viesti


Link to post
Jaa muulla sivustolla

Tuo kannattaa miettiä kunnolla läpi ettei tule tehtyä hirveästi koodia turhaan.. Jotenkin subrutine kuulostais mastercautionille hyvältä kun siihen vaikuttaa niin moni asia.

Tylliin

 

Var 1, name jotan1

{

  if logiikka_varoitukselle=1

  {

    &varoitusflagi1=1

  }

  else

  {

    &varoitusflagi1=0

  }

  CALL masterwarning_logic

}

 

Var 2, name jotan2

{

  if logiikka_varoitukselle=1

  {

    &varoitusflagi2=1

  }

  else

  {

    &varoitusflagi2=0

  }

  CALL masterwarning_logic

}

 

Var 3, name jotan3

{

  if logiikka_varoitukselle=1

  {

    &varoitusflagi3=1

  }

  else

  {

    &varoitusflagi3=0

  }

  CALL masterwarning_logic

}

 

Var 4 masterwarning_logic subrutine

{

  tänne sit koodi joka sytyttelee/sammuttelee masterwarningia flagien ja kuittusnapin mukaan

}

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Pähkäilyä menossa....

 

Var 0001, name Spd_Warning, Link FSUIPC_IN, Offset $036D, Lenght 1 // OVERSPEED_WARNING

{

IF &Spd_Warning = 1

{

CALL &Warn_Caution_Subrutine

}

}

 

Var 0002, name Stall_Warning, Link FSUIPC_IN, Offset $036C, Lenght 1 // STALL_WARNING

{

IF &Stall_Warning = 1

{

CALL &Warn_Caution_Subrutine

}

}

 

Var 0003, name Warn_Caution_Subrutine, Link SUBRUTINE

{

IF  &Spd_Warning = 1

{

&Led_Warning = 1

}

}

IF &Stall_Warning = 1

}

&Led_Warning = 1

}

}

 

Var 0004, name Warn_CautionSw,  Link IOCARD_SW, Device 0, Input 444, Type P // WARNING_CAUTION_BUTTON

}

IF  &Warn_CautionSw = 1

&Led_Warning = 0

&Led_Caution = 0

}

}

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Joo jos sul on varoitukselle joku sopiva input offsetti niin toki niiden avulla se kannattaa tehdä. Ei tarvi sillo omaa lokiikkaa liipaisuun.

Mutta tsekkaa toi subrutinen logiikka. se ei oikein toimi noin kun se sammuttaa ledin heti jos switchi ei ole 1

 

Ja jos teet jokaiselle varoitukselle oman subrutinen niin eihän ne sillo samaa lediä (master warning) voi komentaa oikein kun logiikat eri subrutineiden välillä voi mennä sekasin.

Mitä muuten haet komennolla &Warn_cautionSw = 0 ? Jos oikein muistan sulla oli tuo variable inputti linkitetty ja sehä ottaa arvon kytkimeltä eikä siihen ole oikein loogisesti järkeä sillo kirjoittaa mitään

 

J

Jaa viesti


Link to post
Jaa muulla sivustolla

ok, mä kirjoitin tuon esimerkiksi pikapikaa ennen töihin lähtöä. Eiköhän tää nyt tästä kun pääsee kotiin ja scriptin kimppuun.

Jaa viesti


Link to post
Jaa muulla sivustolla

Pistin uudelta pohjalta tuon ylempänä olevan esimerkki runon, jokohan tuo nyt on sinnepäin?

Varreilla lisää warning / caution toimintoja > Linkitys samaan subrutineen ja sinne jatkoa.

Jaa viesti


Link to post
Jaa muulla sivustolla

Oonko käsittänyt nyt ihan oikein? Kun käyttää ELSE:ä IF:fin kanssa, on niiden välissä tietysti oltava jotain ( " & " ). Jos ei ole mitä käyttää, niin silloin astuu kuvioihin täytteeksi "flagi"  :P

Jaa viesti


Link to post
Jaa muulla sivustolla

Ainakaan missään muussa ohjelmointikielessä ei ole moista vaatimusta, vaan lohko saa olla myös tyhjä. En ole varma, miten sioc on speksattu, mutta tyhjä lohko tuskin eiheuttaa mitään ongelmia. Koodin uudelleen kirjoitusta ei myöskään pidä pelätä liiaksi. Jos laskee kaiken koodin yhteen, jota mä olen joutunut hylkäämään, niin emme puhu sadoista vaan tuhansista riveistä.

Jaa viesti


Link to post
Jaa muulla sivustolla

Terve. Juu, tutut nettisivut. Mä olen opiskellut noita Nicon tutoriaaleja, tosin ne on aika perustoimintoja ( miten saa yhden ledin toimimaan tai erillaisia kytkimiä yms, mut mä oon saanu tuon overheadin logiikan toimimaan aika hyvin perus jutuilla ( IF, ELSE, DELAY, CHANGEBIT ) ,  nyt tulee eteen vähän vaikeempaa kun pelkästään yhden kytkimen vaikutus johonkin lediin. Tässä oon kyllä vähän pihalla ja tarviin esimerkkejä, miten asian pitää tehdä. Oon myös ettinyt netistä, josko joku olis tehny itse scriptin overheadiin jollekkin koneelle, josta saisin hyvän esimerkin..... mutta eipä vaan löydy. t-Marco

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Sain muuten äsken toimimaan speed -ja stallwarningin. Varoitusvalo syttyy. Sammuu nappulasta kuittaamalla,vaikka varoitus olis vielä päällä. Syttyy uudelleen kun uusi varoitus tulee. Eipä onneks mennyt viikonlopun näpyttelyt hukkaan  :P. Nyt pariksi tunniksi nukkumaan ennen töihin lähtöä. Huomenna muita varoituksia tekemään  ;D

Jaa viesti


Link to post
Jaa muulla sivustolla

Projekti edistyy hyvin, ehkä pari viikkoa vielä vääntöä  :P Nyt on menossa firetesti ja siitä kysymys. Oon kokeillu kahdella eri soundilla, toinen on lyhyt ja toinen pitkä. Pitkässä on se ongelma, että kun firetestin ottaa pois päältä, soundi jatkuu liian pitkään. Lyhyessä taas soundi loppuu liian aikaisin. Kokeilin sitä tähteä soundin eteen sioc.inissä, mutta sitten ääni ei lopu ennenkun siocin sammuttaa. Pitäiskö scripti olla jotenkin erilailla? t-Marco

 

Var 0157, name FireTestSw, Link IOCARD_SW, Device 0, Input 30, Type I // SW_FIRE_OVH_TEST

{

  IF &FireTestSw = 1

  {

     &LedApu_Hdl = DELAY 1, 50

     &LedFireFwd = DELAY 1, 50

     &LedFireAft = DELAY 1, 50

     &Sound = 11

     &Sound = DELAY 1, 50

     &Sound = 0

  }

  ELSE

  {

    IF &FireTestSw = 0

    {

       &LedApu_Hdl = DELAY 0, 50

       &LedFireFwd = DELAY 0, 50

       &LedFireAft = DELAY 0, 50

       &Sound = 0

    }

  }

}

Jaa viesti


Link to post
Jaa muulla sivustolla

Soundeihin en osaa ottaa kantaa kun en ole koskaan leikkinyt siocin äänikomennoilla. Mutta yksi huomio scriptiin. Jälkimmäinen if on turha ja hankaloittaa koodin lukemista.

 

Edit. Nico Kaan:in mukaan pitäisi toimia näin, ref http://www.lekseecon.nl/howto.html#sound

 

>

Var 1 name SoundStart Link SOUND

Var 2 name SoundStop Link SOUND  Type S // add S for Stop variable

Var 0157, name FireTestSw, Link IOCARD_SW, Device 0, Input 30, Type I // SW_FIRE_OVH_TEST
{ 
  IF &FireTestSw = 1
  { 
     &LedApu_Hdl = DELAY 1, 50
     &LedFireFwd = DELAY 1, 50
     &LedFireAft = DELAY 1, 50
     &SoundStart = 11 // number of the sound file defined in sioc.ini
     &SoundStart = 0
  } 
  ELSE
  {
     &LedApu_Hdl = DELAY 0, 50
     &LedFireFwd = DELAY 0, 50
     &LedFireAft = DELAY 0, 50
     &SoundStop = 11 // number of the sound file defined in sioc.ini
     &SoundStop = 0
  }
}

 

Br,

Jouni

 

Jaa viesti


Link to post
Jaa muulla sivustolla

Ahaa, pitää kokeilla tuota. Ainakin tuon jatkuvan äänen saa noin loppumaan. Katotaan katkaiseeko se äänen heti, vai soittaako loppuun asti. Kiitti Jouni.

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