PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → AutomationEvénement+threads
AutomationEvénement+threads
Started by Telix13, Jun., 27 2017 6:26 PM - 9 replies
Registered member
74 messages
Posted on June, 27 2017 - 6:26 PM
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.
Registered member
74 messages
Posted on July, 07 2017 - 6:53 PM
bonjour, j'ai essayé ça , mais





erreur



Registered member
948 messages
Popularité : +30 (92 votes)
Posted on July, 08 2017 - 5:29 AM
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
Registered member
74 messages
Posted on July, 08 2017 - 7:25 PM
bonjour, et merci
je crois que l'objet automation doit contenir le thread, mais



erreur



Registered member
948 messages
Popularité : +30 (92 votes)
Posted on July, 09 2017 - 6:26 AM
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
Registered member
74 messages
Posted on July, 10 2017 - 7:32 PM
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.
Registered member
948 messages
Popularité : +30 (92 votes)
Posted on July, 11 2017 - 5:09 AM
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
Message modified, July, 11 2017 - 5:09 AM
Registered member
948 messages
Popularité : +30 (92 votes)
Posted on July, 11 2017 - 5:10 AM
COucuo,

ZEKM1 => c quoi ?

--
Charly CanDo.
Forg en Nouvelle-Zélande ;-) - In üs we trust
Nasi Goreng en Indonesie ;-) - #oulouou
irc.freenode.net - ##pcsoft
Registered member
74 messages
Posted on July, 11 2017 - 7:24 PM
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
Posted on October, 19 2019 - 11:44 AM
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.