Je me suis inspiré d'un vieux code que j'avais pour FSX et qui est visible dans le post sur: Nouvelle catégorie ouverte pour les débutants Sioc
JC67 a écrit:Bonsoir,
Voici ma modeste contribution:
Commande du train:
- Code: Tout sélectionner
Var 0001, name COMMANDE_TRAIN, Link FSUIPC_INOUT, Offset $0BE8, Length 4 // COMMANDE TRAIN
Var 0300, name GEAR_SW, Link IOCARD_SW, Device 11, Input 27 // GEAR_SWITCH
{
IF &GEAR_SW = 1
{
&COMMANDE_TRAIN = 0
}
ELSE
{
&COMMANDE_TRAIN = 16383
}
}
Couronne du VOR1 (avec un encodeur rotatif CTS288):
- Code: Tout sélectionner
Var 1, name APD_COURSE1, Link FSUIPC_INOUT, Offset $0C4E, Length 2 // APD_COURSE1
Var 2, name E_COURSE1, Link IOCARD_ENCODER, DEVICE 11, Input 32, Aceleration 4, Type 2
{
L0 = &E_COURSE1 * -1
&APD_COURSE1 = ROTATE 1, 360, L0
}
Couronne du VOR2 (avec un encodeur rotatif CTS288):
- Code: Tout sélectionner
Var 1, name APD_COURSE2, Link FSUIPC_INOUT, Offset $0C5E, Length 2 // APD_COURSE2
Var 2, name E_COURSE2, Link IOCARD_ENCODER, DEVICE 11, Input 30, Aceleration 4, Type 2
{
L0 = &E_COURSE2 * -1
&APD_COURSE2 = ROTATE 1, 360, L0
}
Couronne du cap/HEADING (avec un encodeur rotatif CTS288):
- Code: Tout sélectionner
Var 2000, Value 0 // Initialization
{
&D_HDG = 360
}
Var 2005, name APD_HDG, Link FSUIPC_INOUT, Offset $07CC, Length 2 // APD_HDG
Var 2104, name D_HDG, Link IOCARD_DISPLAY, DEVICE 11, Digit 6, Numbers 3
{
L1 = &D_HDG * 182.04444
L0 = L1 + 1
&APD_HDG = L0
}
Var 2306, name E_HDG, Link IOCARD_ENCODER, DEVICE 11, Input 28, Aceleration 4, Type 2
{
L0 = &E_HDG * -1
&D_HDG = ROTATE 1, 360, L0
}
Réglage de la pression atmosphérique sur l'altimètre (avec un encodeur rotatif CTS288):
- Code: Tout sélectionner
Var 1, name Set_Alti, Link FSUIPC_INOUT, Offset $3110, Length 4 // Set Altimeter(QNH)
Var 2, Link IOCARD_ENCODER, Device 11, Input 23 Aceleration 1 Type 2
{
L0 = v2 // * -1 turning clockwise should be plus
IF L0 > 0
{
v1 = 65883 // FS Control Kohlsman increment
v1 = DELAY 0 10
}
ELSE
{
IF L0 < 0
{
v1 = 65884 // FS Control Kohlsman decrement
v1 = DELAY 0 10
}
}
}
Calage de l'altitude de décision sur le radio altimètre (avec un encodeur rotatif CTS288):
- Code: Tout sélectionner
Var 1, name Set_Alti, Link FSUIPC_INOUT, Offset $3110, Length 4 // SET DECISION HEIGHT
Var 2, Link IOCARD_ENCODER, Device 11, Input 25 Aceleration 1 Type 2
{
L0 = v2 // * -1 turning clockwise should be plus
IF L0 > 0
{
v1 = 66321 // INCREASE DECISION HEIGHT
v1 = DELAY 0 10
}
ELSE
{
IF L0 < 0
{
v1 = 66322 // DECREASE DECISION HEIGHT
v1 = DELAY 0 10
}
}
}
Couronne TAS de l'anémomètre (avec un encodeur rotatif CTS288) [C'est une création de Fabien. Encore merci]
- Code: Tout sélectionner
Var 0001, name DISQUE_CAL, Link FSUIPC_INOUT, Offset $9000, Length 1 // je declare l'offset $9000 comme offset de commande du disque
Var 0002, name TAS_CAL, Link IOCARD_ENCODER, Device 11, Input 34, Aceleration 2, Type 2 // j'utilise la fonction LIMIT pour faire varier la valeur de 0 à 255
{
&DISQUE_CAL = LIMIT 0 ,90 ,&TAS_CAL
}
Le code SIOC de mon MIP (j'utilise AirManager et les jauges de Fabien):
- Code: Tout sélectionner
// *****************************************************************************
// * Config_SIOC ver 4.5 - By Manuel Velez - www.opencockpits.com
// *****************************************************************************
// * FileName : MIP_JC.txt
// * Date : 07/10/2016
// *
// * Encore un grand merci à ceux qui m'ont inspiré et aidé. Vous pouvez les trouver sur les sites suivants:
// * http://www.aircockpit.com/
// * http://fabien.deheegher.free.fr/download/jauges/index.htm
// * http://www.simucockpit.fr/
// * http://www.simubaron.fr/
// * http://p-apou.cockpit.over-blog.com/
// *
// *
// * Ce script n'est pas terminé et évoluera en fonction de l'avancement de mon simulateur.
// * Certaines variables sont présentes mais non actives ou non terminées car je n'ai pas encore fabriqué ou fini les modules.
// *
// *
// * ORGANISATION :
// *
// * Var 0000 : Initialisation
// * Var de 0001 à 0199 : Variables vers FSUIPC ou Internes
// * vAR de 0200 à 0299 : INTERRUPTEURS ET BOUTONS
// * Var de 0300 à 0399 : ROTARY-ENCODERS
// * Var de 0400 à 0499 : Variables Switch
// * Var de 0500 à 0599 : variables non déterminées qui sont gardées en réserve
// * Var de 0600 à 0699 : variables non déterminées qui sont gardées en réserve
// * Var de 0700 à 0799 : Variables OUT (Led, relais...)
// * Var de 1000 à 1499 : Servo-moteur
//********************************
// INITIALISATION
//********************************
Var 0000, Value 0 // INITIALISATION
{
&D_HDG = 360
&DISQUE_CAL = 0
&APD_COURSE1 = 360
&APD_COURSE2 = 360
}
//********************************
// Variables vers FSUIPC ou Internes
//********************************
Var 0001, name COMMANDE_TRAIN, Link FSUIPC_INOUT, Offset $0BE8, Length 4 // COMMANDE TRAIN
Var 0002, name APD_HDG, Link FSUIPC_INOUT, Offset $07CC, Length 2 // APD_HDG
Var 0003, name SET_RALT, Link FSUIPC_INOUT, Offset $3110, Length 4 // SET DECISION HEIGHT
Var 0004, name Set_Alti, Link FSUIPC_INOUT, Offset $3110, Length 4 // Set Altimeter(QNH)
Var 0005, name DISQUE_CAL, Link FSUIPC_INOUT, Offset $9000, Length 1 // DISQUE TAS CALIBRATION je declare l'offset $9000 comme offset de commande du disque
Var 0006, name APD_COURSE1, Link FSUIPC_INOUT, Offset $0C4E, Length 2 // APD_COURSE1
Var 0007, name APD_COURSE2, Link FSUIPC_INOUT, Offset $0C5E, Length 2 // APD_COURSE2
//********************************
// INTERRUPTEURS ET BOUTONS
//********************************
Var 0200, name GEAR_SW, Link IOCARD_SW, Device 11, Input 27 // GEAR_SWITCH
{
IF &GEAR_SW = 1
{
&COMMANDE_TRAIN = 0
}
ELSE
{
&COMMANDE_TRAIN = 16383
}
}
//********************************
// ROTARY-ENCODERS
//********************************
Var 0300, name E_HDG, Link IOCARD_ENCODER, DEVICE 11, Input 28, Aceleration 4, Type 2 // APD_HDG
{
L0 = &E_HDG * -1
&D_HDG = ROTATE 1, 360, L0
}
Var 0301, Link IOCARD_ENCODER, Device 11, Input 25 Aceleration 1 Type 2 // SET DECISION HEIGHT
{
L0 = v0301 // * -1 turning clockwise should be plus
IF L0 > 0
{
v0003 = 66321 // INCREASE DECISION HEIGHT
v0003 = DELAY 0 10
}
ELSE
{
IF L0 < 0
{
v0003 = 66322 // DECREASE DECISION HEIGHT
v0003 = DELAY 0 10
}
}
}
Var 0302, Link IOCARD_ENCODER, Device 11, Input 23 Aceleration 1 Type 2 // SET FS Control Kohlsman
{
L0 = v0302 // * -1 turning clockwise should be plus
IF L0 > 0
{
v0004 = 65883 // FS Control Kohlsman increment
v0004 = DELAY 0 10
}
ELSE
{
IF L0 < 0
{
v0004 = 65884 // FS Control Kohlsman decrement
v0004 = DELAY 0 10
}
}
}
Var 0303, name TAS_CAL, Link IOCARD_ENCODER, Device 11, Input 34, Aceleration 2, Type 2 // SET TAS CALIBRATION j'utilise la fonction LIMIT pour faire varier la valeur de 0 à 255
{
&DISQUE_CAL = LIMIT 0 ,255 ,&TAS_CAL
}
Var 0304, name E_COURSE1, Link IOCARD_ENCODER, DEVICE 11, Input 32, Aceleration 4, Type 2 // APD_COURSE1
{
L0 = &E_COURSE1 * -1
&APD_COURSE1 = ROTATE 1, 360, L0
}
Var 0305, name E_COURSE2, Link IOCARD_ENCODER, DEVICE 11, Input 30, Aceleration 4, Type 2 // APD_COURSE2
{
L0 = &E_COURSE2 * -1
&APD_COURSE2 = ROTATE 1, 360, L0
}
//********************************
// Variables Switch
//********************************
//********************************
// variables non déterminées qui sont gardées en réserve
//********************************
//********************************
// variables non déterminées qui sont gardées en réserve
//********************************
//********************************
// Variables OUT (Led, relais...)
//********************************
Var 0700, name D_HDG, Link IOCARD_DISPLAY, DEVICE 11, Digit 6, Numbers 3
{
L1 = &D_HDG * 182.04444
L0 = L1 + 1
&APD_HDG = L0
}
//********************************
// Servo-moteur
//********************************
Tous ces scripts fonctionnent très bien avec FSX sur mon ordi.
Je suis preneur des conseils des anciens car je débute dans ce domaine.
Cordialement.
JC.
J'ai essayé une accélération à 2 mais ça ne change rien.
Je ne me souviens plus comment j'avais décidé du coefficient multiplicateur.
Il faut que je continue mes recherches (archéologiques...).
Bonne soirée.
Jean-Christophe.