|
Scan d'un code barre (EAN13) le buffer reviens vide. |
Iniciado por prog, 29,mar. 2006 17:57 - 6 respuestas |
| |
| | | |
|
| |
Publicado el 29,marzo 2006 - 17:57 |
Lorsque je scan une code barre Ean13, dans le champ de saisie en cours, j'ai bien la valeur de celui-ci qui s'affiche. Ce que j'aimerais faire par contre c'est que peut importe le focus pris dans ma fenetre, un traitement s'execute au scan d'un code barre.
Ainsi, dans le code d'initialisation de ma fenetre j'ai :
sOuvre(1,5000,5000,50) sFixeParamètre(1,19200,0,8,0)
gnTimer = Timer("Réception",20)
La Procédure Réception correspond à:
IF sDansFileEntrée(1)>0 THEN Trace(sLit(1,sDansFileEntrée(1))) END
La valeur retournée est nulle. A quel niveau se trouve mon erreur? Merci de votre aide.
Cordialement. Matt. |
| |
| |
| | | |
|
| | |
| |
Publicado el 29,marzo 2006 - 19:47 |
Ca ne fonctionne pas en mettant ta procedure dans "A chaque modification de " ?
Pour une application similaire, procedure a chaque scan, j'ai simplement fait suivre un bouton avec la procedure au champ de saisie et parametre le lecteur pour qu'il envoie a chaque scan un Tab suivie d'un retour chariot, a la fin de la procedure je remet le focus sur le champ de saisie. |
| |
| |
| | | |
|
| | |
| |
Publicado el 29,marzo 2006 - 20:55 |
Justement, j'aimerais eviter d'avoir a redonner le focus a mon champ. J'aimerais pouvoir intercepter le code barre et ce peut importe ou soit le focus. c'est pour cela que j'ai mis un timer a l'initialisation de la fenetre qui appelle ma procedure reception. |
| |
| |
| | | |
|
| | |
| |
Publicado el 30,marzo 2006 - 02:10 |
Bonjour,
Je pense surtout que les parametres de com ne sont pas corrects et que rien n'arrive.
Concernant la lecture du port, je préfère:
sOuvre(NumPort,512,512) //suffit amplement
*** Reception*** Buffer="" TANTQUE sDansFileEntrée(sPort) Buffer+=sLit(sPort,1) FIN
si Taille(Buffer)= la taille attendue alors //Traitement ... fin
Ca fonctionne très bien depuis des années sur des matériels très différents.
******* Une autre voie (préconisée): sEvenement ... voir la doc.
Bon dev, PEGOS |
| |
| |
| | | |
|
| | |
| |
Publicado el 30,marzo 2006 - 11:55 |
Le lecteur est connecté en rs232
Le code : //Initialisation de la fenetre
sOuvre(NumPort,512,512) //suffit amplement gnTimer = Timer("Reception",20)
//Procédure Reception*** Buffer="" TANTQUE sDansFileEntrée(sPort) Buffer+=sLit(sPort,1) FIN Trace(Buffer) //Fin Procédure Reception***
Ne renvoie que des chaine vide
De même, avec sEvenement :
//Déclaration globale du projet
sOuvre(1,512,512,sTimeoutDéfaut,Vrai) sEvénement (1, sEveCaractèreReçu , "Lecture")
//Procédure Lecture *** Info ( sLit (1, sDansFileEntrée (1))) //Fin Procédure Lecture ***
La procédure ne renvoie rien du tout. |
| |
| |
| | | |
|
| | |
| |
Publicado el 30,marzo 2006 - 13:21 |
Bonjour,
Pour t'assurer que les infos sont bien envoyées, essaie en premier avec Hyperterminal. Si ça ne fonctionne pas, change de PC; peut-être le port HS ? Quel est le matériel et est-il bien configuré ?
PEGOS |
| |
| |
| | | |
|
| | |
| |
Publicado el 30,marzo 2006 - 19:16 |
Bonjour,
Apriori le lecteur est connecté en RS232 ou USB ?
Si oui, dans le même cas de figure j'ai fait mon ouverture de port COM à l'ouverture de l'application en précisant un sEvenement. Donc a chaque fois qu'il y a une écriture sur le port COM, je lis ce qui y a d'ecrit et je traite.
Ai-je répondu ?
Ne pas oublier de fermer le port COM en sortant !
A bientot |
| |
| |
| | | |
|
| | | | |
| | |
|