File d'attente

Questions de programmation / Offset FSUIPC et IOCP

File d'attente

Messagede Triphon763 » Dim 10 Jan 2021 12:36

Bonjour à tous,

J'ai un petit casse-tête pour les férus de Sioc gratgrat

Pour rappel, je suis sous PMDG. Toutes les commandes possèdent un numéro. Deux variables sont initialisée à la base et pour allumer une lampe par ex, il faut envoyer 1 dans la 1ere variable et 70354 (le n° de commande) dans la 2eme variable.
Pour éteindre cette lampe, il faut envoyer 0 dans la 1ere variable et 70354 (le n° de commande) dans la 2eme variable.
La variable 2 est remise automatiquement à 0 après une tempo de "sécurité" de qq msec

Cela fonctionne très bien sauf lorsque je m'emballe. En effet, si j'active mes boutons trop vite l'un après l'autre, certain paramètre de la valeur 2 n'ont pas le temps d'être exécuté, qu'ils se font écrasés par le paramètre suivant.

2 solutions :

a) je calme mes ardeurs
b) j'essaye de créer une file d'attente. Si on déclare 2-3 variables de file d'attente et que l'on programme, si ma valeur paramètre n'est pas vide, alors je place la nouvelle valeur dans la file d'attente. Lorsque la valeur init est revenue à zéro (par la tempo sécurité) je transfère la valeur file d'attente vers l'execution...

C'est bien bô mais je sais pas trop comment réaliser cela... Quelqu'un a une piste de départ?
merci affiche

Merci et bon dimanche (sous la neige) à tous
Avatar de l’utilisateur
Triphon763
 
Messages: 107
Inscription: 9/02/20

Re: File d'attente

Messagede mameloose » Dim 10 Jan 2021 12:43

Hum peut être essayer de creer une subroutine avec la remise a zero et appelé la sub call apres chaque action.
A essayer
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: File d'attente

Messagede Triphon763 » Dim 10 Jan 2021 17:59

Salut Mameloose,

Les conditions et la prog ne devrait pas "poser de problème", mais justement je ne souhaite pas l'intégrer dans tous les paramètres et ré ecrire 100.000 x la même chose et alourdir le programme.

Je n'ai jamais utiliser les call avec SIOC... Existe il un tuto?

Merci pour ton aide
Avatar de l’utilisateur
Triphon763
 
Messages: 107
Inscription: 9/02/20

Re: File d'attente

Messagede Triphon763 » Dim 10 Jan 2021 18:03

Je viens de trouver ton tuto...

mais peut on "envoyer" envoyer un argument dans la sous routine comme par ex en VBA?

Call test(argument 1)

Sub test (arg)

???
Avatar de l’utilisateur
Triphon763
 
Messages: 107
Inscription: 9/02/20

Re: File d'attente

Messagede mameloose » Dim 10 Jan 2021 18:06

Dans sioc ton argument cest ton if.

If une valeur est envoyé par un bouton
Assignation call
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: File d'attente

Messagede mameloose » Dim 10 Jan 2021 18:07

Tu devrais poster ton code ca serait plus facile a comprendre
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: File d'attente

Messagede mameloose » Dim 10 Jan 2021 18:27

j'avais fais quelques test sur pmdg pour essayer .

mon ptit code fonctionnait bien

Image
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: File d'attente

Messagede Triphon763 » Lun 11 Jan 2021 08:43

Salut,

J'ai exactement le même code. Lorsque l'on manipule le bp 15, &CONTROL passe a 69834 pendant 10 * 50ms.

Si maintenant, je bascule un hypothétique bouton 16 juste après, &CONTROL va passer à par ex 70344 et donc l'information du CONTROL = 69834 ne sera certainement pas lue puisque "PMDG prend un peu son temps pour appliquer ce qu'on demande".

Mon idée était de programmer : Si &CONTROL = 0 alors &CONTROL = "la valeur qu'on impose (69834) SINON on met cette valeur dans une variable &ATTENTE_1.

Dès que &ATTENTE_1 <> 0 ALORS on enclenche une petite tempo et en fait on ré envoie la valeur vers &CONTROL...

Ca c'est la théorie. Mais je me heurte déjà à un hic à la 1ere ligne de code. En effet, pour que le test ci-dessous soit vérifier... Il faut que la valeur de &CONTROL soit modifiée... Donc si elle est modifiée il ne connait plus la valeur d'avant le changement murrouge murrouge donc on tourne en rond non? ...

"Si &CONTROL = 0 alors &CONTROL = "la valeur qu'on impose (69834) SINON on met cette valeur dans une variable &ATTENTE_1."

Bonne journée à tous
Avatar de l’utilisateur
Triphon763
 
Messages: 107
Inscription: 9/02/20

Re: File d'attente

Messagede mameloose » Lun 11 Jan 2021 10:48

Hum jvai tester autre chose ce soir
Juste une idee
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Re: File d'attente

Messagede mameloose » Lun 11 Jan 2021 18:51

je n'ai plus pmdg pour tester mais essaye ca :

Image

la sub est appelé a chaque fois ce qui evite de lire le code complet des le debut pour remettre a zero
Avatar de l’utilisateur
mameloose
 
Messages: 1271
Inscription: 20/04/09
Localisation: evreux

Suivante

Retourner vers Programmation Sioc





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités