Bonjour
Je dois créer une communication entre une application windev et un ohmmètre en Ethernet afin de mesurer le temps de cycle : Envoi de commande + Réception de la trame.
Ceci me permet donc de faire mes validations de l'appareil.
J'utilise donc un envoi de commande lors d'un clic sur bouton qui lance mon chrono , je lance ensuite ma fonction de lecture qui elle vient stopper mon chrono.
Code du bouton :
Code de lecture
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 sMessage est une chaîne = "" gnNumeroTest = 1 gbChronoStop = Faux gnNombreLecture = 0 sMessage = "M 1" + RC SI ThreadEtat("Thread1") = threadInexistant ALORS ThreadExécute("Thread1",threadNormal,Chrono) SINON ThreadReprend("Thread1") FIN SI SocketEcrit(gsNomServeur,sMessage) = Vrai ALORS Lecture() Lecture() FIN
Code de mon chrono :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 gnNombreLecture++ sTrame = SocketLit(gsNomServeur,Vrai) SI sTrame <> "" ALORS SI (gnNombreLecture = 1 _ET_ gnNumeroTest <> 0 _ET_ gnNumeroTest <> 5 _ET_ gnNumeroTest <> 6) ALORS gbChronoStop = Vrai FIN FIN FIN SI gnNumeroTest <> 0 ALORS SI Contient(sTrame,"Bad",SansCasse) = Faux ALORS TraitementTrameNimtech(sTrame) FIN FIN
Le fonctionnement est donc bon, mais le problème est qu'avec toutes ces vérifications du pc la durée de mon temps de cycle est fausse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 ChronoDébut(1) BOUCLE SI gbChronoStop = Vrai ALORS Ajoute(tabtcy,ChronoFin(1)) gnNombreElementstabs++ gnMoyenneTcy = Moyenne(tabtcy) FIN SORTIR FIN FIN
Quelqu'un a t-il une solution ?
Cordialement,
Partager