C/Visual C - como usar un sensor biométrico desde VC++

 
Vista:

como usar un sensor biométrico desde VC++

Publicado por rocio (3 intervenciones) el 13/03/2005 22:42:35
Hola a todos... estoy desarrollando un proyecto para la escuela y necesito adquirir datos de un sensor biométrico digital... sólo tengo los drivers... y la aplicación es en Visual C++... que funcion tengo q usar o como le hago =/ ayudaa!! Gracias ...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como usar un sensor biométrico desde VC++

Publicado por fernando.gomez (1603 intervenciones) el 14/03/2005 17:36:49
No tengo ni idea de lo que un sensor biométrico es. Empero, usualmente los dispositivos externos se comunican con el PC por un cable serial, redes o últimamente (y esto lo he constatado al tener que desarrollar una aplicación que imprima con una impresora portátil de Códigos de barras por Infrarrojo en una PocketPC) por InfraRojo o Bluetooth.

El cómo usualmente varía. Suponiendo que te comunicas con un puerto COM, simplemente abres un archivo normal sobre el puerto. P.e. en Windows:

HANDLE hFile =
CreateFile(_T("COM1:"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, NULL);

Como ves, en lugar de escribir el nombre del archivo, escribes el nombre del puerto: COM1 en este caso.

El meollo es saberte el protocolo de bytes que entiende tu dispositivo.

Además, si tienes los drivers, seguramente estos proporcionarán un API más desarrollado. Pero ello deberás buscar la documentación de dichos drivers.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como usar un sensor biométrico desde VC++

Publicado por rocio (3 intervenciones) el 14/03/2005 19:50:53
Hola... un sensor biométrico es un sensor de huella digital... y el que tengo se comunica por puerto paralelo... tengo los drivers pero que tipo de documentación tengo que buscar???
gracias =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como usar un sensor biométrico desde VC++

Publicado por fernando.gomez (1603 intervenciones) el 15/03/2005 00:33:57
Esencialmente, la documentación es qué bytes le necesitas enviar para hacer qué cosa. Es decir, cómo interpreta tu sensor los caracteres de escape.

Por ejemplo, supongamos que el sensor interpreta el caracter 0x1B 0x42 como un comando para obtener, digamos, la autentificación del usuario. Sin embargo, antes tienes que enviarle qué usuario va a validar a traves del comando 0x1B 0x41 <user> 0x1B 0x40. Entonces, si está conectado el sensor a través del COM1, tendrías que hacer algo así (bajo Windows):

/*
si empleas VC, sería conveniente habilitar /TC
en las opciones del compilador.
*/

HANDLE hFile;
char* pBuffer;
int iSize;
DWORD dwWriten = 0x0;
extern char* szUserName; /* el usuario está declarado en otro lado */

hFile = CreateFile("COM1:", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, NULL);
if (hFile == INVALID_HANDLE_VALUE) return -1; /* error */

/* ubicar memoria para dos caracteres de control, m%
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como usar un sensor biométrico desde VC++ (2)

Publicado por fernando.gomez (1603 intervenciones) el 15/03/2005 00:35:25

/* ubicar memoria para dos caracteres de control, más el texto más los otros dos caracteres de control */
iSize = 2 + strlen(szUserName) + 2;
pBuffer = malloc(iSize);
memset(pBuffer, 0, iSize);
/*0x1B 0x41 <user> 0x1B 0x40*/
pBuffer[0] = 0x1B;
pBuffer[1] = 0x41;
memcpy(pBuffer + 2, szUserName, strlen(szUserName));
pBuffer[iSize - 2] = 0x1B;
pBuffer[iSize - 1] = 0x40

/* escribir en el puerto */
WriteFile(hFile, pBuffer, iSize * sizeof(char), &dwWriten, NULL);

/* obtener la respuesta del puerto */
memset(pBuffer, 0, iSize);
ReadFile(hFile, pBuffer, 2, &dwWriten, NULL);

/* validar la respuesta del sensor */
if (pBuffer[0] == 0x1B && pBuffer[1] == 0x42)
{
MessageBox(NULL, "Autentificado", NULL, MB_ICONINFORMATION);
}
else
MessageBox(NULL, "No Autentificado", NULL, MB_ICONINFORMATION);
}

¿Gotcha? Espero que haya sabido explicar qué es lo que tienes que investigar: los comandos. Una vez que los sepas, todo lo que tienes que hacer es algo similiar al ejemplo que te puse.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como usar un sensor biométrico desde VC++ (3)

Publicado por fernando.gomez (1603 intervenciones) el 15/03/2005 00:36:08
Perdón, me faltó el
free(pBuffer);

jaja, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como usar un sensor biométrico desde VC++ (3)

Publicado por x (1 intervención) el 15/03/2005 23:31:53
y tambien te falto cerrar el puerto COM
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar