PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → AutomationEvénement+threads
AutomationEvénement+threads
Iniciado por Telix13, 27,jun. 2017 18:26 - 9 respuestas
Miembro registrado
90 mensajes
Publicado el 27,junio 2017 - 18:26
Je rencontre deux soucis dans une application de contrôle d’accès, qui gère 06 lecteurs à badge RFID( repas contre tickets).
1- Quand je passe 06 badges en même temps, les 4 sur 6 procédures branchées sur Evènement, retournent : soit nul, soit 02 id de badges concaténés.
Je ne sais pas comment exécuter un AutomationEvénement dans un thread.
2- L’application bug au moment d’impression des tickets aussi.
ci-après aperçu du code.



code pour lancer l'impression des tickets.




et merci.
Miembro registrado
90 mensajes
Publicado el 07,julio 2017 - 18:53
bonjour, j'ai essayé ça , mais





erreur



Miembro registrado
954 mensajes
Publicado el 08,julio 2017 - 05:29
Coucou,

Place ton code dans une procedure ou une procedure interne, (http://doc.pcsoft.fr/?1514075) et ton Threadexcute lance la procedure ou la procedure interne qui contient ton code AutomationEvenement

--
Charly CanDo.
Forg en Nouvelle-Zélande ;-) - In üs we trust
Nasi Goreng en Indonesie ;-) - #oulouou
irc.freenode.net - ##pcsoft
Miembro registrado
90 mensajes
Publicado el 08,julio 2017 - 19:25
bonjour, et merci
je crois que l'objet automation doit contenir le thread, mais



erreur



Miembro registrado
954 mensajes
Publicado el 09,julio 2017 - 06:26
Coucou,

Aie Aie Aie ...


ThreadExecute(DonneGUID(guidBrut), threadAttendDémarrage, __Automatio, x, y, z)
PROCEDURE INTERNE __Automatio(x, y, z): boolean
AutomationEvénement(x, y, z)
RENVOYER Vrai
FIN
Miembro registrado
90 mensajes
Publicado el 10,julio 2017 - 19:32
coucou Charly, merci pour cette idée de code très poussée !
les lecteurs sont sur chantier, je ferais le test dés que possible
en attendant je suppose que le bon code c'est:





et merci encore.
Miembro registrado
954 mensajes
Publicado el 11,julio 2017 - 05:09
Coucou,

Merci de ton commentaire, je vais améliorer la réponse, sa me fait plaisir ;)

https://doc.pcsoft.fr/?1000021211 // TâcheParallèleExécute c'est aussi vramment bien !


Le problem que tu vas avoir avec le DonneGUID(guidBrut) c que ne va pas pouvoir fermer ton thread de maniere propre alors ce que tu fait c'est que tu peut utiliser ThreadAttendSignal et ThreadEnvoieSignal et ThreadArrête, c mieux si tu comprend par toi meme, mais si tu galeres repost sur le forum et si tu veut poster ton code j suis ok pour y jetter un coup oeil, normalement sur les threads j'suis op ^^
C'est une solution vraimment rapide que jt'ai filer + haut, mais tu peut, dois faire beaucoup mieux ;)

Essaye juste stp d'utiliser les balises
si tu fais des impr eran j vais galerer ...

--
Charly CanDo.
Forg en Nouvelle-Zélande ;-) - In üs we trust
Nasi Goreng en Indonesie ;-) - #oulouou
irc.freenode.net - ##pcsoft
Mensaje modificado, 11,julio 2017 - 05:09
Miembro registrado
954 mensajes
Publicado el 11,julio 2017 - 05:10
COucuo,

ZEKM1 => c quoi ?

--
Charly CanDo.
Forg en Nouvelle-Zélande ;-) - In üs we trust
Nasi Goreng en Indonesie ;-) - #oulouou
irc.freenode.net - ##pcsoft
Miembro registrado
90 mensajes
Publicado el 11,julio 2017 - 19:24
Coucou Charly, ci-après le code









ci_apres aussi le code en format texte
PROCEDURE MaFenêtre()
ZKEM1,ZKEM2,ZKEM3,ZKEM4,ZKEM5,ZKEM6 sont des objets Automation "zkemkeeper.ZKEM"
sChaine est une chaîne
bIsConnected_1,bIsConnected_2 , bIsConnected_3,bIsConnected_4,bIsConnected_5,bIsConnected_6 sont des booléens

AutomationEvénement("proc_OnConnected_1",ZKEM1,"OnConnected") // branche la procedure sur un evénement ( connexion du lecteur)
AutomationEvénement("proc_OnDisConnected_1",ZKEM1,"OnDisConnected")// branche la procedure sur un evénement ( déconnexion du lecteur)
AutomationEvénement("proc_OnHIDNum_1",ZKEM1,"OnHIDNum") //// branche la procedure sur un evénement ( passage du badge sur lecteur)

// on recommence la meme chose pour les 5 lecteurs RFID restant
AutomationEvénement("proc_OnConnected_2",ZKEM2,"OnConnected")
AutomationEvénement("proc_OnDisConnected_2",ZKEM2,"OnDisConnected")
AutomationEvénement("proc_OnHIDNum_2",ZKEM2,"OnHIDNum")

//AutomationEvénement("proc_OnConnected_3",ZKEM3,"OnConnected")
//AutomationEvénement("proc_OnDisConnected_3",ZKEM3,"OnDisConnected")
//AutomationEvénement("proc_OnHIDNum_3",ZKEM3,"OnHIDNum")

//AutomationEvénement("proc_OnConnected_4",ZKEM4,"OnConnected")
//AutomationEvénement("proc_OnDisConnected_4",ZKEM4,"OnDisConnected")
//AutomationEvénement("proc_OnHIDNum_4",ZKEM4,"OnHIDNum")

//AutomationEvénement("proc_OnConnected_5",ZKEM5,"OnConnected")
//AutomationEvénement("proc_OnDisConnected_5",ZKEM5,"OnDisConnected")
//AutomationEvénement("proc_OnHIDNum_5",ZKEM5,"OnHIDNum")

//AutomationEvénement("proc_OnConnected_6",ZKEM6,"OnConnected")
//AutomationEvénement("proc_OnDisConnected_6",ZKEM6,"OnDisConnected")
//AutomationEvénement("proc_OnHIDNum_6",ZKEM6,"OnHIDNum")



bIsConnected_1=ZKEM1>>Connect_Com("10.0.0.10",(4370))
SI bIsConnected_1=Faux ALORS
Trace("Lecteur 10.0.0.10 non Connecté" + DateVersChaîne(DateHeureSys," Jjjj JJ.MM.AAAA HH:mm:SS"))
SINON
ZKEM1>>RegEvent(1,65535)
FIN

// meme code pour les 5 autres lecteurs
//bIsConnected_2=ZKEM2>>Connect_Net("10.0.0.11",(4370))
//SI bIsConnected_2=Faux ALORS
//Trace("Lecteur 10.0.0.11 non Connecté" + DateVersChaîne(DateHeureSys," Jjjj JJ.MM.AAAA HH:mm:SS"))
//sinon
//ZKEM2>>RegEvent(2, 65535)
//FIN
Publicado el 19,octubre 2019 - 11:44
Coucou Telix13,
Juste savoir si ton souci de connexion multidevice a été résolu. Car je suis en face d'un souci pareil avec 5 lecteurs. Merci bien de ton retour.