|
Débuté par BleuVanille, 25 mai 2009 11:39 - 8 réponses |
| |
| | | |
|
| |
Posté le 25 mai 2009 - 11:39 |
Bonjour à tout le monde. Je dois, dans une application, utiliser un système de contrôle avec clé Dallas. Lorsque l'utilisateur pose sa clé sur le lecteur, l'application doit permettre les fonctionnalités prévues et lorsque l'utilisateur retire sa clé, l'application doit se mettre en attente de la pose d'une clé. La même ou celle d'un autre utilisateur. Je parviens à détecter la pose de la clé et je récupère bien l'ID de cette clé dans un champ de saisie. Toutefois, je n'arrive pas à faire une validation automatique (entrée). Je dois taper sur la touche entrée du clavier. Mais je ne parviens pas à détecter le retrait de la clé !!! En effet, pendant l'utilisation du logiciel, je n'ai plus le champ de saisie en focus. Pour info : Sous le bloc-note la pose de la clé affiche l'ID (16 caractères) et au retrait, le bloc-note reçoit "remove". Le lecteur de clé est livré sans aucun driver ni documentation. Il se branche sur le clavier ou sur prise USB (par l'intermédaire d'un câble RS232 vers USB) Quelqu'un aurait-il une info ? D'avance merci. |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 2009 - 12:30 |
"BleuVanille" <RougeCitron@netcourrier.com> a écrit dans le message de news: 31ce86cea80d54b13a2c4d6cba545905@news.pcsoft...
Bonjour à tout le monde. Je dois, dans une application, utiliser un système de contrôle avec clé Dallas. Lorsque l'utilisateur pose sa clé sur le lecteur, l'application doit permettre les fonctionnalités prévues et lorsque l'utilisateur retire sa clé, l'application doit se mettre en attente de la pose d'une clé. La même ou celle d'un autre utilisateur. Je parviens à détecter la pose de la clé et je récupère bien l'ID de cette clé dans un champ de saisie. Toutefois, je n'arrive pas à faire une validation automatique (entrée). Je dois taper sur la touche entrée du clavier. Mais je ne parviens pas à détecter le retrait de la clé !!! En effet, pendant l'utilisation du logiciel, je n'ai plus le champ de saisie en focus. Pour info : Sous le bloc-note la pose de la clé affiche l'ID (16 caractères) et au retrait, le bloc-note reçoit "remove". Le lecteur de clé est livré sans aucun driver ni documentation. Il se branche sur le clavier ou sur prise USB (par l'intermédaire d'un câble RS232 vers USB) Quelqu'un aurait-il une info ? D'avance merci.
Bonjour,
Sur les lecteurs Dallas mode "WEDGE" c'est à dire émulation clavier, il doit y avoir la possibilité de le paramétrer pour lui demander d'envoyer une ID dite de déconnexion ( 999999999 par exemple) De mémoire, il faut se connecter au lecteur en utilisant Telnet.
De fait, lorsque le lecteur envoie une ID, on teste si elle est égale à notre ID de déconnexion et on fait le traitement en question.
Pour ce qui est du scan, je pense qu'il n'y a pas d'autre choix que d'intercepter les évènement du clavier, lire la totalité du buffer et si cela correspond à un badge ou au débadgage faire les traitement ad'hoc, dans le cas contraire ne rien faire.
Pour information, il n'y a pas pire comme système de connection, les meilleurs (en terme de gestion sont les purs RS232 (car on detecte l'arrivée d'un badgage ou d'un débadgage par la fonction sévènement) ou les Lecteurs USB, à ce moment la on lit les données du lecteur de badge dans un process isolé qui n'est pas perturbé par les saisies au clavier de l'utilisateur.
Bon dev ... et bon courage si vous êtes obligé de travailler en émulation clavier.
Albert P. |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 2009 - 13:25 |
et si, sur le champ ID, tu controles la taille dans le code "A chaque modification". dés que tu as 16 caracteres, tu effectues ton controles et du fait un reprisesaisie ou autre... |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 2009 - 18:17 |
Bonjour,
De quel marque est le lecteur que vous utilisez. Si c'est un lecteur Dallas, la méthode la plus simple pour lire une clé Dallas est de passer par les API fournies sur le site de chez Dallas : http://www.maxim-ic.com/products/ibutton/software/windowsdk/index.cfm et télécharger le SDK L'appel de la DLL IBSF32.DLL permet la lecture sur tout type de port (série, usb ou lpt). Le principe est l'ouverture d'une session à l'aide de Tmsession = AppelDLL32(GDallasDll,"TMExtendedStartSession",gnPort,gnTypePort,Null) ou GDallasDll est ne nom de la DLL, gnport le N° du port de connexion, gnTypePort le type de port de connexion du lecteur ensuite récupérer le N° de session : Res = AppelDLL32(GDallasDll,"TMSetup",Tmsession) puis lancer la lecture de la clé proprement dite
PROCEDURE LireTouche() CodeHexa est une chaîne = "" i est un entier nResul est un entier tabROM est un tableau de 9 entier sur 2 octets nNumFic est un entier Ch est une chaîne sStateBuffer est une chaîne sur 5120 bufRom est un Buffer
tabROM[1] = 0 TANTQUE bContinue = Vrai Res = AppelDLL32(GDallasDll,"TMGetTypeVersion",gnTypePort,&sStateBuffer) Res = AppelDLL32(GDallasDll,"TMTouchReset",Tmsession) Res = AppelDLL32(GDallasDll,"TMFirst",Tmsession,&sStateBuffer) Res = AppelDLL32(GDallasDll,"TMFamilySearchSetup",Tmsession,&sStateBuffer,0x01) Res = AppelDLL32(GDallasDll,"TMNext",Tmsession,&sStateBuffer) tabROM[1] = 0 Res = AppelDLL32(GDallasDll,"TMRom",Tmsession,&sStateBuffer,&tabROM) // La clé lue n'est pas une DS1990 SI NumériqueVersChaîne(tabROM[1],"02x") <> "01" ALORS // On tente une recherche sur les DS1995 Res = AppelDLL32(GDallasDll,"TMFamilySearchSetup",Tmsession,&sStateBuffer,0x0A) Res = AppelDLL32(GDallasDll,"TMNext",Tmsession,&sStateBuffer) tabROM[1] = 0 Res = AppelDLL32(GDallasDll,"TMRom",Tmsession,&sStateBuffer,&tabROM) FIN SELON Majuscule(NumériqueVersChaîne(tabROM[1],"02X")) CAS "01" // Une clé 1990 est détectée, on arrête la lecture et on reconstitue le passe bContinue = Faux PasseRetour = Majuscule(NumériqueVersChaîne(tabROM[1],"02x") + NumériqueVersChaîne(tabROM[2],"02x") + NumériqueVersChaîne(tabROM[3],"02x") + NumériqueVersChaîne(tabROM[4],"02x") + ... NumériqueVersChaîne(tabROM[5],"02x") + NumériqueVersChaîne(tabROM[6],"02x") + NumériqueVersChaîne(tabROM[7],"02x") + NumériqueVersChaîne(tabROM[8],"02x")) Message("Clé lue : " + PasseRetour) AppelDLL32(GDallasDll,"TMClose",Tmsession) gnTypeCleLue = 1 EditOk = Vrai Ferme CAS "0A" // Une clé 1995 est détectée, on arrête la lecture et on reconstitue le passe bContinue = Faux PasseRetour = Majuscule(NumériqueVersChaîne(tabROM[1],"02x") + NumériqueVersChaîne(tabROM[2],"02x") + NumériqueVersChaîne(tabROM[3],"02x") + NumériqueVersChaîne(tabROM[4],"02x") + ... NumériqueVersChaîne(tabROM[5],"02x") + NumériqueVersChaîne(tabROM[6],"02x") + NumériqueVersChaîne(tabROM[7],"02x") + NumériqueVersChaîne(tabROM[8],"02x")) Message("Clé lue : " + PasseRetour) AppelDLL32(GDallasDll,"TMClose",Tmsession) gnTypeCleLue = 1 EditOk = Vrai Ferme FIN Multitâche(50) FIN
Pour plus d'info voir l'aide en ligne en plus sur l'utilisation des API.
Cordialement L.DUMOULIN www.ned-sarl.tk |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 2009 - 18:54 |
Merci, oui, je venais justement de m'orienter dans cette direction.
laurent a écrit dans le message de news <8f335902b7e811b5f7efbdcdcf3bf63b@news.pcsoft> : > et si, sur le champ ID, tu controles la taille dans le code "A chaque modification". dés que tu as 16 caracteres, tu effectues ton controles et du fait un reprisesaisie ou autre... |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 2009 - 18:55 |
Merci pour ces pistes !
Je vais demander à mon client de s'orienter vers la solution USB. Par contre, TELNET, je ne connais pas.
Albert P. a écrit dans le message de news <4a1a53e7$1@news.pcsoft.fr> :
"BleuVanille" <RougeCitron@netcourrier.com> a écrit dans le message de news: 31ce86cea80d54b13a2c4d6cba545905@news.pcsoft... Bonjour à tout le monde. Je dois, dans une application, utiliser un système de contrôle avec clé Dallas. Lorsque l'utilisateur pose sa clé sur le lecteur, l'application doit permettre les fonctionnalités prévues et lorsque l'utilisateur retire sa clé, l'application doit se mettre en attente de la pose d'une clé. La même ou celle d'un autre utilisateur. Je parviens à détecter la pose de la clé et je récupère bien l'ID de cette clé dans un champ de saisie. Toutefois, je n'arrive pas à faire une validation automatique (entrée). Je dois taper sur la touche entrée du clavier. Mais je ne parviens pas à détecter le retrait de la clé !!! En effet, pendant l'utilisation du logiciel, je n'ai plus le champ de saisie en focus. Pour info : Sous le bloc-note la pose de la clé affiche l'ID (16 caractères) et au retrait, le bloc-note reçoit "remove". Le lecteur de clé est livré sans aucun driver ni documentation. Il se branche sur le clavier ou sur prise USB (par l'intermédaire d'un câble RS232 vers USB) Quelqu'un aurait-il une info ? D'avance merci.
Bonjour, Sur les lecteurs Dallas mode "WEDGE" c'est à dire émulation clavier, il doit y avoir la possibilité de le paramétrer pour lui demander d'envoyer une ID dite de déconnexion ( 999999999 par exemple) De mémoire, il faut se connecter au lecteur en utilisant Telnet. De fait, lorsque le lecteur envoie une ID, on teste si elle est égale à notre ID de déconnexion et on fait le traitement en question. Pour ce qui est du scan, je pense qu'il n'y a pas d'autre choix que d'intercepter les évènement du clavier, lire la totalité du buffer et si cela correspond à un badge ou au débadgage faire les traitement ad'hoc, dans le cas contraire ne rien faire. Pour information, il n'y a pas pire comme système de connection, les meilleurs (en terme de gestion sont les purs RS232 (car on detecte l'arrivée d'un badgage ou d'un débadgage par la fonction sévènement) ou les Lecteurs USB, à ce moment la on lit les données du lecteur de badge dans un process isolé qui n'est pas perturbé par les saisies au clavier de l'utilisateur. Bon dev ... et bon courage si vous êtes obligé de travailler en émulation clavier. Albert P. |
| |
| |
| | | |
|
| | |
| |
Posté le 25 mai 2009 - 20:12 |
Bonjour et merci pour votre réponse détaillée !!! Le lecteur fourni par mon client est un GIGATEK TMR900. Je n'ai rien trouvé sur le net pour la doc ou drivers ou autres. Je vais demander à mon client de trouver autre chose. Peut-être à votre société ? |
| |
| |
| | | |
|
| | |
| |
Posté le 26 mai 2009 - 18:36 |
"BleuVanille" <RougeCitron@netcourrier.com> a écrit dans le message de news: 24326ea002ad1dd2cd615f1de4e4e90f@news.pcsoft...
Bonjour et merci pour votre réponse détaillée !!! Le lecteur fourni par mon client est un GIGATEK TMR900. Je n'ai rien trouvé sur le net pour la doc ou drivers ou autres. Je vais demander à mon client de trouver autre chose. Peut-être à votre société ?
Pour faire suite à mon précédent message, il faut utiliser l'hyperterminal et non pas telnet ... et voici un lien pour consulter la doc du TMR900.
http://quadpos.com/ftp/data/gigatek/kelloxx.pdf
Bon dev.
Albert P. |
| |
| |
| | | |
|
| | |
| |
Posté le 27 mai 2009 - 11:05 |
MERCI !!!!!!!! Situation débloquée grâce à toi !! Que les Dieux de l'informatique te bénissent.
Albert P. a écrit dans le message de news <4a1bfd2f$1@news.pcsoft.fr> :
"BleuVanille" <RougeCitron@netcourrier.com> a écrit dans le message de news: 24326ea002ad1dd2cd615f1de4e4e90f@news.pcsoft... Bonjour et merci pour votre réponse détaillée !!! Le lecteur fourni par mon client est un GIGATEK TMR900. Je n'ai rien trouvé sur le net pour la doc ou drivers ou autres. Je vais demander à mon client de trouver autre chose. Peut-être à votre société ?
Pour faire suite à mon précédent message, il faut utiliser l'hyperterminal et non pas telnet ... et voici un lien pour consulter la doc du TMR900. http://quadpos.com/ftp/data/gigatek/kelloxx.pdfBon dev. Albert P. |
| |
| |
| | | |
|
| | | | |
| | |
|