Codigos o Secuencias de Escape para leer Scanner?

881 views
Skip to first unread message

Fabio Ramirez

unread,
Feb 8, 2012, 6:25:19 PM2/8/12
to Comunidad de Visual Foxpro en Español
Hola Amigos,

Un Cliente me pide hacer una conexion con un Scanner DATALOGIC
Magellan TM 8500Xt, para leer el peso y el codigo de barras desde una
aplicación, si alguien tiene las secuencias, estaria muy agradecido...

Hasta Pronto.. y mil gracias..

Alex Vargas

unread,
Feb 8, 2012, 10:45:39 PM2/8/12
to Comunidad de Visual Foxpro en Español
Hola Fabio,

La Forma de uso del OPOS/ADKs es un standard para retail.
La forma de uso por lo general es la siguiente:

Obviamente primero debes instanciar Los Activex siguiendo estos pasos
(Selecciona Herramientas, Opciones, Controles, Controles Activex)

Busca en la lista algo como:
Para la Balanza (OPOS Scale Control 1.5.101 [Public, by CRM/RCS-
Dayton])
Para el Scanner (OPOS Scanner Control 1.5.101 [Public, by CRM/RCS-
Dayton])

Selecciónalos y das click en aceptar, después de esto te aparecerán
disponibles en la barra de Controles Activex.
Arrastra ambos a tu form y utiliza el siguiente código.

** Esto en el Init del Form
_VFP.AutoYield = .F.

With Thisform
.DataScanner.Open("DL_SC_RS232Scanner")
If .DataScanner.Resultcode <> 0
=Messagebox('Scanner No Disponible')
.DataScanner.Enabled = .F.
Else
.DataScanner.ClaimDevice( 0 )
.DataScanner.DeviceEnabled = .T.
.DataScanner.AutoDisable = .F.
.DataScanner.DataEventEnabled = .T.
.DataScanner.DecodeData = .T.
Endif
Endwith

** En el Destroy
If Thisform.DataScanner.Enabled = .T.
With Thisform
.DataScanner.DeviceEnabled = .F.
If .DataScanner.ResultCode <> 0
Messagebox("Fallo la desactivacion del Scanner")
Endif

If .DataScanner.ReleaseDevice <> 0
Messagebox("Fallo la liberación del Scanner")
Endif

If .DataScanner.Close <> 0
Messagebox("Fallo Cierre del Scanner")
Endif
Endwith
Endif

** En el DataEvent del Control ActiveX del Scanner**
LPARAMETERS STATUS
IF ThisForm.DataScanner.ENABLED = .T.
WITH THISFORM
ThisForm.TxtcArticulo.VALUE = .DataScanner.ScanDataLabel
.DataScanner.DataEventEnabled = .T.
KEYBOARD '{ENTER}'
ENDWITH
ENDIF

** En el DataEvent del Control ActiveX de la balanza**
With Thisform
WAIT WINDOW "Peso = " +STR(.DataScale.ScaleLiveWeight,10,2)
.DataScale.DataEventEnabled = .T.
Keyboard '{ENTER}'
Endwith


Espero te sirva de algo.

Saludos


Alex A. Vargas

Fabio Ramirez

unread,
Feb 9, 2012, 2:04:51 PM2/9/12
to Comunidad de Visual Foxpro en Español
Hola Alex

Ante Todo Muy agradecido por tu respuesta, estoy buscando como una
conexión mas nativa,
es decir conectarme al puerto, enviar los caracteres , leer el valor
devuelto y cerrar conexión,
pero sin utilizar activex, ya que he tenido muy mala racha con estos,
entonces lo que hago es que creo
mis propios librerias DLL, para comunicación serial, pero resulta que
algunas basculas, leen sin problemas
y a otros hay que enviarles las secuencias de carácter para la
lectura.. (estos caracteres son los que busco)

de todas formas mil gracias amigo alex.. por tu respuesta..

Alex Vargas

unread,
Feb 9, 2012, 11:49:39 PM2/9/12
to Comunidad de Visual Foxpro en Español
Por nada Fabio.

En cambio a mi estos OPOS me resuelven todo, desde que se determinaron
estos Standards me olvide del MSComm32.

Estos Activex son el equivalente al Dll que queres hacer, pues manejan
los dispositivos directamente sin dependencia de Windows.
De hecho en las impresoras de POS, uso el OPOS correspondiente sin
necesidad de instalar los drivers para windows.

A propósito, en los manuales creo que están los caracteres que
necesitas.

Suerte y Saludos

Alex A. Vargas

Fabio Ramirez

unread,
Feb 10, 2012, 11:52:47 AM2/10/12
to Comunidad de Visual Foxpro en Español

Alex ,

Nuevamente, Muchísimas Gracias.. por tu apoyo.. te cuento que tenias
razón
buscando en los manuales encontré las secuencias.. y pude
desarrollarlo a mas bajo nivel
creando una dll Nativa, y luego declarándola en nuestro Amado zorro ,
funciona super rápido

Saludos y mil gracias..

Alex Vargas

unread,
Feb 10, 2012, 10:09:34 PM2/10/12
to Comunidad de Visual Foxpro en Español
Que bueno Fabio.

Me alegra que todo te haya resultado bien.

Saludos

Alex A. Vargas

Daniel Bojorge (Foros)

unread,
Sep 10, 2012, 5:55:12 PM9/10/12
to publice...@googlegroups.com
Muchas gracias por este  gran aporte, tenía problemas con la lectura de código de barra, pero ya lo logré hacer con tu ayuda, lo de la báscula (balanza o pesa), lo hago casi similar.

Gracias nuevamente.

Alex Vargas

unread,
Sep 14, 2012, 10:53:40 PM9/14/12
to publice...@googlegroups.com

Hola Daniel.

Si te refieres al codigo que comparti arriba, no hay problema. Estoy a la orden.

Saludos

 

Alex A. Vargas

Manuel Serrano

unread,
Dec 24, 2013, 12:26:57 PM12/24/13
to publice...@googlegroups.com
Alex estoy terminando una aplicacion en VB6, y logro llegar hasta el punto de que la bascula me envie el peso, pero siempre lo hace en cero, me podrias ayudar, gracias!

Andres Felipe Gomez David

unread,
May 30, 2014, 2:01:46 AM5/30/14
to publice...@googlegroups.com

Buenas noches,

Estoy tratando de conectar esa pesa Magellan 8300 y monte el codigo que digiste pero saca un error que dice Scanner No Dsiponible, lo ensayo con hiperterminal y se leen bien tanto codigo de barras como el peso, pero para el peso por hiperterminal tengo que mandarle un archivo con un codigo para que me de el peso, eso como lo coloco en fox con el OleviewComm?

Muchas gracias por la respuesta a las preguntas

Víctor Vega

unread,
Aug 30, 2018, 11:26:10 PM8/30/18
to Comunidad de Visual Foxpro en Español
Saludos... Espero alguien pueda darme una guia al respecto
tambien estoy intentando integrar esta balanza a mi software.
esta escrito en vb

ni siquiera puedo procesar el archivo de texto con el comando S11+<CR> con hyperterminal.

quedo atento
Reply all
Reply to author
Forward
0 new messages