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?