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
-56%
Le deal à ne pas rater :
Ampli Home Cinema Denon AVR-X1700H à 349€
349 € 799 €
Voir le deal

 

 VS et ADF sioc

Aller en bas 
+3
F-DEUZ
stevelep
guillou
7 participants
AuteurMessage
guillou




Nombre de messages : 120
Date d'inscription : 07/04/2008
Age : 38
Localisation : dunkerque

VS et ADF sioc Empty
MessageSujet: VS et ADF sioc   VS et ADF sioc EmptyDim 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 VS et ADF sioc 448420 ) 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

VS et ADF sioc 743498

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!!! VS et ADF sioc 347702

vou pensez que je peut figurer sur la carte avec ca???

VS et ADF sioc P1020010
Revenir en haut Aller en bas
http://perso.numericable.fr/francis.derycke/
guillou




Nombre de messages : 120
Date d'inscription : 07/04/2008
Age : 38
Localisation : dunkerque

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptyJeu 2 Oct - 13:31

VS et ADF sioc 743498 VS et ADF sioc 251832 VS et ADF sioc 199933
Revenir en haut Aller en bas
http://perso.numericable.fr/francis.derycke/
stevelep

stevelep


Nombre de messages : 512
Date d'inscription : 16/03/2008
Age : 50
Localisation : Neuchâtel LSGN, Suisse

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptyJeu 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
Revenir en haut Aller en bas
F-DEUZ




Nombre de messages : 208
Date d'inscription : 21/03/2008
Age : 67
Localisation : MANOSQUE

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptyVen 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
}
Revenir en haut Aller en bas
http://f-deuz.neuf.fr
guillou




Nombre de messages : 120
Date d'inscription : 07/04/2008
Age : 38
Localisation : dunkerque

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptyVen 3 Oct - 15:14

merci à vous je vais regarder cela de plus près

je vous tien au courant
Revenir en haut Aller en bas
http://perso.numericable.fr/francis.derycke/
razmott

razmott


Nombre de messages : 246
Date d'inscription : 15/03/2008
Localisation : Laroque des Albères (66)

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptyVen 3 Oct - 22:10

Salut Guillou,

tu peux reprendre mon code, disponible ici: http://www.simucockpit.com/SIOC_B200_v2.txt et surtout lire les chapitres Vitesse Verticale http://www.simucockpit.com/b200-4-pedestal.htm#VS et Radios de mon site pour les explications détaillées. Il y a des originalités pour les 1 fixes et les points décimaux, mais tout marche parfaitement.

Claude
Revenir en haut Aller en bas
http://www.simucockpit.fr/
guillou




Nombre de messages : 120
Date d'inscription : 07/04/2008
Age : 38
Localisation : dunkerque

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptySam 4 Oct - 10:41

merci j'ai de quoi de faire la je crois

je vous tiens au courant
Revenir en haut Aller en bas
http://perso.numericable.fr/francis.derycke/
guillou




Nombre de messages : 120
Date d'inscription : 07/04/2008
Age : 38
Localisation : dunkerque

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptySam 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
Revenir en haut Aller en bas
http://perso.numericable.fr/francis.derycke/
F-DEUZ




Nombre de messages : 208
Date d'inscription : 21/03/2008
Age : 67
Localisation : MANOSQUE

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptySam 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
Revenir en haut Aller en bas
http://f-deuz.neuf.fr
icare11

icare11


Nombre de messages : 133
Date d'inscription : 17/03/2008
Age : 81
Localisation : 11800 Trèbes

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptySam 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
Revenir en haut Aller en bas
steph737

steph737


Nombre de messages : 725
Date d'inscription : 15/03/2008
Localisation : Antananarivo

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptySam 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
Revenir en haut Aller en bas
http://steph737.blogspot.com
razmott

razmott


Nombre de messages : 246
Date d'inscription : 15/03/2008
Localisation : Laroque des Albères (66)

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptySam 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
Revenir en haut Aller en bas
http://www.simucockpit.fr/
guillou




Nombre de messages : 120
Date d'inscription : 07/04/2008
Age : 38
Localisation : dunkerque

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptyDim 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
Revenir en haut Aller en bas
http://perso.numericable.fr/francis.derycke/
guillou




Nombre de messages : 120
Date d'inscription : 07/04/2008
Age : 38
Localisation : dunkerque

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptyMar 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
Revenir en haut Aller en bas
http://perso.numericable.fr/francis.derycke/
boutondair

boutondair


Nombre de messages : 413
Date d'inscription : 17/03/2008
Age : 54
Localisation : Matha - Charente Maritime

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptyMar 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 VS et ADF sioc 867156
Revenir en haut Aller en bas
icare11

icare11


Nombre de messages : 133
Date d'inscription : 17/03/2008
Age : 81
Localisation : 11800 Trèbes

VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc EmptyMar 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
Revenir en haut Aller en bas
Contenu sponsorisé





VS et ADF sioc Empty
MessageSujet: Re: VS et ADF sioc   VS et ADF sioc Empty

Revenir en haut Aller en bas
 
VS et ADF sioc
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU] Lekssicon X - EFIS - level-D 767
» sioc 3.41
» exemple de sioc fcu
» [Partiellement Résolu] FMC OPENCOCKPIT Programmation.
» pmdg et 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: