Détecter la réception de trame Ethernet
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:
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 lecture
Code:
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 |
Code de mon chrono :
Code:
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 |
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
Quelqu'un a t-il une solution ?
Cordialement,