Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Obtener datos de un lector de banda magnetica (https://www.clubdelphi.com/foros/showthread.php?t=70056)

Delphitest 27-09-2010 20:13:21

Obtener datos de un lector de banda magnetica
 
Buenas tarde a tod@s,

estoy intentando hacer una aplicación que lea los datos de un lector de banda magnetica usb y los vaya registrando en una base de datos.

Pretendo hacerlo con Delphi 7 y la base de datos Access.

La duda que tengo es como puedo hacer para que cuando pase una tarjeta por el lector automaticamente me lleve esos datos a unos DBEdit de un formulario.

Tengo el manual del lector pero no se bien por donde empezar, aunque intuyo que lo que busco viene ahí.

¿Alguien ha tenido experiencias en algo similar y podría orientarme sobre cómo hacerlo?

Muchas Gracias por vuestro tiempo.

(Puedo subir el manual si es necesario en pdf, pero ocupa 1,45 Mb)

mightydragonlor 27-09-2010 20:21:14

primero haz la prueba mas fácil, pon el cursor en el block de notas y luego pasa la tarjeta por el lector a ver que te trae, si funciona el resto puedes hacerlo por intuición, en caso contrario toca leer el manual xD.

Delphitest 27-09-2010 20:28:23

Gracias por la rapidez,

he hecho esa prueba pero no manda nada.

A la hora de recoger los datos por defecto los manda a traves de un programa que genera un archivo txt. De ahí sí puedo sacarlos y manipularlos pero quería optimizarlo para que no tuviese que ejecutar ese programa.

El lector es un MagShell 900 usb por si sirve de referencia

coso 27-09-2010 23:14:25

Hola,
a mi lo unico que se me ocurre es que hagas una lectura del directorio durante cierto tiempo buscando si existe el archivo (por ejemplo cada segundo) , y en caso de existir, leer de el los datos y borrarlo. A ver si te sirve. Un saludo.

Yeixonm 28-09-2010 01:26:01

el lector
 
normalmente, ese tipo de hardware, envia a un puerto, como por ejemplo com1, la idea seria monitoriar el puerto para saber cuando pasan una tarjeta. Tambien el fabricante tiene un departamento de soporte, en el cual no tienes nada que perder, yo lo realize con en lector de metrologic y ellos me ayudaron un poco. ojo, ese fue una experiencia que tube hace tiempo programando, en este caso estoy comenzando con delphi asi que no te podria ayudar de mucho

Neftali [Germán.Estévez] 28-09-2010 12:02:35

Cita:

Empezado por Delphitest (Mensaje 377654)
Tengo el manual del lector pero no se bien por donde empezar, aunque intuyo que lo que busco viene ahí.

Posiblemente, es una de las funciones de los manuales... ;):D

Cita:

Empezado por Delphitest (Mensaje 377654)
(Puedo subir el manual si es necesario en pdf, pero ocupa 1,45 Mb)

Directamente es posible que no te deje por el tamaño. Puedes subirloa algun servidor tipo MegaUpload, RapidShare,... y poner el link.

Normalmente estos lestores trabajan con el teclado como te han dicho o con algun puerto; Es raro que no posea alguna de estas opciones, porque la del fichero aunque viable (hacer pooling continuo), me parece poco práctica y "chapucera" (no por tu parte sino por parte de ellos de implementar esa única solución).

Revisa la documentación o ponte en contacto con ellos para ver si es posible trabajar de alguna de estas formas. Si no es así:
(1) Está la opción de devolver este y de comprar cualquier otro lector que permita trabajar de ese modo.
(2) Pelearte y hacer el pooling del directorio cada cierto tiempo utilizando un Timer o la API FindFirstChangeNotification para detectar cambios de ficheros en el directorio o utilizar alguno de los múltiples omponentes que existen para detectar esto.

Un saludo.

Delphitest 29-09-2010 17:25:42

Estos son los dos únicos archivos que vienen:

http://www.megaupload.com/?d=8D190JHU

De momento lo he apañado con ShellNotify que detecta el cambio del fichero y podría servir provisionalmente, pero prefiero buscar una solución mas definitiva cogiendo los datos directamente desde el lector.

Agradezco vuestra ayuda

Un saludo


La franja horaria es GMT +2. Ahora son las 17:45:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi