Leer puerto serie (COM) en Visual Fox pro

Hola, sabes! Estuve revisando mucho la guía para usar el Active POR Mscomm32, y parece no calzar en lo que necesito.
Según entendí... Este Active POR, permite abrir el puerto, y "comunicarse" a través de ellos, pero no es específicamente lo que necesito.
Lo que necesito, es leer lo que tiene almacenado en memoria cada dispositivo.
El capturador de cod. De barras, guarda cada lectura que se realiza. Posteriormente, lo conecto al PC, y debo leer todas las capturas, en fin, recuperar la info. De forma DIFERIDA, no directamente cuando se captura.
Lo mismo pasa con el GPS Garmin, este va registrando la ruta, quedando almacenada en memoria, para posteriormente recuperarla.
PREGUNTA ¿Es posible leer los datos como necesito? Lo lógico, creo yo, es que el programa consulte el puerto, y este responda. Por ende, ¿debiera existir ciertos comando específicos para "solicitar" la info. Al dispositivo?
Si esto es como creo... Y averiguando, debiera utilizar las SDK, que provee cada fabricante. Por lo menos el soporte Técnico del capturador me entrego las DLL's, y los del GPS, están disponibles en su sitio.
Aquí ya se me complica, ya que según las SDK's de cada uno, no veo en los documentos, posibilidad de manejo con VFP. Teniendo como alternativas,  C++ y Visual C++. Lenguajes que no domino...
¿Qué opinas?... ¿Podría solicitar a algún experto que me ayudase en esto, osea, con algunas rutinas?
Gracias

1 Respuesta

Respuesta
1
El problema que menciona no es debido a una limitación del control active por sino del dispositivo, si el dispositivo tiene memoria tendrá algún estimulo para que te envíe la info, algunos dispositivos envían información en forma constante, por ejemplo las centrale telefónicas Panasonic son así, envían la info constantemente y cuando lo lees con el control active POR se vacía su buffer, las balanzas o básculas de camiones necesitan recibir un comando para que te responda con el envío de datos, pero todo depende del dispositivo y no del control active por, lo de las SDK es la solución, no siempre vienen con ejemplos en fox, pero fox soporta automatización, creo que ese es el camino que debes seguir.
Osea, independiente de que las SDK's estén diseñadas para otro lenguaje, ¿podría utilizarlas de forma automatizada con VFP?
¿Cómo es eso de la automatización?
Gracias por responder
Pero deberá leer un poco, mira el comando DECLARE DLL, o bien las funciones API, si es una DLL es seguro que funciona con VFP sin importar en que lenguaje fue creado.
Te adelanto que te dará un poco de trabajo, te paso un ejemplo de uso de una DLL proporcionada por una impresora BEMATECH con cupón fiscal. Este es un ejemplo como se declara las DLL que trae consigo la impresora.
DECLARE INTEGER Bematech_FI_AbreComprobanteDeVentaEx IN "BemaFi32.dll";
STRING RIF,;
STRING NOMBRE,;
STRING DIRECCION
*Parámetros:
*RIF string hasta 29 caracteres con el RIF del cliente.
*NOMBRE string hasta 41 caracteres con el nombre del cliente.
*DIRECCION string hasta 133 caracteres con la dirección del cliente.
*Valores de Retorno:
* 0 - Error de comunicación
* 1 - Ok
*-2 - Parámetro inválido
*Observación:
*- El cupon fiscal debe estar cerrado.
DECLARE INTEGER Bematech_FI_AbreComprobanteDeVenta IN "BemaFi32.dll";
STRING RIF,;
STRING NOMBRE
*Parámetros:
*RIF string hasta 18 caracteres con el RIF del cliente.
*NOMBRE string hasta 41 caracteres con el nombre del cliente.
*Valores de Retorno:
* 0 - Error de comunicación
* 1 - Ok
*-2 - Parámetro inválido
*Observación:
*- El cupon fiscal debe estar cerrado.
DECLARE INTEGER Bematech_FI_VendeArticulo IN "BemaFi32.dll";
STRING Codigo,;
STRING Descripcion,;
STRING Alicuota,;
STRING TipoCtd,;
STRING Cantidad,;
INTEGER CasasDecimales,;
STRING ValorUnitario,;
STRING TipoDesc,;
STRING ValorDesc
*Parámetros:
* Codigo String hasta 13 caracteres con el código del producto.
* Descripcion String hasta 29 caracteres con la descripción del producto.
* Alicuota String con la alucuota.
* TipoCtd Un caracter indicando el tipo de Cantidad.
* I - Entera y F - Fraccionaria
* Cantidad String con hasta 4 dígitos para cantidad entera y
* 7 dígitos para cantidad fraccionaria.
* En la cantidad fraccionaria son 3 casas decimales.
* CasasDecimales Entero indicando el número de casas decimales para el
* valor unitário (2 o 3).
* ValorUnitario String hasta 8 dígitos para valor unitario.
* TipoDesc Un caracter indicando la forma de descuento.
* ' descuento por valor y '%' descuento porcentual.
* ValorDesc String con hasta 8 dígitos para descuento por valor ( 2 casas decimales )
* y 4 dígitos para descuento porcentual.
*Valores de Retorno:
* 0 - Error de comunicacion
* 1 - Ok
*-2 - Parámetro inválido
*-3 - Alicuota no programada
*Observación:
*- El cupon fiscal debe estar abierto.
Voy a probar... no había utilizado DLL's antes... es nuevo para mi... pero no imposible.
Gracias.
Finaliza este tips
¿Y será?... no me funconó el asunto en VFP... probablemente las funciones estén diseñadas para C++ y .NET como dice la guía... ahora estoy utilizando un programa para conocer los nombres de las funciones contenidas en la DLL... a ver si resulta ahora.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas