Page 1 sur 1

Correction de mon code de train

MessagePosté: Lun 8 Aoû 2011 17:24
de FiX
Voici un code de train comme on peut le trouver par exemple sur le site de claude:


Var 0000, name INI // variable d'initialisation
{
&GEAR = 16383
}

Var 0110, name GEAR, Link FSUIPC_INOUT, Offset $0BE8, Length 4 // train

Var 0116, name L_GEAR_POS, Link FSUIPC_IN, Offset $0BF4, Length 4 // position train gauche
{
IF &L_GEAR_POS = 16383 // si le train gauche est sorti
{
&L_GEAR_LED = 1
&GEAR_TRANS_LED = 0
}
ELSE
{
IF &L_GEAR_POS >= 1 // si le train gauche est en transit
{
&L_GEAR_LED = 0
&GEAR_TRANS_LED = 1
}
ELSE
{
IF &L_GEAR_POS = 0 // si le train gauche est rentré
{
&L_GEAR_LED = 0
&GEAR_TRANS_LED = 0
}
}
}
}

Var 0117, name R_GEAR_POS, Link FSUIPC_IN, Offset $0BF0, Length 4 // position train droit
{
IF &R_GEAR_POS = 16383
{
&R_GEAR_LED = 1
&GEAR_TRANS_LED = 0
}
ELSE
{
IF &R_GEAR_POS >= 1
{
&R_GEAR_LED = 0
&GEAR_TRANS_LED = 1
}
ELSE
{
IF &R_GEAR_POS = 0
{
&R_GEAR_LED = 0
&GEAR_TRANS_LED = 0
}
}
}
}

Var 0118, name NOSE_GEAR_POS, Link FSUIPC_IN, Offset $0BEC, Length 4 // position train avant
{
IF &NOSE_GEAR_POS = 16383 // si le train avant est sorti
{
&NOSE_GEAR_LED = 1
&GEAR_TRANS_LED = 0
}
ELSE
{
IF &NOSE_GEAR_POS >= 1 // si le train avant est en transit
{
&NOSE_GEAR_LED = 0
&GEAR_TRANS_LED = 1
}
ELSE
{
IF &NOSE_GEAR_POS = 0 // si le tain avant est rentré
{
&NOSE_GEAR_LED = 0
&GEAR_TRANS_LED = 0
}
}
}
}

Var 0111, name NOSE_GEAR_LED, Link IOCARD_OUT, Output 11 // led train avant

Var 0112, name L_GEAR_LED, Link IOCARD_OUT, Output 12 // led train gauche

Var 0113, name R_GEAR_LED, Link IOCARD_OUT, Output 13 // led train droit

Var 0114, name GEAR_TRANS_LED, Link IOCARD_OUT, Output 14 // led train TRANSIT

Var 0115, name GEAR_SW, Link IOCARD_SW, Input 11 // commande de train
{
IF &GEAR_SW = 1
{
&GEAR = 16383
}
ELSE
{
&GEAR = 0
}
}



Je me suis demandé quel était l'intérêt de coder la led "transit" pour chaque train.
Je ne l'ai donc ensuite laissé que sur un seul des trains:


Var 0000, name INI // variable d'initialisation
{
&GEAR = 16383
}

Var 0110, name GEAR, Link FSUIPC_INOUT, Offset $0BE8, Length 4 // train

Var 0116, name L_GEAR_POS, Link FSUIPC_IN, Offset $0BF4, Length 4 // position train gauche
{
IF &L_GEAR_POS = 16383 // si le train gauche est sorti
{
&L_GEAR_LED = 1
}
ELSE
{
IF &L_GEAR_POS >= 1 // si le train gauche est en transit
{
&L_GEAR_LED = 0
}
ELSE
{
IF &L_GEAR_POS = 0 // si le train gauche est rentré
{
&L_GEAR_LED = 0
}
}
}
}

Var 0117, name R_GEAR_POS, Link FSUIPC_IN, Offset $0BF0, Length 4 // position train droit
{
IF &R_GEAR_POS = 16383
{
&R_GEAR_LED = 1
}
ELSE
{
IF &R_GEAR_POS >= 1
{
&R_GEAR_LED = 0
}
ELSE
{
IF &R_GEAR_POS = 0
{
&R_GEAR_LED = 0
}
}
}
}

Var 0118, name NOSE_GEAR_POS, Link FSUIPC_IN, Offset $0BEC, Length 4 // position train avant
{
IF &NOSE_GEAR_POS = 16383 // si le train avant est sorti
{
&NOSE_GEAR_LED = 1
&GEAR_TRANS_LED = 0
}
ELSE
{
IF &NOSE_GEAR_POS >= 1 // si le train avant est en transit
{
&NOSE_GEAR_LED = 0
&GEAR_TRANS_LED = 1
}
ELSE
{
IF &NOSE_GEAR_POS = 0 // si le tain avant est rentré
{
&NOSE_GEAR_LED = 0
&GEAR_TRANS_LED = 0
}
}
}
}

Var 0111, name NOSE_GEAR_LED, Link IOCARD_OUT, Output 11 // led train avant

Var 0112, name L_GEAR_LED, Link IOCARD_OUT, Output 12 // led train gauche

Var 0113, name R_GEAR_LED, Link IOCARD_OUT, Output 13 // led train droit

Var 0114, name GEAR_TRANS_LED, Link IOCARD_OUT, Output 14 // led train TRANSIT

Var 0115, name GEAR_SW, Link IOCARD_SW, Input 11 // commande de train
{
IF &GEAR_SW = 1
{
&GEAR = 16383
}
ELSE
{
&GEAR = 0
}
}


Et ça me donne exactement la même chose sur mon module de train.
Alors es-ce qu'il y a un intérêt à répéter le code de la led de transit pour chaque train?

Re: Correction de mon code de train

MessagePosté: Mar 9 Aoû 2011 14:03
de remont
Ce type de code qui rappelle l'état de la LED transit respecte à mon sens la logique de l'avioneur, qui code son état en fonction de la position de chaque train de l'avion.
Sur nos simulateur, vu que la panne ou la sortie d'un seul train n'est pas simulée (je crois gratgrat ), coder une seule fois la LED transit est sufisant car les trains seront tous en même temps en transit ou pas.

Bon, au vu de la taille du fichier de prog et de ce que sait faire SIOC, autant garder le code initial lolaffiche

Bises.

Re: Correction de mon code de train

MessagePosté: Mar 9 Aoû 2011 15:00
de FiX
merci!

Re: Correction de mon code de train

MessagePosté: Mar 9 Aoû 2011 18:32
de Boutondair
Fix,

Bien que tu n'arrives pas à résoudre certains de tes posts (malheureusement !!!!) tu n'es pas un novice de ce forum pour autant, donc lorsque tu veux marquer que le post est résolu c'est c'est dans le premier message qu'il faut cocher la case résolu tapebaton tapebaton

lolaffiche

Pour ta question, moi j'opterais tout de suite pour le premier au cas ou un jour il y ait une possibilité de creer des pannes sur le train !! au moins le code SIOC serait pret lui chouettedoights

à bientôt, David cligneoeil

Re: Correction de mon code de train

MessagePosté: Mar 9 Aoû 2011 18:39
de FiX
oups... yeuxhaut