Routines Pinnules instruments NAV
 Posté: Mar 19 Fév 2013 11:37
Posté: Mar 19 Fév 2013 11:37Bonjour,
Je met à disposition les routines que j'ai écrites pour le réglage des instruments NAV :
- Calage altimétrique.
- OBS VOR1 (sur HSI).
- OBS VOR2
- OBS ADF1
- Heading PA (sur HSI)
- DECISION_HEIGHT sur radar d'altitude
- Il y a sûrement des simplifications possibles par-ci, par-là ... merci du retour si vous en trouvez 
 
- Je les ai testées une par une et je n'ai pas encore fait le montage de tous les encodeurs, mais il ne devrait pas y avoir de Pb à ce niveau.
- Je vais utiliser un panel provisoire avec des encodeurs CTS288 pour le moment, n'ayant pas encore de solution pour intégrer de petits encodeurs entre façade et écran ...
- Bien sûr, il vous faudra éventuellement changer les n° de variables et plus sûrement le n° des entrées carte master pour les encodeurs.
Bonne lecture !
Edit : Nouvelle version avec "ROTATE" et "LIMIT" qui s'implifie au max le code !!!
Merci BOB
			Je met à disposition les routines que j'ai écrites pour le réglage des instruments NAV :
- Calage altimétrique.
- OBS VOR1 (sur HSI).
- OBS VOR2
- OBS ADF1
- Heading PA (sur HSI)
- DECISION_HEIGHT sur radar d'altitude
- Il y a sûrement des simplifications possibles par-ci, par-là ... merci du retour si vous en trouvez
 
 - Je les ai testées une par une et je n'ai pas encore fait le montage de tous les encodeurs, mais il ne devrait pas y avoir de Pb à ce niveau.
- Je vais utiliser un panel provisoire avec des encodeurs CTS288 pour le moment, n'ayant pas encore de solution pour intégrer de petits encodeurs entre façade et écran ...
- Bien sûr, il vous faudra éventuellement changer les n° de variables et plus sûrement le n° des entrées carte master pour les encodeurs.
Bonne lecture !
- Code: Tout sélectionner
- //
 // *****************************************************************
 // *********** Routines pinnules Instruments NAV v2.0 **************
 // *********** Pierre ROTH (pierre01) le 20-02-2013 ***************
 // Remarques :
 // - Quand je multiplie par "1", c'est en prévision d'une éventuelle inversion de sens (par -1).
 // - Le paramètre "aceleration" 1, 2, 3 ... sert à faire avancer la pinnule plus vite quand on tourne
 // l'encodeurs rapidement. Ce qui n'influence en rien la précision, faire des essais pour chaque routine.
 // Par défaut, il est positionné à "1" pour toutes les routines.
 //
 //
 // Réglage altimètre, offset $0330 : 15168 à 17344 par pas de 5 avec la souris
 // Par pas de 3 (routine) de 15168 à 17344
 //
 Var 4300, name fs_pin_alt, link FSUIPC_INOUT, Offset $0330, Length 2 // "Altimeter pressure setting"
 Var 4302, name ec_pin_alt, Link IOCARD_ENCODER, Input 109, type 2, Aceleration 1 // Encodeurs pinnule altimètre (CTS 288)
 {
 L0 = &ec_pin_alt * 3 // Mettre "-" pour inverser le sens de rotation. Le pas est de 3 (normalement 5 avec la souris)
 &fs_pin_alt = LIMIT 15168, 17344, L0 // On écrit la nouvelle valeur
 }
 //
 // OBS NAV1 (ILS) offset : $0C4E de ° en ° de 0 à 359
 //
 Var 4310, name fs_pin_OBS1, link FSUIPC_INOUT, Offset $0C4E, Length 2 // Pinnule OBS1 NAV1 (ILS)
 Var 4312, name ec_pin_OBS1, Link IOCARD_ENCODER, Input 111, type 2, Aceleration 1 // Encodeurs pinnule OBS1 NAV1 (ILS)
 {
 &fs_pin_OBS1 = ROTATE 0, 359, &ec_pin_OBS1 // On écrit la nouvelle valeur
 }
 //
 // OBS VOR2 offset : $0C5E de ° en ° de 0 à 359
 //
 Var 4320, name fs_pin_OBS2, link FSUIPC_INOUT, Offset $0C5E, Length 2 // Pinnule OBS VOR2 (0C5E)
 Var 4322, name ec_pin_OBS2, Link IOCARD_ENCODER, Input 113, type 2, Aceleration 1 // Encodeurs pinnule VOR2
 {
 &fs_pin_OBS2 = ROTATE 0, 359, &ec_pin_OBS2
 }
 //
 // OBS ADF1 offset : $0C6C de ° en ° de 0 à 359
 //
 Var 4320, name fs_pin_ADF1, link FSUIPC_INOUT, Offset $0C6C, Length 2 // Pinnule OBS ADF1
 Var 4322, name ec_pin_ADF1, Link IOCARD_ENCODER, Input 115, type 2, Aceleration 1 // Encodeurs pinnule ADF1
 {
 &fs_pin_ADF1 = ROTATE 0, 359, &ec_pin_ADF1
 }
 //
 // Pinnule Cap PA sur HSI offset $7CC : "Autopilot heading value, as degrees*65536/360"
 // Par pas de 182 pour 1° (65536 / 360° = 182,04444...)
 //
 Var 4330, name fs_pin_capPA, link FSUIPC_INOUT, Offset $07CC, Length 2 // Pinnule CAP PA sur HSI
 Var 4332, name ec_pin_capPA, Link IOCARD_ENCODER, Input 118, type 2, Aceleration 1 // Encodeurs pinnule CAP PA sur HSI
 {
 L0 = &ec_pin_capPA * 182 // Mettre "-182" pour inverser le sens. Incrément de 1 (0 à 359°)
 &fs_pin_capPA = ROTATE 0, 65535, L0
 }
 
 //
 // Pinnule du radar d'altitude "DECISION_HEIGHT" offset : $3428 de 11 à 762 par pas de 1 (apparement en mètres).
 // La valeur mini 11 de l'offset représente une altitude d'environ 33 feet (11 mètres environ) !
 // - De 33 feet (11 mètres) jusqu'à 500 feet, le pas est de "1".
 // - A partir de 500 feet (150 mètres), le pas est de 10 pour tenir compte de l'échelle différente.
 // La pinnule avance donc à la même vitesse sur toute la plage de réglage.
 //
 Var 4340, name fs_pin_decRAlt, link FSUIPC_INOUT, Offset $3428, Length 8 // Décision radar altitude
 Var 4342, name ec_pin_decRAlt, Link IOCARD_ENCODER, Input 120, type 2, Aceleration 1 // Encodeurs pinnule radar altitude
 {
 IF &fs_pin_decRAlt <= 150 // Zone inférieure de 11 à 150
 {
 L0 = &ec_pin_decRAlt * 1
 &fs_pin_decRAlt = LIMIT 11, 762, L0
 }
 ELSE // Zone supérieure à 150 : échelle différente (10 fois plus grande)
 {
 L0 = &ec_pin_decRAlt * 10
 &fs_pin_decRAlt = LIMIT 11, 762, L0
 }
 }
 //
 // ************** FIN Routines pinnules Instruments NAV ****************
 // *********************************************************************
Edit : Nouvelle version avec "ROTATE" et "LIMIT" qui s'implifie au max le code !!!
Merci BOB