Air-Cockpit Echange et partage entre créateurs et réalisateurs de simulateurs de vol. |
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 |
|
| VS et ADF sioc | |
| | Auteur | Message |
---|
guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: VS et ADF sioc Dim 28 Sep - 20:08 | |
| salut à tous pour ceux qui me connaisse, vous avez du lire mes post au sujet de bug que j'avais (mon pit faisait n'importe quoi) bon bas c'est résolu, je me suis décidé à acheter un usb expansion et ca a tous résolu mon cockpit (enfin si on peut appeler ca comme ca ) est donc fini, reste à peaufiner la programmation il me faudrais pour cela une petite aide pour L'adf, j'utilise deux rotatif ( 1 pour les décimale et unité x.x et l'autre pour les entiers xxx) le tous avec les 7 segments bien sur quel code utilisez vous pour votre ADF qui puisse ressembler à ma configuration? l'autre question est pour la vitesse verticale, je ne parviens pas à la rendre vraiment réaliste : j'ai eu deux cas soit mes 7segmens change avec fs mais je ne plus modifier leur valeur avec mes rotatif soit je peu modifier la valeur mais j'enclenche le pa dans fs la VS prend la valeur 700 mais pas mes afficheur, et quand je tourne mes rotatif la valeur commence à 0 et remet celle de fs également à 0 puis s'increment eou se décrémente en fonction du sens ou je tourne mon rotatif. vous l'aurez compris ce que je rehcerche c'est que mes afficheur affiche la valeur prise pas la VS de fs et que je puisse changer ce réglage avec mes rotatif comme dans la réalité quoi je vous laisse une photo de mopn "cockpit" qui est à des années de lumières de ce qu'on peut voir sur ce forum mais par manque de polace de temps et d'argent je ne puis faire plus pour l'instant malgrés cela j'en suis content car C'EST MOI QUI L'AI FAIT!!! vou pensez que je peut figurer sur la carte avec ca??? | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: VS et ADF sioc Jeu 2 Oct - 13:31 | |
| | |
| | | stevelep
Nombre de messages : 512 Date d'inscription : 16/03/2008 Age : 50 Localisation : Neuchâtel LSGN, Suisse
| Sujet: Re: VS et ADF sioc Jeu 2 Oct - 13:59 | |
| Voila une partie de mon code pour le PA:
A toi de voir ce que tu peux en tirer. Il y a une interressante programmation pour la VS qui fonctionne très bien
Bye
BOB
// 3000 * Autopilot * //
// AP Switch
Var 3100, name sw_apon, Link IOCARD_SW, Input 50 // Autopilot Taster { IF &sw_apon = 0 { IF &fs_apon <> 1 { &fs_apon = 1 } ELSE { &fs_apon = 0 } } CALL &apsys } Var 3102, name sw_apfd, Link IOCARD_SW, Input 53 // Flight Director Taster { IF &sw_apfd = 1 { IF &fs_apfd <> 1 { &fs_apfd = 1 } ELSE { &fs_apfd = 0 } } CALL &apsys } Var 3104, name sw_apyaw, Link IOCARD_SW, Input 52 // Yaw Damper Switch { &fs_apyaw = &sw_apyaw CALL &apsys } Var 3105, name sw_aphdg, Link IOCARD_SW, Input 51 // mode HDG { IF &sw_aphdg = 1 { IF &fs_aphdg <> 1 { &fs_aphdg = 1 } ELSE { &fs_aphdg = 0 } } CALL &apsys } Var 3106, name sw_apnav, Link IOCARD_SW, Input 45 // mode NAV { IF &sw_apnav = 1 { IF &fs_apnav <> 1 { &fs_apnav = 1 } ELSE { &fs_apnav = 0 } } CALL &apsys } Var 3107, name sw_aprev, Link IOCARD_SW, Input 68 // mode REV/BC { IF &sw_aprev = 1 { IF &fs_aprev <> 1 { &fs_aprev = 1 } ELSE { &fs_aprev = 0 } } CALL &apsys } Var 3108, name sw_apalt, Link IOCARD_SW, Input 69 // mode ALT { IF &sw_apalt = 1 { IF &fs_apalt <> 1 { &fs_apalt = 1 } ELSE { &fs_apalt = 0 } } CALL &apsys } Var 3109, name sw_apapp, Link IOCARD_SW, Input 59 // mode APP { IF &sw_apapp = 1 { IF &fs_apapp <> 1 { &fs_apapp = 1 } ELSE { &fs_apapp = 0 } } CALL &apsys }
Var 3110, name sw_apvs, Link IOCARD_SW, Input 60 // not implemented yet Var 3111, name sw_navgps, Link IOCARD_SW, Input 238 // A/P remote NAV<>GPS { CALL &apsys } Var 3112, name sw_nav12, Link IOCARD_SW, Input 237 // A/P remote NAV1<>NAV2 { CALL &apsys }
// Encodeurs
Var 3120, name ec_alt, Link IOCARD_ENCODER, Input 70, Aceleration 4, Type 2 // ALT encoder { L0 = &ec_alt * 100 &d_alt = LIMIT 0 ,50000 ,L0 } Var 3122, name ec_vs, Link IOCARD_ENCODER, Input 61, Aceleration 2, Type 2 // VS encoder { L0 = &ec_vs * 100 &d_vs = LIMIT -9000 ,9000 ,L0 &ap_counter = 0 &fs_vsval = &d_vs }
// Value vars
Var 3130, name d_alt { L0 = &d_alt * 19975.37 // send alt value to FS &fs_altval = L0 } Var 3131, name d_vs { CALL &apsys } Var 3132, name d_hdg { CALL &apsys } Var 3133, name d_nav { CALL &apsys }
// Subrutines for AP System
Var 3200, name apsys, Link SUBRUTINE
{ &fs_gpsnav = &sw_navgps
L0 = &sw_nav12 + 1 &fs_nav12 = L0 * 256
IF &fs_gpsnav = 1 // mode GPS { &d_nav = -999998 } ELSE // mode NAV { IF &fs_nav12 = 256 { L0 = &fs_obs1 // NAV1 L0 = LIMIT 0, 360, 0 &d_nav = L0 } ELSE { L0 = &fs_obs2 // NAV2 L0 = LIMIT 0, 360, 0 &d_nav = L0 } } CALL &avionicsys }
Var 3210, name ap_checker, Link SUBRUTINE { &ap_counter = &ap_counter + 1 IF &ap_counter > 10000 { &ap_counter = 1000 } ELSE { IF &ap_counter > 4 { IF &fs_vsval <> &d_vs { &d_vs = &fs_vsval } } } }
Var 3211, name ap_counter
// A/P FS Send
Var 3300, name fs_apon, Link FSUIPC_INOUT, Offset $07BC, Length 4 // A/P Master RW { CALL &apsys } Var 3301, name fs_apfd, Link FSUIPC_INOUT, Offset $2ee0, Length 4 // Flight Director RW { CALL &apsys } Var 3302, name fs_apyaw, Link FSUIPC_INOUT, Offset $0808, Length 4, Value 0 // Yaw Damper RW { CALL &apsys } Var 3303, name fs_aphdg, Link FSUIPC_INOUT, Offset $07c8, Length 4, Value 0 // A/P HDG RW { CALL &apsys } Var 3304, name fs_apnav, Link FSUIPC_INOUT, Offset $07c4, Length 4, Value 0 // A/P NAV RW { CALL &apsys } Var 3305, name fs_apalt, Link FSUIPC_INOUT, Offset $07d0, Length 4, Value 0 // A/P ALT RW { CALL &apsys } Var 3306, name fs_apvs, Link FSUIPC_INOUT, Offset $07ec, Length 2, Value 0 // A/P VS RW (NOT WORKING ?) { CALL &apsys } Var 3307, name fs_apapp, Link FSUIPC_INOUT, Offset $0800, Length 4, Value 0 // A/P APP RW { CALL &apsys } Var 3308, name fs_aprev, Link FSUIPC_INOUT, Offset $0804, Length 4, Value 0 // A/P BC/REV RW { CALL &apsys }
Var 3309, name fs_hdg, Link FSUIPC_INOUT, Offset $07cc, Length 2 // A/P HDG value RW { L0 = &fs_hdg * 360 L0 = L0 / 65536 L0 = LIMIT 0, 360, 0 &d_hdg = L0 CALL &apsys }
Var 3310, name fs_obs1, Link FSUIPC_IN, Offset $0c4e, Length 2 // A/P NAV1 value = NAV 1 OBS R { CALL &apsys }
Var 3311, name fs_obs2, Link FSUIPC_IN, Offset $0c5e, Length 2 // A/P NAV2 value = NAV 2 OBS R { CALL &apsys }
Var 3312, name fs_altval, Link FSUIPC_INOUT, Offset $07d4, Length 4, Value 0 // A/P ALT value RW { CALL &apsys }
Var 3313, name fs_vsval, Link FSUIPC_INOUT, Offset $07f2, Length 2, Type 1, Value 0 // A/P VS value RW { CALL &apsys }
Var 3314, name fs_gpsnav, Link FSUIPC_INOUT, Offset $132c, Length 4, Value 0 // switch APNAV between nav & gps source { CALL &apsys }
Var 3315, name fs_nav12, Link FSUIPC_INOUT, Offset $0374, Length 2, Value 256 // switch APNAV source from nav1=256 or nav=512 { CALL &apsys }
// AP Lights
Var 3500, name l_apon, Link IOCARD_OUT, Output 169 Var 3501, name l_apfd, Link IOCARD_OUT, Output 167 Var 3502, name l_apyaw, Link IOCARD_OUT, Output 176 Var 3503, name l_aphdg, Link IOCARD_OUT, Output 234 Var 3504, name l_apnav, Link IOCARD_OUT, Output 232 Var 3505, name l_aprev, Link IOCARD_OUT, Output 230 Var 3506, name l_apalt, Link IOCARD_OUT, Output 228 Var 3507, name l_apapp, Link IOCARD_OUT, Output 226 Var 3508, name l_apvs, Link IOCARD_OUT, Output 224
// AP Display
Var 3600, name dp_hdg, Link IOCARD_DISPLAY, Digit 0, Numbers 3 Var 3601, name dp_nav, Link IOCARD_DISPLAY, Digit 3, Numbers 3 Var 3602, name dp_alt, Link IOCARD_DISPLAY, Digit 6, Numbers 5 Var 3603, name dp_vs, Link IOCARD_DISPLAY, Digit 11, Numbers 5 | |
| | | F-DEUZ
Nombre de messages : 208 Date d'inscription : 21/03/2008 Age : 67 Localisation : MANOSQUE
| Sujet: Re: VS et ADF sioc Ven 3 Oct - 14:25 | |
| Salut tout le monde, Ca ressemble un peu a ce que j'avais avant de démonter. Voilà le code fortement tiré de Simucockpit ou simubaron je sais plus. Si ca peut t'aider : Var 0800, Value 18 // init entiers COM1 { CALL V0814 }
Var 0804, Value 0 // init decimale COM1 { CALL V0814 }
Var 0806, name Enc_Com1_EN, Link IOCARD_ENCODER, Input 24, Aceleration 2, Type 2 // Encoder COM1 entiers { V0800 = ROTATE 18 ,36 ,&Enc_Com1_EN }
Var 0808, name Enc_Com1_DC, Link IOCARD_ENCODER, Input 22, Aceleration 2, Type 2 // Encoder Com1 decimales { L0 = &Enc_Com1_DC * -25 V0804 = V0804 - L0 IF V0804 > 975 { V0804 = 0 } IF V0804 < 0 { V0804 = 975 } }
Var 0809, name SR_Com1, Link SUBRUTINE // Sous Routine Com1
Var 0810, name Dis_Com1, Link IOCARD_DISPLAY, Digit 0, Numbers 5
Var 0812, name FS_Com1, Link FSUIPC_OUT, Offset $034E, Length 2 // Envoi Com1 a FS { &Dis_Com1 = FROMBCD &FS_Com1 }
Var 0814, Link SUBRUTINE // Montee Frequence Com1 { L0 = V0800 * 1000 L0 = L0 + V0804 &Dis_Com1 = DIV L0 ,10 &Dis_Com1 = TRUNC &Dis_Com1 &FS_Com1 = TOBCD &Dis_Com1 }
Var 0834, Value 24 // Init entiers COM2 { CALL V0846 }
Var 0836, Value 0 // Init decimales COM2 { CALL V0846 }
Var 0838, name Enc_Com2_EN, Link IOCARD_ENCODER, Input 34, Aceleration 2, Type 2 // Encodeur entiers Com2 { V0834 = ROTATE 18 ,36 ,&Enc_Com2_EN }
Var 0840, name Enc_Com2_DC, Link IOCARD_ENCODER, Input 30, Aceleration 2, Type 2 // Encodeur decimales COM2 { L0 = &Enc_Com2_DC * 25 V0836 = V0836 - L0 IF V0836 > 975 { V0836 = 0 } IF V0836 < 0 { V0836 = 975 } }
Var 0841, Link SUBRUTINE // Sous routine COM2
Var 0842, name Disp_Com2, Link IOCARD_DISPLAY, Digit 5, Numbers 5 // Affichage Com2
Var 0844, name FS_Com2, Link FSUIPC_OUT, Offset $3118, Length 2 // Envoi Freq Com2 a FS
Var 0846, Link SUBRUTINE // Montagne Freq COM2 { L0 = V0834 * 1000 L0 = L0 + V0836 &Disp_Com2 = DIV L0 ,10 &Disp_Com2 = TRUNC &Disp_Com2 &FS_Com2 = TOBCD &Disp_Com2 }
Var 0866, Value 10 // Valeur INITIALE entiers NAV1 - 110 { CALL &SR_Freq_Nav1 }
Var 0868, Value 300 // Valeur intiale decimales NAV1 -300 { CALL &SR_Freq_Nav1 }
Var 0870, name Enc_Nav1_EN, Link IOCARD_ENCODER, Input 20, Aceleration 2, Type 2 // Encodeur Entiers NAV1 { V0866 = ROTATE 8 ,17 ,&Enc_Nav1_EN }
Var 0872, name Enc_Nav1_DC, Link IOCARD_ENCODER, Input 18, Aceleration 2, Type 2 // Encodeur Decimales Nav1 { L0 = &Enc_Nav1_DC * -50 V0868 = V0868 - L0 IF V0868 > 950 { V0868 = 0 } IF V0868 < 0 { V0868 = 950 } }
Var 0874, name Disp_Nav1, Link IOCARD_DISPLAY, Digit 10, Numbers 5 // Affichage NAV1
Var 0876, name FS_Nav1, Link FSUIPC_OUT, Offset $0350, Length 2 // Envoi Nav1 à FS
Var 0878, name SR_Freq_Nav1, Link SUBRUTINE // SR Montage frequence Nav1 { L0 = V0866 * 1000 L0 = L0 + V0868 &Disp_Nav1 = DIV L0 ,10 &Disp_Nav1 = TRUNC &Disp_Nav1 &FS_Nav1 = TOBCD &Disp_Nav1 }
Var 0898, Value 17 // Initialisation entiers NAV 2 { CALL V0910 }
Var 0900, Value 300 // Initialisation decimales NAV2 { CALL V0910 }
Var 0902, name Enc_Nav2_EN, Link IOCARD_ENCODER, Input 32, Aceleration 2, Type 2 // Encoder Nav2 Entiers { V0898 = ROTATE 8 ,17 ,&Enc_Nav2_EN }
Var 0904, name Enc_Nav2_DC, Link IOCARD_ENCODER, Input 28, Aceleration 2, Type 2 // Encodeur decimales Nav2 { L0 = &Enc_Nav2_DC * 50 V0900 = V0900 - L0 IF V0900 > 950 { V0900 = 0 } IF V0900 < 0 { V0900 = 950 } }
Var 0906, name Disp_Nav2, Link IOCARD_DISPLAY, Digit 16, Numbers 5 // Affichage frequence Nav2
Var 0908, name Fs_Nav2, Link FSUIPC_OUT, Offset $0352, Length 2 // Envoi frequence Nav2 à FS
Var 0910, Link SUBRUTINE // Montage de la frequence NAV2 { L0 = V0898 * 1000 L0 = L0 + V0900 &Disp_Nav2 = DIV L0 ,10 &Disp_Nav2 = TRUNC &Disp_Nav2 &Fs_Nav2 = TOBCD &Disp_Nav2 }
Var 0920, name ADF_HIGH_VAR, Link FSUIPC_INOUT, Offset $034C, Length 2 // Variable chiffres supérieurs ADF { L0 = FROMBCD &ADF_HIGH_VAR IF &ADF_HIGH <> L0 { &ADF_HIGH = L0 } }
Var 0922, name ADF_LOW_VAR, Link FSUIPC_INOUT, Offset $0356, Length 2 // Variable ADF chiffres inférieurs { IF &ADF_LOW_VAR <> &ADF_LOW { &ADF_LOW = &ADF_LOW_VAR } }
Var 0924, name ADF_CALC, Link SUBRUTINE // Calcul affichage ADF (by Nico) { L0 = &ADF_HIGH * 10 // high * 10 L0 = L0 + &ADF_LOW // + dec &ADF_DIS = L0 // to display L1 = MOD L0 ,10 // decimal digit IF L1 <> &ADF_LOW_VAR { &ADF_LOW_VAR = L1 // decimal digit to fsuipc } L0 = DIV L0 ,10 L1 = TOBCD L0 IF L1 <> &ADF_HIGH_VAR { &ADF_HIGH_VAR = L1 // higher 3 digits in bcd to fsuipc } &ADF_DP_LED = 1 }
Var 0926, name ADF_LOW_ROT, Link IOCARD_ENCODER, Input 14, Aceleration 4, Type 2 // Encodeur chiffres inférieurs ADF { L0 = &ADF_LOW_ROT * 5 // steps of 5 &ADF_LOW_R = ROTATE 0 ,99 ,L0 }
Var 0928, name ADF_HI_ROT, Link IOCARD_ENCODER, Input 37, Aceleration 4, Type 2 // Encodeur chiffres supérieurs ADF { L0 = &ADF_HI_ROT &ADF_HIGH_R = ROTATE 20 ,99 ,L0 }
Var 0930, name ADF_DIS, Link IOCARD_DISPLAY, Digit 21, Numbers 5 // Affichage ADF
Var 0932, name ADF_DP_LED, Link IOCARD_OUT, Output 28 // Point décimal ADF
Var 0933, name SW_ADF_SWAP, Link IOCARD_SW, Input 27, Type P // Bouton Swap ADF { &JoyStick64 = CHANGEBIT 27 ,&SW_ADF_SWAP }
Var 0934, name ADF_HIGH { L0 = &ADF_HIGH L1 = DIV L0 ,10 IF &ADF_HIGH_R <> L1 { &ADF_HIGH_R = L1 CALL &ADF_CALC } L1 = MOD L0 ,10 L1 = L1 * 10 L0 = &ADF_LOW L1 = L1 + L0 IF &ADF_LOW_R <> L1 { &ADF_LOW_R = L1 CALL &ADF_CALC } }
Var 0936, name ADF_LOW { L0 = &ADF_HIGH L0 = MOD L0 ,10 L0 = L0 * 10 L1 = &ADF_LOW L0 = L0 + L1 IF &ADF_LOW_R <> L0 { &ADF_LOW_R = L0 CALL &ADF_CALC } }
Var 0938, name ADF_HIGH_R { L0 = &ADF_LOW_R L0 = DIV L0 ,10 L1 = &ADF_HIGH_R L1 = L1 * 10 L1 = L1 + L0 &ADF_HIGH = L1 CALL &ADF_CALC }
Var 0939, name ADF_LOW_R { L0 = &ADF_LOW_R L1 = MOD L0 ,10 &ADF_LOW = L1 L1 = DIV L0 ,10 L0 = &ADF_HIGH L0 = DIV L0 ,10 L0 = L0 * 10 L1 = L0 + L1 &ADF_HIGH = L1 CALL &ADF_CALC } | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: VS et ADF sioc Ven 3 Oct - 15:14 | |
| merci à vous je vais regarder cela de plus près
je vous tien au courant | |
| | | razmott
Nombre de messages : 246 Date d'inscription : 15/03/2008 Localisation : Laroque des Albères (66)
| Sujet: Re: VS et ADF sioc Ven 3 Oct - 22:10 | |
| | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: VS et ADF sioc Sam 4 Oct - 10:41 | |
| merci j'ai de quoi de faire la je crois
je vous tiens au courant | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: VS et ADF sioc Sam 4 Oct - 13:33 | |
| salut Claude
J'ai essayer ton code de vs (qui resemblait fort au miens) et effectivement je me retrouve avec le même problemem c'est que dans fs lorsque l'on affiche 3000 pieds par exemple au pa hé bien la vs passe automatiquement à 0700 mais pas les afficheur, et si par hasared on veut modifier cette valeur de vs hé bien ca reprend de 0 et non pas de 0700.
merci
pour stevelep j'au du mal à comprendre ta vs car tu fait appel à la fonction apsys mais dans apsys tu n'a rien concernant la vs!!! tu as également une fonction ap_checjer mais tu n'en fait pas appel ou alors j'ai mal lu lol
merci | |
| | | F-DEUZ
Nombre de messages : 208 Date d'inscription : 21/03/2008 Age : 67 Localisation : MANOSQUE
| Sujet: Re: VS et ADF sioc Sam 4 Oct - 16:16 | |
| Salut Guillou, Pour ALT et VS essaye ca, chez moi ca marche. Les affichages FS et Display sont en concardance. en revanche des que tu modifie VS il repart de 0 et j'ai pas de solution.
Var 0011, name Write_Alt, Link FSUIPC_OUT, Offset $07D4, Length 4 // Valeur de Alt Var 0012, name Read_Alt, Link FSUIPC_IN, Offset $07D4, Length 4 { CALL &Out_Alt } Var 0020, name Enc_Alt, Link IOCARD_ENCODER, Input 56, Aceleration 2, Type 2 // Encodeur altitude { IF &SW_VS = 1 { L0 = &Enc_Alt * 1000 &Alt = ROTATE 0 ,40000 ,L0 &Led_VS = 1 } ELSE { L0 = &Enc_Alt * 100 &Alt = ROTATE 0 ,40000 ,L0 &Led_VS = 0 } } Var 0021, name Alt { L1 = &Alt * 1997537 L0 = L1 / 100 &Write_Alt = ROUND L0 } Var 0022, name Out_Alt, Link SUBRUTINE { L1 = &Read_Alt / 1997537 L0 = L1 * 100 &Disp_Alt = ROUND L0 } Var 0024, name Alt_Lock, Link FSUIPC_OUT, Offset $07D0, Length 4 // Lock Altitude
Var 0025, name Led_Alt_Lock, Link IOCARD_OUT, Output 24 // Led sélection altitude
Var 0026, name SW_Alt_Lock, Link IOCARD_SW, Input 61, Type P // Bouton Alt_Lock { IF &SW_Alt_Lock = 1 { &Alt_Lock = 1 &Led_Alt_Lock = 1 } ELSE { &Alt_Lock = 0 &Led_Alt_Lock = 0 } } Var 0027, name Disp_Alt, Link IOCARD_DISPLAY, Digit 43, Numbers 5 Var 0030, name WRITE_VS, Link FSUIPC_OUT, Offset $07F2, Length 2, Type 1 Var 0031, name READ_VS, Link FSUIPC_IN, Offset $07F2, Length 2, Type 1 { CALL &OUT_VS } Var 0032, name ENC_VS, Link IOCARD_ENCODER, Input 54, Aceleration 6, Type 2 { L0 = &ENC_VS * 100 &TMP_VS = ROTATE -2500 ,2500 ,L0 } Var 0033, name TMP_VS { L0 = &TMP_VS * 1 &WRITE_VS = ROUND L0 } Var 0034, name OUT_VS, Link SUBRUTINE { &OUT_VS = 1 L0 = &READ_VS / 1 &DISP_VS = ROUND L0 } Var 0035, name DISP_VS, Link IOCARD_DISPLAY, Digit 59, Numbers 5 Var 0037, name Led_VS, Link IOCARD_OUT, Output 25 Var 0038, name SW_VS, Link IOCARD_SW, Input 62, Type P
A+ - Denis | |
| | | icare11
Nombre de messages : 133 Date d'inscription : 17/03/2008 Age : 81 Localisation : 11800 Trèbes
| Sujet: Re: VS et ADF sioc Sam 4 Oct - 17:58 | |
| Bonjour à tous,
Je vous met mon bout de programme pour gérer ALT-V/S qui me fonctionne impeccable , je n'ai jamais eus le problème de la VS qui repart à 0.
// ============================================== PA Cmd ALT-V/S
Var 0500, Value 0 { V0550 = 4000 // Initialisation ALT V0551 = 500 // Initialisation VS } Var 0520, Link FSUIPC_IN, Offset $07D4, Length 4 // Autopilot altitude { L0 = V0520 / 19975.433 // Transformation en Feet } Var 0521, Link FSUIPC_IN, Offset $07D0, Length 4 // PA_altitude lock Var 0522, Link FSUIPC_IN, Offset $3324, Length 4 // Lect_Alti { L0 = V0522 / 10 IF V0521 = 1 { V0532 = -999999 } } Var 0523, Link FSUIPC_INOUT, Offset $07D4, Length 4 // Offset PA_ALT Var 0524, Link FSUIPC_INOUT, Offset $07F2, Length 2 // Offset PA_V/S { V0533 = TESTBIT V0524 ,15 // NEGATIF_V/S } Var 0525, Link IOCARD_SW, Input 50, Type P // Push AP_V/S { IF V0525 = 1 { V0534 = 1 V0532 = V0551 } ELSE { V0534 = 0 V0532 = -999999 V0533 = 0 } } Var 0527, Link IOCARD_ENCODER, Input 67, Aceleration 4, Type 1 // Cmd VS { L0 = V0527 * 100 // °100 au lieu ° 1 car 4 digits , pas 2 V0551 = V0551 + L0 } Var 0528, Link IOCARD_ENCODER, Input 69, Aceleration 4, Type 1 // Cmd ALT { L0 = V0528 * 100 // °100 au lieu ° 1 car 5digits , pas 3 V0550 = V0550 + L0 } Var 0530, Link IOCARD_DISPLAY, Digit 23, Numbers 5 // Affi_ALT Var 0532, Link IOCARD_DISPLAY, Digit 23, Numbers 5 // Affi_V/S Var 0533, Link IOCARD_OUT, Output 26 // Le - de V/S Var 0534, Link IOCARD_OUT, Output 17 // Led V/S Var 0550, Link SUBRUTINE // D_ALT { IF V0550 > 35000 { V0550 = 35000 } IF V0550 < 0 { V0550 = 0 } V0530 = V0550 // D_ALT L0 = V0550 * 1997537 V0523 = L0 / 100 // L0 / 100 au lieu L0 car 5 digits } Var 0551, Link SUBRUTINE // D_V/S { IF V0551 > 2500 { V0551 = 2500 } IF V0551 < -2500 { V0551 = -2500 } V0532 = V0551 // D_V/S L0 = V0551 * 1 // ° 1 au lieu ° 100 car 4 digits V0524 = L0 }
Il y peut être plus simple, je pense que steve va trouver des simplifications.
A +
JC
Dernière édition par icare11 le Ven 10 Oct - 16:49, édité 3 fois | |
| | | steph737
Nombre de messages : 725 Date d'inscription : 15/03/2008 Localisation : Antananarivo
| Sujet: Re: VS et ADF sioc Sam 4 Oct - 18:26 | |
| je vois pas d'où vient cette remise à zéro de VS ( ou alors implémenté en interne sur l'addon ) par contre pour avoir facilement une concordance entre FS et le panel, essayez d'utiliser des variables FSUIPC_INOUT de préférence quand c'est possible | |
| | | razmott
Nombre de messages : 246 Date d'inscription : 15/03/2008 Localisation : Laroque des Albères (66)
| Sujet: Re: VS et ADF sioc Sam 4 Oct - 22:25 | |
| Salut Guillou,
une remarque: si tu programmes ton P.A. avec SIOC et que tu as en même temps dans ton fichier panel.cfg une gauge quelconque de P.A. il peut y avoir conflit, chacun travaille à sa manière. Pour ma part, tout mon P.A. est en SIOC et quand je sélectionne une nouvelle altitude à atteindre, rien ne se passe, l'avion ne monte pas à 700 ft/min. Pour qu'il monte ou descende il faut sélectionner une vitesse verticale avec l'encodeur VS. Alors seulement l'altitude change. Bien sûr tu peux en cours de montée ou de descente sélectionner une autre valeur de VS, avec une seule exception: si l'altitude sélectionnée est par exemple supérieure à l'altitude actuelle, tu est obligé de sélectionner une VS positive... c'est logique. Ton problème vient peut être d'une double commande gauge/SIOC.
Claude | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: VS et ADF sioc Dim 5 Oct - 13:16 | |
| merci pour toute ces précisons
cela est peut etre du au fait que je fais mes test sur le cessna par défaut de fs et non pas sur un addon du type carenado ou autre
je vais voir tous cela merci beaucoup | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: VS et ADF sioc Mar 7 Oct - 12:07 | |
| salut
bon pour ma vs j'ai trouvé la solution
j'ai rajouté dans la variable fsuipc de mon code
IF &VS <> &VS_mem &VS = &VS_mem
en clair les afficheur de fs prennentla valeur de ceux de mes display ?
pour l'adf c'est ok j'ai trouver le code
autre question maintenant : j'aimerais utiliser les mêmes afficheur et les même encodeur pour la fonction ADF et transpondeur, est ce possible est si oui comment agencer cela en code sans mélanger les variable ? doit t-on déclarer deux fois les mêmes encodeur et les utiliser seulement lorsque qu'un bouton est enclencheé?
j'utilise un poussoir pour faire le choix
merci | |
| | | boutondair
Nombre de messages : 413 Date d'inscription : 17/03/2008 Age : 54 Localisation : Matha - Charente Maritime
| Sujet: Re: VS et ADF sioc Mar 7 Oct - 12:26 | |
| Bonjour Guillou Regarde les exemples LCD-MultiRadio chez opencockpit, c'est très interressant, il utilise pour l'ADF et le transpondeur un seul encodeur à bientôt, David | |
| | | icare11
Nombre de messages : 133 Date d'inscription : 17/03/2008 Age : 81 Localisation : 11800 Trèbes
| Sujet: Re: VS et ADF sioc Mar 7 Oct - 12:27 | |
| Bonjour Guillou,
Si ça peut aider je te met le bout de programme qui me sert pour afficher la course et le HDG sur le même afficheur avec le même encodeur . sur l'encodeur il ya un poussoir pour passer de l'un à l'autre avec une diode qui permet de voir ou l'on est.(HDG ou CRS) // ============================================== Cmd HDG-CRS Var 0180, Value 0 { V0194 = 1 V0194 = DELAY -1 ,50 } Var 0182, Link FSUIPC_IN, Offset $07CC, Length 2 // Offset Hdg in { CALL V0198 } Var 0183, Link FSUIPC_IN, Offset $0C4E, Length 2 // Offset Crs in { CALL V0198 } Var 0184, Link FSUIPC_OUT, Offset $07CC, Length 2 // Offset Hdg out Var 0185, Link FSUIPC_OUT, Offset $0C4E, Length 2 // Offset Crs out Var 0186, Link IOCARD_SW, Input 71 // Inter crs/hdg { IF V0186 = 1 { V0194 = V0194 * -1 } } Var 0187, Link IOCARD_ENCODER, Input 63, Aceleration 8, Type 1 // crs ou hdg { IF V0194 = 1 { V0196 = ROTATE 1 ,360 ,V0187 } ELSE { V0197 = ROTATE 1 ,360 ,V0187 } } Var 0188, Link IOCARD_OUT, Output 27 // led hdg Var 0189, Link IOCARD_OUT, Output 25 // led crs Var 0190, Link SUBRUTINE { IF V0082 = 0 // Si général off { V0188 = 0 V0189 = 0 V0191 = -999999 // Affich off V0192 = -999999 // Affich off V0194 = 0 } IF V0082 = 1 // Si général on { IF V0085 = 0 // Si Avionics off { V0188 = 0 V0189 = 0 V0191 = -999999 // Affich hdg off V0192 = -999999 // Affich crs off V0194 = 0 } } IF V0082 = 1 // Si général on { IF V0085 = 1 // Si Avionics on { V0191 = V0191 // Affich on V0192 = V0192 // Affich on V0194 = -1 } } } Var 0191, Link IOCARD_DISPLAY, Digit 20, Numbers 3 // Aff Hdg Var 0192, Link IOCARD_DISPLAY, Digit 20, Numbers 3 // Aff Crs Var 0194 { V0199 = DELAY 0 ,10 V0198 = DELAY 1 ,10 } Var 0196 { L0 = V0196 * 182.04444 V0184 = ROUND L0 } Var 0197 { V0185 = V0197 } Var 0198, Link SUBRUTINE { V0198 = 1 IF V0194 = 1 { L0 = V0182 / 182.04444 V0191 = ROUND L0 } ELSE { V0192 = V0183 } } Var 0199, Link SUBRUTINE { V0199 = 0 IF V0194 = 1 { V0192 = -999999 L0 = V0182 / 182.04444 V0196 = ROUND L0 V0188 = 1 V0189 = 0 } ELSE { V0191 = -999999 V0197 = V0183 V0188 = 0 V0189 = 1 } } Var 0220, Link FSUIPC_INOUT, Offset $0C5E, Length 2 // OBS du VOR 2 Var 0221, Link IOCARD_ENCODER, Input 65, Aceleration 3, Type 1 // Cmd OBS VOR 2 { V0220 = ROTATE 0 ,359 ,V0221 } Var 0222, Link SUBRUTINE { IF V0082 = 0 { V0188 = 0 V0189 = 0 } }
A +
JC | |
| | | Contenu sponsorisé
| Sujet: Re: VS et ADF sioc | |
| |
| | | | VS et ADF sioc | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|