Correction de mon code de train

Questions de programmation / Offset FSUIPC et IOCP

Correction de mon code de train

Messagede FiX » Lun 8 Aoû 2011 17:24

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?
Dernière édition par FiX le Mar 9 Aoû 2011 18:40, édité 1 fois.
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Correction de mon code de train

Messagede remont » Mar 9 Aoû 2011 14:03

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.
Avatar de l’utilisateur
remont
 
Messages: 405
Inscription: 3/02/10
Localisation: France 95

Re: Correction de mon code de train

Messagede FiX » Mar 9 Aoû 2011 15:00

merci!
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Correction de mon code de train

Messagede Boutondair » Mar 9 Aoû 2011 18:32

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
Image Image
Petit je rêvais que je volerais, maintenant grâce au virtuel je vole !!!!!
Avatar de l’utilisateur
Boutondair
Administrateur du site
 
Messages: 4174
Inscription: 20/04/09
Localisation: Ballans (17) proche de Cognac

Re: Correction de mon code de train

Messagede FiX » Mar 9 Aoû 2011 18:39

oups... yeuxhaut
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge


Retourner vers Programmation Sioc





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 28 invités