Air-Cockpit
Air-Cockpit
Air-Cockpit
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Air-Cockpit

Echange et partage entre créateurs et réalisateurs de simulateurs de vol.
 
AccueilDernières imagesS'enregistrerConnexion
Aircokpit est définitivement transféré à sa nouvelle adresse http://www.aircockpit.com. Ce forum sera bientôt en lecture seule. Voir messages d'annonce dans les sujets ci-dessous. L'équipe AIRCOCKPIT
-20%
Le deal à ne pas rater :
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, 144 Hz, FreeSync ...
399 € 499 €
Voir le deal

 

 [MCP Opencockpits] Mon code sur le PA de la serie Ejet Wilco

Aller en bas 
AuteurMessage
Souf

Souf


Nombre de messages : 23
Date d'inscription : 30/09/2008

[MCP Opencockpits] Mon code sur le PA de la serie Ejet Wilco Empty
MessageSujet: [MCP Opencockpits] Mon code sur le PA de la serie Ejet Wilco   [MCP Opencockpits] Mon code sur le PA de la serie Ejet Wilco EmptySam 1 Nov - 13:24

Bonjour à tous,

Voici le code que j'ai pu écrire concernant le Pilote Auto de la série Ejet de chez WilcoPub. Plusieurs difficultés quand même:
- je n'arrive pas à limiter l'excursion du V/S entre -6000ft/min et +6000ft/min
- je n'ai pas mis d'allumage de led sur cette version-ci en attendant de créer un modèle plus réaliste encore

Dans le sioc.ini correspondant voici les attributions de clé:

#45: Appui bouton CMDA/B
#46: Commutateur A/T arm
#47: Appui bouton FLCH
#48: Appui bouton VNAV
#49: Appui bouton HDGSEL
#50: Appui bouton NAV MODE
#51: Appui bouton APP
#52: Appui bouton ALTHLD
#53: Appui bouton Change Over
#54: Appui bouton V/S


Et voici le code à proprement parler:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Var 0000 Value 0
{
&D_COURSE1 = -999999
&D_COURSE2 = -999999
&D_ALT = -999999
&D_HDG = -999999
&D_IAS = -999999
&D_VS = -999999

&BATT = 0
&I_CO = 0
&CALC_VS = 0


}




Var 1 name Key Link KEYS

Var 3 name COLDNDARK


Var 0076, name O_DECIMAL, Link IOCARD_OUT, Output 20
Var 0078, name O_N1, Link IOCARD_OUT, Output 21
Var 0080, name O_AT, Link IOCARD_OUT, Output 22
Var 0082, name O_SPDLed, Link IOCARD_OUT, Output 23
Var 0084, name O_LVLCHG, Link IOCARD_OUT, Output 24
Var 0086, name O_VNAV, Link IOCARD_OUT, Output 25
Var 0088, name O_HDGHLDLed, Link IOCARD_OUT, Output 26
Var 0090, name O_APP, Link IOCARD_OUT, Output 27
Var 0092, name O_VORLOC, Link IOCARD_OUT, Output 28
Var 0094, name O_LNAV, Link IOCARD_OUT, Output 29
Var 0096, name O_ALTHLD, Link IOCARD_OUT, Output 30
Var 0098, name O_VS, Link IOCARD_OUT, Output 31
Var 0100, name O_CWSA, Link IOCARD_OUT, Output 32
Var 0102, name O_CMDA, Link IOCARD_OUT, Output 33
Var 0104, name O_CWSB, Link IOCARD_OUT, Output 34
Var 0106, name O_CMDB, Link IOCARD_OUT, Output 35


Var 0054, name T_IAS
Var 0056, name T_MACH


Var 0010, name APD_HDG, Link FSUIPC_INOUT, Offset $07CC, Length 2 // APD_HDG

Var 0011, name BATT, Link FSUIPC_INOUT, offset $281C, length 4 // Interrupteur Batterie
{
IF &BATT = 0
{
&COLDNDARK = 0

&O_DECIMAL = 0
&O_N1 = 0
&O_AT = 0
&O_SPDLed = 0
&O_LVLCHG = 0
&O_VNAV = 0
&O_HDGHLDLed = 0
&O_APP = 0
&O_VORLOC = 0
&O_LNAV = 0
&O_ALTHLD = 0
&O_VS = 0
&O_CWSA = 0
&O_CMDA = 0
&O_CWSB = 0
&O_CMDB = 0

&I_CO = 0

&D_COURSE1 = -999999
&D_IAS = -999999
v68 = -999999
&D_VS = -999999
&D_ALT = -999999
}
ELSE
{
&COLDNDARK = 1
&D_COURSE1 = 0

&D_IAS = &APD_IAS

L0 = &APD_HDG / 182.04444
&D_HDG = L0

&CALC_VS = 0
&D_VS = &APD_VS

L0 = &APD_ALT * 0.00005006164
&D_ALT = L0
}
}

Var 0018, name APD_ALT, Link FSUIPC_INOUT, Offset $07D4, Length 4 // APD_ALT
Var 0020, name AP_MACH, Link FSUIPC_INOUT, Offset $07E4, Length 4 // AP_MACH


Var 0023, name ON_GROUND, Link FSUIPC_IN, offset $0366, Length 2 // =1 si a/c au sol


Var 0030, Link FSUIPC_INOUT, Offset $2EE0, Length 4 // AP_FD



Var 0040, name APD_COURSE1, Link FSUIPC_INOUT, Offset $0C4E, Length 2 // APD_COURSE1
Var 0042, name APD_COURSE2, Link FSUIPC_INOUT, Offset $0C5E, Length 2 // APD_COURSE2



Var 0066, name D_IAS, Link IOCARD_DISPLAY, Digit 3, Numbers 3
Var 0068, name D_HDG, Link IOCARD_DISPLAY, Digit 6, Numbers 3
{
IF &COLDNDARK = 1
{
L1 = &D_HDG * 182.04444
L0 = L1 + 1
&APD_HDG = L0
}
}



/////////////////////////////// APP BUTTON /////////////////////////////
Var 0140, name IP_APP, Link IOCARD_SW, Input 24
{
IF &COLDNDARK = 1
{
IF &IP_APP = 1
{
&Key = 51
&Key = 0
}
}
}






///////////////////// FLCH BUTTON ////////////////////////////////
Var 0148, name I_LVLCHG, Link IOCARD_SW, Input 29
{
IF &COLDNDARK = 1
//IF &ON_GROUND = 0
{
IF &I_LVLCHG = 1
{
&Key = 47
&Key = 0
}
}
}










////////////////////// VNAV BUTTON ///////////////////////////////
Var 0150, name I_VNAV, Link IOCARD_SW, Input 30
{
IF &COLDNDARK = 1
//IF &ON_GROUND = 0
{
IF &I_VNAV = 1
{
&Key = 48
&Key = 0
}
}
}








//////////////////////// AT ARM ///////////////////////////
Var 0057, name I_AT, Link IOCARD_SW, Input 33 // Entrée interrupteur A/T arm
{
IF &COLDNDARK = 1
{
IF &I_AT = 1
{
&Key = 46
&Key = 0
}
ELSE
{
&Key = 46
&Key = 0
}
}
}


//////////////////////////////// CRS ////////////////////////////
Var 0064, name D_COURSE1, Link IOCARD_DISPLAY, Digit 0, Numbers 3
{
IF &COLDNDARK = 1
{
&APD_COURSE1 = &D_COURSE1
}
}
Var 0074, name D_COURSE2, Link IOCARD_DISPLAY, Digit 19, Numbers 3
{
IF &COLDNDARK = 1
{
&APD_COURSE2 = &D_COURSE2
}
}
Var 0112, name E_COURSE1, Link IOCARD_ENCODER, Input 4, Aceleration 4, Type 2
{
IF &COLDNDARK = 1
{
L0 = &E_COURSE1 * -1
&D_COURSE1 = ROTATE 0 ,359 ,L0
}
}


///////////////////////////// FD //////////////////////////////

Var 0126, name I_FD1, Link IOCARD_SW, Input 16
{
IF &COLDNDARK = 1
{
IF &I_FD1 = 1
{
V0030 = 1
}
ELSE
{
V0030 = 0
}
}
}










//////////////////// SPEED ///////////////////////

Var 4633 name I_SPEED Link IOCARD_SW Input 31 Type I // = OC SPD Button


Var 0108, name E_IAS, Link IOCARD_ENCODER, Input 0, Aceleration 4, Type 2
{
IF &COLDNDARK = 1
{
IF &I_CO = 0
{
L0 = &E_IAS * -1
&T_IAS = &APD_IAS
&T_IAS = LIMIT 100 ,360 ,L0
&O_DECIMAL = 0
&D_IAS = &T_IAS
&APD_IAS = &T_IAS
}
ELSE
{
L0 = &E_IAS * -1
&T_MACH = &APD_MACH * 0.00152587890625 // Conversion MACH -> DIGIT
&T_MACH = LIMIT 0 ,99 ,L0
&O_DECIMAL = 1
&D_IAS = &T_MACH
&APD_MACH = &T_MACH / 0.00152587890625 // Conversion DIGIT -> MACH
}
}
}



Var 0120, name I_CO, Link IOCARD_SW, Input 13, Type P // O/C INPUT SWITCH
{
IF &COLDNDARK = 1
{
IF &I_CO = 0
{
&Key = 53
&Key = 0
&O_DECIMAL = 0
&D_IAS = &APD_IAS
}
ELSE
{
&Key = 53
&Key = 0
&O_DECIMAL = 1
&D_IAS = &APD_MACH * 0.00152587890625 // Conversion MACH -> DIGIT
}
}
}






Var 0016, name APD_IAS, Link FSUIPC_INOUT, Offset $07E2, Length 2 // APD_IAS
{
IF &COLDNDARK = 1
{
IF &I_CO = 0
{
&O_DECIMAL = 0
&D_IAS = &APD_IAS
}
}
}

Var 0022, name APD_MACH, Link FSUIPC_INOUT, Offset $07E8, Length 4 // APD_MACH
{
IF &COLDNDARK = 1
{
IF &I_CO = 1
{
&O_DECIMAL = 1
&D_IAS = &APD_MACH * 0.00152587890625
}
}
}










//////////////////////////////// HDG /////////////////////////////
Var 4630 name I_HDGSEL Link IOCARD_SW Input 28 Type I // = OC HDG SEL button
{
IF &COLDNDARK = 1
{
IF &I_HDGSEL = 1
{
&Key = 49
&Key = 0
L0 = &APD_HDG / 182.04444
v68 = L0
}
}
}


Var 0114, name E_HDG, Link IOCARD_ENCODER, Input 6, Aceleration 4, Type 2
{
IF &COLDNDARK = 1
{
L0 = &E_HDG * -1
&D_HDG = ROTATE 0 ,359 ,L0
}
}









//////////////////////////////// NAV BUTTON //////////////////////
Var 0144, name I_NAV, Link IOCARD_SW, Input 27
{
IF &COLDNDARK = 1
{
IF &I_NAV = 1
{
&Key = 50
&Key = 0
}
}
}












/////////////////////////////// CMD/CWS /////////////////////////


Var 0130, name I_CMDB, Link IOCARD_SW, Input 19
{
IF &COLDNDARK = 1
IF &ON_GROUND = 0
{
IF &I_CMDB = 1
{
&Key = 45
&Key = 0
}
}
}

Var 0134, name I_CMDA, Link IOCARD_SW, Input 21
{
IF &COLDNDARK = 1
IF &ON_GROUND = 0
{
IF &I_CMDA = 1
{
&Key = 45
&Key = 0
}
}
}





/////////////////////////////// ALT SELECTION //////////////////////////////

Var 0117, name E_ALT, Link IOCARD_ENCODER, Input 2, Aceleration 1, Type 2
{
IF &COLDNDARK = 1
{
L0 = &E_ALT * -100
&D_ALT = LIMIT 0 ,50000 ,L0
}
}

Var 4639 name I_ALTHLD Link IOCARD_SW Input 23 Type I // = OC ALT Button
{
IF &COLDNDARK = 1
{
IF &I_ALTHLD = 1
{
&Key = 52
&Key = 0
}
}
}






Var 0070, name D_ALT, Link IOCARD_DISPLAY, Digit 9, Numbers 5
{
IF &COLDNDARK = 1
{
L0 = &D_ALT * 19975.37
&APD_ALT = L0
}
}










/////////////////////////////// VS //////////////////////////////

Var 0026, name APD_VS, Link FSUIPC_INOUT, Offset $07F2, Length 2 // D_V/S
{
IF &COLDNDARK = 1
{
L0 = &APD_VS // IN L0 THE VALUE
C0 = TESTBIT &APD_VS ,15 // It verifies if he is

Negative
IF C0
{
&D_VS = L0 - 65536 // he is negative
}
ELSE
{
&d_VS = L0 // is not negative
}
}
}




Var 0072, name D_VS, Link IOCARD_DISPLAY, Digit 14, Numbers 5
Var 0073, name CALC_VS
Var 0075, name CALC_bis
Var 0008, name VSMINUSd, Link IOCARD_DISPLAY, Digit 18, Numbers 1
Var 0118, name E_VS, Link IOCARD_ENCODER, Input 11, Aceleration 4, Type 2
{
IF &COLDNDARK = 1
IF &E_VS <> 0
{
&CALC_VS = &E_VS * -100
L0 = &CALC_VS + &APD_VS

&APD_VS = L0
}
}


Var 4636 name I_VS Link IOCARD_SW Input 22 Type I // = OC V/S Button
{
IF &COLDNDARK = 1
{
IF &I_VS = 1
{
&Key = 54
&Key = 0
&CALC_VS = 0
}
}
}
Revenir en haut Aller en bas
 
[MCP Opencockpits] Mon code sur le PA de la serie Ejet Wilco
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [MCP Opencockpits] Mon code sur le FCU A3xx de chez Wilco
» transpondeur
» Pour ceux qui code en SIOC

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Air-Cockpit :: Réalisations électronique :: Programmations Pics , Sioc et autres-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser