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 |
|
| sioc 3.41 | |
|
+5F-DEUZ razmott Kelt760 steph737 guillou 9 participants | |
Auteur | Message |
---|
Kelt760
Nombre de messages : 285 Date d'inscription : 15/03/2008 Localisation : Saclay
| Sujet: Re: sioc 3.41 Mer 14 Mai - 16:37 | |
| Je sens un bug dans le code d'affichage des leds et afficheurs. Revois tes conditions (courant et autre). Une sous-routine boguée peut très bien déclencher le truc. As-tu un timer ou un delay qui pourrait expliquer le retard de l'affolement ? Courage, TU VAS TROUVER !! Pierre | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Mer 14 Mai - 17:20 | |
| non je n'ai pas de lay aussi long le seul que j'ai ce sont les delay pour le train d'atterrissage
donc je penche pour soit un probleme de code soit le fait d'être sur port parallele peut etre | |
| | | steph737
Nombre de messages : 725 Date d'inscription : 15/03/2008 Localisation : Antananarivo
| Sujet: Re: sioc 3.41 Mer 14 Mai - 17:32 | |
| ben tu refais un petit code très simple pour tester tes entrées et sorties, un inter = une led par exemple, pas de variables link_FSUIPC, et tu y vas progressivement ( si c'est une combinaison d'entrées qui met le bazard tu vas le voir, si c'est le fait d'attendre aussi ).
Par contre si ça marche bien, c'est que Pierre a raison, tu as réussi à trouver un code qui énerve sioc...
Tu peux aussi tester ton code actuel avec la console IOCP, tu mets tes inters à zéro et tu actives les entrées par la console. | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Mer 14 Mai - 19:24 | |
| je fais fonctionner ce ptit code sans fs ou non? vu qu'il n'y a pas de variable fsuipc | |
| | | steph737
Nombre de messages : 725 Date d'inscription : 15/03/2008 Localisation : Antananarivo
| Sujet: Re: sioc 3.41 Mer 14 Mai - 21:04 | |
| Tu l'as dit toi même, pas de variables liées à FSUIPC donc pas besoin de FS. C'est juste pour voir si ça vient de ta carte | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Jeu 15 Mai - 20:56 | |
| ok je fais ca demain car aujourd'hui j'étais en examen merci | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Ven 16 Mai - 15:52 | |
| bon j'ai mis ce code j'utilise que mes switch et mes rotatif ( et pas les 7 segments )
Var 0000, Link IOCARD_SW, Input 4 { &LED_SW_4 = V0000 }
Var 0001, Link IOCARD_SW, Input 7 { &LED_SW_7 = V0001 }
Var 0002, Link IOCARD_SW, Input 5 { &LED_SW_5 = V0002 }
Var 0003, Link IOCARD_SW, Input 2 { &LED_SW_2 = V0003 }
Var 0004, Link IOCARD_SW, Input 0 { &LED_SW_0 = V0004 }
Var 0005, Link IOCARD_SW, Input 3 { &LED_SW_3 = V0005 }
Var 0006, Link IOCARD_SW, Input 1 { &LED_SW_1 = V0006 }
Var 0007, Link IOCARD_SW, Input 6 { &LED_SW_6 = V0007 }
Var 0008, Link IOCARD_SW, Input 10
Var 0009, Link IOCARD_SW, Input 13 { &LED_SW_65 = V0009 }
Var 0010, Link IOCARD_SW, Input 24, Type P { &LED_SW_24 = V0010 }
Var 0011, Link IOCARD_SW, Input 23, Type P { &LED_SW_23 = V0011 }
Var 0012, Link IOCARD_SW, Input 21, Type P { &LED_SW_21 = V0012 }
Var 0013, Link IOCARD_SW, Input 22, Type P { &LED_SW_22 = V0013 }
Var 0014, Link IOCARD_SW, Input 18, Type P { &LED_SW_18 = V0014 }
Var 0015, Link IOCARD_SW, Input 25, Type P { &LED_SW_25 = V0015 }
Var 0016, Link IOCARD_SW, Input 19, Type P { &LED_SW_19 = V0016 }
Var 0017, Link IOCARD_SW, Input 20, Type P { &LED_SW_20 = V0017 }
Var 0018, Link IOCARD_SW, Input 65 { IF V0018 = 1 { &LED_SW_65a = DELAY 1 ,10 &LED_SW_65b = DELAY 1 ,15 &LED_SW_65c = DELAY 1 ,20 } ELSE { &LED_SW_65a = 0 &LED_SW_65c = 0 &LED_SW_65b = 0 } }
Var 0019, Link IOCARD_SW, Input 17 { &LED_SW_59 = V0019 }
Var 0020, Link IOCARD_SW, Input 12, Type P { &LED_SW_57 = V0020 }
Var 0021, Link IOCARD_SW, Input 66, Type P { &LED_SW_66 = V0021 }
Var 0022, Link IOCARD_SW, Input 67, Type P { &LED_SW_67 = V0022 }
Var 0023, Link IOCARD_SW, Input 14, Type P { &LED_SW_14 = V0023 AND 1 }
Var 0024, Link IOCARD_SW, Input 15, Type P { &LED_SW_15 = V0024 }
Var 0101, name LED_SW_4, Link IOCARD_OUT, Output 11
Var 0102, name LED_SW_7, Link IOCARD_OUT, Output 15
Var 0103, name LED_SW_5, Link IOCARD_OUT, Output 17
Var 0104, name LED_SW_2, Link IOCARD_OUT, Output 14
Var 0105, name LED_SW_0, Link IOCARD_OUT, Output 16
Var 0106, name LED_SW_3, Link IOCARD_OUT, Output 18
Var 0107, name LED_SW_1, Link IOCARD_OUT, Output 36
Var 0108, name LED_SW_6, Link IOCARD_OUT, Output 37
Var 0109, name LED_SW_24, Link IOCARD_OUT, Output 34
Var 0110, name LED_SW_23, Link IOCARD_OUT, Output 35
Var 0111, name LED_SW_21, Link IOCARD_OUT, Output 29
Var 0112, name LED_SW_22, Link IOCARD_OUT, Output 31
Var 0113, name LED_SW_18, Link IOCARD_OUT, Output 32
Var 0114, name LED_SW_25, Link IOCARD_OUT, Output 30
Var 0115, name LED_SW_19, Link IOCARD_OUT, Output 33
Var 0116, name LED_SW_20, Link IOCARD_OUT, Output 40
Var 0117, name LED_SW_14, Link IOCARD_OUT, Output 23
Var 0118, name LED_SW_65, Link IOCARD_OUT, Output 20
Var 0119, name LED_SW_65a, Link IOCARD_OUT, Output 19
Var 0120, name LED_SW_65b, Link IOCARD_OUT, Output 22
Var 0121, name LED_SW_65c, Link IOCARD_OUT, Output 21
Var 0122, name LED_SW_66, Link IOCARD_OUT, Output 27
Var 0123, name LED_SW_67, Link IOCARD_OUT, Output 28
Var 0124, name LED_SW_15, Link IOCARD_OUT, Output 24
Var 0125, name LED_SW_57, Link IOCARD_OUT, Output 25
Var 0126, name LED_SW_59, Link IOCARD_OUT, Output 26
Var 0200, Link IOCARD_ENCODER, Input 42, Aceleration 5 Var 0201, Link IOCARD_ENCODER, Input 39, Aceleration 5 Var 0202, Link IOCARD_ENCODER, Input 48, Aceleration 5 Var 0203, Link IOCARD_ENCODER, Input 45, Aceleration 5 Var 0204, Link IOCARD_ENCODER, Input 27, Aceleration 5 Var 0205, Link IOCARD_ENCODER, Input 30, Aceleration 5 Var 0206, Link IOCARD_ENCODER, Input 33, Aceleration 5 Var 0207, Link IOCARD_ENCODER, Input 54, Aceleration 5 Var 0208, Link IOCARD_ENCODER, Input 57, Aceleration 5 Var 0209, Link IOCARD_ENCODER, Input 60, Aceleration 5
je l'ai mis en route sans fs bien sur j'ai activé des entrée un peu comme en plein mileu d'un vol et j'attend | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Ven 16 Mai - 17:18 | |
| 1h30 de fonctionnement entre temps j'ai modifier les position des interrupteur et des rotatif toutes les30min je dirais
aucun probleme | |
| | | Kelt760
Nombre de messages : 285 Date d'inscription : 15/03/2008 Localisation : Saclay
| Sujet: Re: sioc 3.41 Ven 16 Mai - 17:36 | |
| ...donc ta carte est OK, apparemment. Le mieux est de remettre aussi les afficheurs, puis petit à petit des offsets FS, et voir ce qui se passe. Bon courage.
Pierre | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Ven 16 Mai - 18:18 | |
| ouep je pensais cela aussi ce sera long tout ca merci je vous tiens au courant | |
| | | Kelt760
Nombre de messages : 285 Date d'inscription : 15/03/2008 Localisation : Saclay
| Sujet: Re: sioc 3.41 Ven 16 Mai - 18:56 | |
| Pour gagner du temps, si ton programme SIOC est modulaire, tu peux essayer de remettre ces modules un par un (attention aux routines communes, s'il y en a).
Pierre | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Ven 16 Mai - 19:30 | |
| oui il l'est ca va
je vais voir tous ca merci | |
| | | stevelep
Nombre de messages : 512 Date d'inscription : 16/03/2008 Age : 50 Localisation : Neuchâtel LSGN, Suisse
| Sujet: Re: sioc 3.41 Ven 16 Mai - 21:26 | |
| Je viens de penser à quelque chose.
Quand tu envoies un nombres à un afficheur il est très important que le nombre de chiffre de la variable corresponde au nombre de chiffre de l'afficheur. (utilise la fonction LIMIT)
exemple de 0-999 pour un afficheur à 3 chiffres.
Si tu as commis une faute dans ton code et que tu envoie un nombre à 5 chiffres sur un afficheur à 3 chiffres tu vas provoquer des bugs, apparemment tu vas décaler une base de registre dans l'exécuteur de SIOC et perturber toutes les autres variables, ce qui a pour cause d'allumer ou d'éteindre des LED de facon aléatoire.
Ce n'est pas vraiment un bug de SIOC mais une absence de sécurité sur les variable display si tu overpasse leur longueur.
Tu peux aussi provoquer cet effet en envoyant une variable négative (la VS p.ex.) si tu as oublié de déclarer son Type=1 qui la force à prendre un valeur négative. La variable va alors prendre un valeur dans les 65000 et donc dépassera le nombre de chiffres de l'afficheur.
Voila
BOB | |
| | | Kelt760
Nombre de messages : 285 Date d'inscription : 15/03/2008 Localisation : Saclay
| Sujet: Re: sioc 3.41 Ven 16 Mai - 22:05 | |
| Ca c'est un truc qu'il vaut mieux savoir ! Je parie que les ennuis de Guillou viennent de là !
Pierre | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Sam 17 Mai - 9:02 | |
| ha ok ca c un très bon point merci bcp de cette précision
je vais faire attention a cela je suis en cours la donc je verais cela
merci bcp | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Sam 17 Mai - 21:21 | |
| sALUT
cet apres-midi
j'ai mis des bout de code en faisant un test avec fs apres ajout de chacun d'eux et je n'ai fais aucune condition de courant ny rien: tous ce qui est switch c ok pas de soucis pas de bug YOUPPIIII !!! jespere que ca va durer
puis j'ai mis petit a petit affichage et reglage du cap , affichage et réglage de la course, choix altitude et son affichage pareil pour la vs
et la pas de bug grave à recenser a part juste maintenant apres plusieurs heures de fonctionnement l'affichage de la course et de l'altitude qui pete les plomb mais cela et du je pense au pic qui a chauffer en effet j'ai un pic qui chauffe beaucoup sur une carte.
sinon lorsque j'ai branché la DME la j'ai eu un petit bug donc enlever et j'ai mis a la place la com et la pareil petit bug
bizarre car le code DME est simple :
Var 0415, name FS_DME1DIGIT, Link FSUIPC_IN, Offset $0C29, Length 1 // PREMIER DIGIT DME { &AFFICH_DME1 = &FS_DME1DIGIT }
Var 0305, name AFFICH_DME1, Link IOCARD_DISPLAY, Digit 39, Numbers 1
Var 0416, name FS_DME2DIGIT, Link FSUIPC_IN, Offset $0C2A, Length 1 // 2 DIGIT DME1 { &AFFICH_DME2 = &FS_DME2DIGIT }
Var 0306, name AFFICH_DME2, Link IOCARD_DISPLAY, Digit 38, Numbers 1 // 2 DIGIT DME
Var 0417, name FS_DME3DIGIT, Link FSUIPC_IN, Offset $0C2C, Length 1 // 3 DIGIT DME1 { &AFFICH_DME3 = &FS_DME3DIGIT }
Var 0307, name AFFICH_DME3, Link IOCARD_DISPLAY, Digit 37, Numbers 1 // 3 DIGIT DME
Var 0418, name DMEAVALAIBEL, Link FSUIPC_INOUT, Offset $3300, Length 2
voila pour l'instant | |
| | | stevelep
Nombre de messages : 512 Date d'inscription : 16/03/2008 Age : 50 Localisation : Neuchâtel LSGN, Suisse
| Sujet: Re: sioc 3.41 Sam 17 Mai - 21:23 | |
| Le plus facile pour tester ça est de désactiver tes variables Link Display en mettant des // et les remplacer par des variables normale même nom, même n°, mais sans link
// Var 0003, name display, Link IOCARD_DISPLAY, Digit 3, Numbers 4
Var 0003, name display
Et d'aller voir le chiffre affiché dans la Console de SIOC.exe notamment s'il dépasse la grandeur max ou deviens négatif ...etc
BOB | |
| | | stevelep
Nombre de messages : 512 Date d'inscription : 16/03/2008 Age : 50 Localisation : Neuchâtel LSGN, Suisse
| Sujet: Re: sioc 3.41 Sam 17 Mai - 21:30 | |
| Ouups tu as écris un nouveau message pendant que j'écrivais le mien ...
ATTENTION
Tu utilise l'offset $0C29 pour la distance DME, or si tu regardes dans FSinterrogate tu verras que le format de cet offset est ASCII, donc ce n'est pas un nombre décimal mais du texte... SIOC ne traite pas les variables texte et de plus tu l'affiche avec un nombre de chiffre NUMBERS=1 dans le display alors que cette offset a certainement plus qu'un chiffre !!!! D'ou le problème ...
BOB
PS: Jamais eu un seul pic qu'a chauffé sur une quinzaine de cartes différentes d'opencockpits tout les PIC restent froids, tu doit avoir un problème de cablage ... | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Dim 18 Mai - 12:46 | |
| okok merci de ta réponse je vais vérifier cela
et également regarder pour le pic, j'ai trois carte display et seul pic chauffe les autres sont froid | |
| | | trajector
Nombre de messages : 13 Date d'inscription : 17/03/2008 Age : 80 Localisation : morbihan
| Sujet: Re: sioc 3.41 Dim 18 Mai - 18:28 | |
| bonjour à tous. réponse à guillou
j'avais interrogé il y quelque temps le forum d'opencockpit au sujet de la DME. Je n'ai pas pris le temps de vérifier le programme: voici en brut la réponse qui me fut donné par Admin (administrateur du forum d'opencockpit)
Var 0010, Link FSUIPC_IN, Offset $0C29, Length 1 // Primera posicion DME NX.X { V0014 = V0010 - 48 }
Var 0011, Link FSUIPC_IN, Offset $0C2A, Length 1 // Segunda posicion DME XN.X { V0015 = V0011 - 48 }
Var 0012, Link FSUIPC_IN, Offset $0C2B, Length 1 // Tercera posicion DME XX.X { IF V0012 = 44 // Si hay un punto decimal { V0016 = 1 } ELSE { V0016 = 0 } }
Var 0013, Link FSUIPC_IN, Offset $0C2C, Length 1 // Cuarta posicion DME XX.N { V0016 = V0013 - 48 }
var 0014, Link IOCARD_DISPLAY, Digit 2, Numbers 1 // Digito mas significativo
var 0015, Link IOCARD_DISPLAY, Digit 1, Numbers 1
var 0016, Link IOCARD_DISPLAY, Digit 0, Numbers 1 // Digito menos significativo
var 0017, Link IOCARD_OUT, Output 10 // Punto decimal
le "-48" permet je le supose d'extraire la valeur à un chiffre de la variable et les unites, les dizaines et les centaines ont leur variable.
Peut être peux tu essayer ce programme.
Jean-Gilles | |
| | | guillou
Nombre de messages : 120 Date d'inscription : 07/04/2008 Age : 38 Localisation : dunkerque
| Sujet: Re: sioc 3.41 Lun 19 Mai - 20:18 | |
| j'ai trouvé!!!!!!! Enfin du moins en grosse partie en effet je me suis dit maintenant je vais pouvoir remettre mon sous-programme des condition courant puisque cela fonctionne et donc je le remet je le modifie un peu
et la le big désastre les bug ont recommencé sans attendres
donc voila lol j'ai jamais pensé à ce truc lol mais il est vrai en y repensant que je douté de certain truc
mais de toute facon il va falloir que je revoi mon code pour avoir quelque chose de plus "propre" car il arrive parfois un bug qd meme
le voici le code Var 0500, name INIT_AFFICH, Link SUBRUTINE { IF &FS_BATTERY = 0 { &LED_STROBES = 0 &LED_NAV_LIGHTS = 0 &LED_BEACON = 0 &LEDTAXI_LIGHTS = 0 &LED_LANDLIGHTS = 0 &LED_INSTRUMENT = 0 &LED_PITOT_HEAT = 0 &LEDVERDROITRAI = DELAY 0 ,40 &LEDVERHAUTRAIN = 0 &LEDVERGAUTRAIN = DELAY 0 ,20 &LED_VOLET_BAS = 0 &LED_VOLET_HAUT = 0 &LED__FUEL_PUMP = 0 &AFFICH_ALT_AP = -999999 &AFFICHE_VS_FIX = -999999 &AFFICH_VS_ALT = -999999 &AFFICH_DME3 = -999999 &AFFICH_DME2 = -999999 &AFFICH_DME1 = -999999 &AFFICH_COURSE = -999999 &AFFICH_CAP = -999999 &FIXE_0_ALTIT = -999999 } IF &FS_BATTERY = 1 { &FS_CAP_AFFICH = 0 &AFFICH_COURSE = 0 &LED_INSTRUMENT = TESTBIT &FS_LIGHTS ,5 &LED_BEACON = TESTBIT &FS_LIGHTS ,1 &LED_NAV_LIGHTS = TESTBIT &FS_LIGHTS ,0 &LED__FUEL_PUMP = &FS_FUEL_PUMP &LED_STROBES = TESTBIT &FS_LIGHTS ,4 &LEDTAXI_LIGHTS = TESTBIT &FS_LIGHTS ,3 &LEDVERHAUTRAIN = &LEDVERHAUTRAIN &LEDVERGAUTRAIN = &LEDVERGAUTRAIN &LEDVERDROITRAI = &LEDVERDROITRAI &LED_LANDLIGHTS = TESTBIT &FS_LIGHTS ,2 &LED_PITOT_HEAT = &FS_PITOT_HEAT IF &FS_POS_VOL_HAU = 0 { &LED_VOLET_HAUT = 1 } ELSE { &LED_VOLET_HAUT = 0 } IF &FS_POS_VOL_HAU > 0 { &LED_VOLET_BAS = 1 } ELSE { &LED_VOLET_BAS = 0 } IF &FS_AVIONICS = 0 { &AFFICHE_VS_FIX = -999999 &DISP_C1_SB_RHS = -999999 &D_NAV1Freq = -999999 &FS_NAV_AUTOPIL = 0 &FS_CAP_LOCK = 0 &FS_APPROC_LOCK = 0 &FS_AUTOPILOT = 0 &FS_ALTITUDE_AP = 0 &FS_ALTI_LOCK = 0 &Standby_Freq = -999999 &nav1fixact = -999999 &nav1fix = -999999 &DISP_C1_SB_LHS = -999999 &DISP_C1_ACT = -999999 &AFFI_COM1FIXAC = -999999 &AFF_COM1FIXENT = -999999 &AFFICH_VS_ALT = -999999 &AFFICH_ALT_AP = -999999 &FIXE_0_ALTIT = -999999 &AFFICH_DME3 = -999999 &AFFICH_DME2 = -999999 &AFFICH_DME1 = -999999 &AFFICH_CAP = -999999 &AFFICH_COURSE = -999999 } } IF &FS_BATTERY = 1 { IF &FS_AVIONICS = 1 { &AFFICH_VS_ALT = &VS_ALTITUDE &AFFI_COM1FIXAC = 1 &Standby_Freq = &NAV1Freq &D_NAV1Freq = &NAV1Freq &nav1fixact = 1 &nav1fix = 1 &DISP_C1_ACT = &C1_FREACT &DISP_C1_SB_RHS = &C1_SB_RHS &DISP_C1_SB_LHS = &C1_LHS_ROT_VAL &AFF_COM1FIXENT = 1 &AFFICHE_VS_FIX = 0 &AFFICH_ALT_AP = &ALTITUDE &FIXE_0_ALTIT = 0 &AFFICH_CAP = &MEMROT_CAP &AFFICH_COURSE = &MEMROT_COURSE L0 = TESTBIT &DMEAVALAIBEL ,4 IF L0 = 0 { &AFFICH_DME1 = -999998 &AFFICH_DME2 = -999998 &AFFICH_DME3 = -999998 } IF L0 = 1 { &AFFICH_DME1 = &FS_DME1DIGIT - 48 &AFFICH_DME1 = &FS_DME1DIGIT - 48 &AFFICH_DME1 = &FS_DME1DIGIT - 48 } } } }
PS merci trajector ton code marche et concorde avec ce que disait stevelep sur le taille des variable à afficher par contre faut enlever le point décimal car celui-ci n'est plus gérer par les displayII | |
| | | Contenu sponsorisé
| Sujet: Re: sioc 3.41 | |
| |
| | | | sioc 3.41 | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|