PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → Timer ou thread ?
Timer ou thread ?
Iniciado por Cyril, mai., 23 2020 11:39 AM - 6 respostas
Membro registado
36 mensagems
Popularité : +1 (1 vote)
Publicado em maio, 23 2020 - 11:39 AM
Bonjour à tous,

Je développe une application de pilotage et je me retrouve face à une problématique que je n’arrive pas à régler .


Pour faire simple ,

J’ai 2 bouton qui pilotent une interface externe.

Bouton 1 : positionne l’interface externe dans le mode A.

Bouton 2 : positionne l’interface externe dans le mode B.


Il est possible d’agir directement sur l’interface externe et de la positionner dans le mode A ou B.

Cette action doit se répercuter dans l’interface Windev .

Au clic sur btn 1 , btn 1 est grisé et l’interface externe est en mode À.
Au clic sur btn 2 , btn 1 n’est plus grisé , btn 2 est grisé et l’interface externe est en mode B.


En basculant l’interface externe dans l’un des modes , j’aimerai que btn 1 ou btn 2 soit grisé.

Cela fonctionne par intermittence aujourd’hui....

Une fonction tourne avec un timer pour connaître l’état de l’interface externe .
J’ai essayé avec un thread mais c’est idem . Fonctionnement aléatoire .

Auriez vous une idée pour ce type de fonctionnement bidirectionnel ?



Merci
Membro registado
54 mensagems
Publicado em maio, 23 2020 - 1:01 PM
Bonjour

Comment communiques tu avec l interface externe ?
Membro registado
36 mensagems
Popularité : +1 (1 vote)
Publicado em maio, 23 2020 - 2:48 PM
Bonjour,

je communique via API WEB : HTTPRequête()

Merci
Membro registado
36 mensagems
Popularité : +1 (1 vote)
Publicado em maio, 23 2020 - 3:26 PM
Il n’y a pas de notification lors du changement d’état côté interface externe.
C’est mon application qui requête en boucle pour demander l’état de l’interface externe .

Je pense qu’il y a des cas ou la requête qui demande l’état et les actions réalisées côté application qui se mordent la queue :-).

J’ai essayer en mettant un FinTimer ça améliore mais le fonctionnement n’est pas garantie .

Je ne maîtrise pas les thread et je me demande si cela n’est pas plus adapté . Il semble selon la documentation non recommandé d’utiliser des thread qui change l’interface d’un application .

Merci
Membro registado
54 mensagems
Publicado em maio, 23 2020 - 5:00 PM
Ton interface externe ne renvoi jamais d information ?

Tu peux passer par une procedure automatique (toute les secondes ?)
Cette procedure sera exécuté en arriere plan.
Dans la procedure si
Bouton de l interface choisi different du bouton grisé dans ton appli alors
Tu execute dans le threadprincipal l evenement clic du bouton correspondant a l interface choisi.
Reste a voir s il faut mettre en pause la procedure automatique au moment de l execution
Membro registado
36 mensagems
Popularité : +1 (1 vote)
Publicado em maio, 23 2020 - 5:20 PM
Malheureusement l’interface externe ne renvoie rien . Il faut l’interroger .

Excellente idée le test « si bouton différent ». C’est exactement cela qui me manquait comme test .

La pause semble indispensable pour fiabiliser.

Problème résolu

Merci ++
Membro registado
54 mensagems
Publicado em maio, 23 2020 - 5:26 PM
Avec plaisir