Bonjour a tous,

Avec Windev Mobile, j'essai de développer une appli android communiquant avec des appareils Modbus sur un module Bluetooth.
Pas de soucis de communication. je réussi bien a lire les appreils au adresses que je veux.

Par contre la je veux tester chaque adresse Modbus pour faire une liste des appareils présent. Et quand un appreil n'est pas présent sur une adresse modbus, mon application bloque (temps d'attente du socketLit dépassé...)

Voici le code

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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
I est un entier
J est un entier
Nbrmot est une chaîne ANSI
Adrcpt est une chaîne ANSI
Adrlect est une chaîne ANSI
Chainerecue est une chaîne ANSI
AdressCompt est un tableau de chaînes ANSI
VariableRAZ(AdressCompt)
J=0
 
Sablier(Vrai)
 
POUR I = 1 A 5 // Adresses Modbus testées de 1 à 5 (par la suite jusqu'a 255)
	Adrcpt = NumériqueVersChaîne(I)
 
	Adrlect = "0000"
	Nbrmot = "1"
	SocketEcrit("ConnectEnCours",RequetesModbus(Adrcpt,Adrlect,Nbrmot)) // Ecriture OK
	Chainerecue=""
	ThreadPause(30)
 
	Chainerecue=SocketLit("ConnectEnCours",Faux,500)
	SI Chainerecue <>"" ALORS
		Ajoute(AdressCompt,I)
	SINON
		Info("pas de compteur à l'adresse "+I)
	FIN
	J++
 
FIN
 
Sablier(Faux)
Info(AdressCompt[1],AdressCompt[1])
Merci de votre retour!

Bien à vous