visual foxpro y puerto serial

280 views
Skip to first unread message

regiomontuno

unread,
Aug 19, 2015, 6:37:42 PM8/19/15
to Comunidad de Visual Foxpro en Español
Buen dia

Como hago para que el puerto serial, reciba y envié información al mismo tiempo, que la comunicación sea Full Duplex.alguien tiene un ejemplo, con este puerto, pero que no sea para usarlo para llamadas, es que solo consigo ejemplos de este tipo.

Carlos Alfaro

unread,
Aug 20, 2015, 8:51:19 PM8/20/15
to publice...@googlegroups.com

Saludos cordiales estimado colega:

 

Ya sea que la información a enviar dependa de la que se reciba o no, lo que debes usar es la propiedad output para enviar e input para recibir, usando mscomm32.

 

En cuanto a un ejemplo full dúplex, que sea simple para proporcionártelo, no tengo.

 

El que tengo es muy especifico para su uso.

 

Por lo que te ofrezco es resolver tus dudas.

 

Bendiciones.

 

Carlos Alfaro

yesid ramirez

unread,
Aug 21, 2015, 10:28:51 AM8/21/15
to publice...@googlegroups.com
Es que tengo un validador de billetes, pero no carga la orden que le doy, pero no se si alguna propiedad que me falta activar

HECTOR YESID RAMIREZ
Ing. de Sistemas
regiom...@gmail.com
www.arpasoftingenieria.com
Monterrey - Casanare

Carlos Alfaro

unread,
Aug 21, 2015, 12:41:45 PM8/21/15
to publice...@googlegroups.com

El manual menciona alguna secuencia de comandos para enviarle la solicitud de la orden?

Tenes claro la configuración de la comunicación?

 

Que configuración tiene el cable que estas usando?

yesid ramirez

unread,
Aug 21, 2015, 12:59:07 PM8/21/15
to publicesvfoxpro
Esta fue el manual que me dio el fabricante, el cable es un USB de impresora, y tambien me dieron uno que en un extremoes un rj45 y el otro el del puerto serial

HECTOR YESID RAMIREZ
Ing. de Sistemas
regiom...@gmail.com
www.arpasoftingenieria.com
Monterrey - Casanare

ICT104U Protocol V7E.pdf

yesid ramirez

unread,
Aug 21, 2015, 1:18:34 PM8/21/15
to publicesvfoxpro
y este es el manual de los cables

HECTOR YESID RAMIREZ
Ing. de Sistemas
regiom...@gmail.com
www.arpasoftingenieria.com
Monterrey - Casanare

ICT106-General-Protocol-For-RS232.pdf
V7E_Series_Installation_Guide_EN cable.pdf

Carlos Alfaro

unread,
Aug 21, 2015, 3:05:22 PM8/21/15
to publice...@googlegroups.com

El manual menciona que debes enviar chr(129) mas el comando de tipo de billete y que se espere máximo 5 segundos la respuesta.

 

Lo que entiendo es que tendrías que hacer es:

 

Suponiendo que el objeto asignado al mscomm32 se llama validador, los pasos a realizar son los siguientes:

 

                Colocar los siguientes valores en validador:

                Propiedad                          Valor

                Commport                         Numero de puerto serial en la computadora

                Handshaking                     0 – No handshaking

                InputMode                        0 – Text

                RThreshold                        1

                Settings                               9600,8,e,1

 

En el evento OnComm podes poner un codigo para saber lo que reciba el puerto, por ejemplo:

 

Thisform.edit.value = thisform.edit.value + this.input

 

Espero que te sirva.

 

Bendiciones.

 

Carlos Alfaro

Carlos Alfaro

unread,
Aug 21, 2015, 3:09:20 PM8/21/15
to publice...@googlegroups.com

Perdon, envie el correo, pero le faltaba un paso.

 

El manual menciona que debes enviar chr(129) mas el comando de tipo de billete y que se espere máximo 5 segundos la respuesta.

 

Lo que entiendo es que tendrías que hacer es:

 

Suponiendo que el objeto asignado al mscomm32 se llama validador, los pasos a realizar son los siguientes:

 

                Colocar los siguientes valores en validador:

                Propiedad                          Valor

                Commport                         Numero de puerto serial en la computadora

                Handshaking                     0 – No handshaking

                InputMode                        0 – Text

                RThreshold                        1

                Settings                               9600,8,e,1

 

En la propiedad output, pones un valor para solicitar la validación: thisform.validador.output = chr(129) + chr(64)

 

En el evento OnComm podes poner un codigo para saber lo que reciba el puerto, por ejemplo:

 

Thisform.edit.value = thisform.edit.value + this.input

 

Espero que te sirva.

 

Bendiciones.

 

Carlos Alfaro

 

 


Sent: viernes, 21 de agosto de 2015 10:59 a.m.
To: publicesvfoxpro

Carlos Alfaro

unread,
Aug 21, 2015, 3:12:49 PM8/21/15
to publice...@googlegroups.com

En cuanto al cable, el que has de estar usando, es de RJ45 a RS232.

Jhonny Zambrana

unread,
Aug 21, 2015, 5:35:52 PM8/21/15
to Comunidad de Visual Foxpro en Español, calf...@yahoo.com.ar
y que de malo hay en utilizar un ejemplo de llamadas, total lo que buscas en saber como funciona el puerto RS232, o me equivoco????

yesid ramirez

unread,
Aug 21, 2015, 5:47:35 PM8/21/15
to publicesvfoxpro
Porque  lo necesito para un dispositivo especifico, y los ejemplos de llamadas no me sirven ya que no voy a realizar llamadas, ya he probado los de llamadas

HECTOR YESID RAMIREZ
Ing. de Sistemas
regiom...@gmail.com
www.arpasoftingenieria.com
Monterrey - Casanare

yesid ramirez

unread,
Aug 21, 2015, 10:54:11 PM8/21/15
to publicesvfoxpro
por mas que le trabajo, no lo hago funcionar y  si le doy dos segundos me devuelve el simbolo del euro y si le doy mas tiempo me acumula mas simbolos de euros

HECTOR YESID RAMIREZ
Ing. de Sistemas
regiom...@gmail.com
www.arpasoftingenieria.com
Monterrey - Casanare

Carlos Alfaro

unread,
Aug 22, 2015, 8:40:01 AM8/22/15
to publice...@googlegroups.com

Deduzco que el símbolo de Euro, es parte de lo que debe de enviar.

 

Que mas debe enviarte?

yesid ramirez

unread,
Aug 22, 2015, 9:53:34 AM8/22/15
to publicesvfoxpro
pues debe quedar listo para que acepte el bllete

HECTOR YESID RAMIREZ
Ing. de Sistemas
regiom...@gmail.com
www.arpasoftingenieria.com
Monterrey - Casanare

Carlos Alfaro

unread,
Aug 22, 2015, 11:06:06 AM8/22/15
to publice...@googlegroups.com

Cuando decís que le das 2 segundos, es porque estas usando un objeto timer.

 

Ahora te recomiendo que midas el tamaño de la variable en donde colocas lo recibido del puerto, por ejemplo:

 

MiVariable = thisform.validador.input

TamañoVariable = len(MiVariable)

 

Tambien que determines que contiene, no solo lo visible, por ejemplo:

 

ContenidoVariable = “”

For VerContenido = 1 to MiVariable

  ContenidoVariable = ContenidoVariable + “carácter: “ + alltrim(str(chr(substr(MiVariable, VerContenido,1) + “ - ”

Endfor

 

?TamañoVariable

?ContenidoVariable

 

El manual dice que enviara un carácter 2 para proceder a aceptar el billete, si ves que te envía carácter 2, debes enviarle chr(16) para que lo acepte.

 

Bendiciones.

 

 

Carlos Alfaro

Carlos Alfaro

unread,
Aug 22, 2015, 1:13:24 PM8/22/15
to publice...@googlegroups.com

Observando el codigo, otra vez cometi un error.

 

 

 

From: publice...@googlegroups.com [mailto:publice...@googlegroups.com]
Sent: sábado, 22 de agosto de 2015 09:06 a.m.
To: publice...@googlegroups.com
Subject: RE: [vfp] visual foxpro y puerto serial

 

Cuando decís que le das 2 segundos, es porque estas usando un objeto timer.

 

Ahora te recomiendo que midas el tamaño de la variable en donde colocas lo recibido del puerto, por ejemplo:

 

MiVariable = thisform.validador.input

TamañoVariable = len(MiVariable)

 

Tambien que determines que contiene, no solo lo visible, por ejemplo:

 

ContenidoVariable = “”

For VerContenido = 1 to TamañoVariable

yesid ramirez

unread,
Aug 22, 2015, 4:33:37 PM8/22/15
to publicesvfoxpro
cual error

HECTOR YESID RAMIREZ
Ing. de Sistemas
regiom...@gmail.com
www.arpasoftingenieria.com
Monterrey - Casanare

Carlos Alfaro

unread,
Aug 22, 2015, 6:04:42 PM8/22/15
to publice...@googlegroups.com

En la linea:

 

For VerContenido = 1 to TamañoVariable

Había puesto MiVariable, en lugar de TamañoVariable

yesid ramirez

unread,
Aug 22, 2015, 10:45:28 PM8/22/15
to publicesvfoxpro
en ContenidoVariable = ContenidoVariable + “carácter: “ + alltrim(str(chr(substr(MiVariable, VerContenido,1) + “ - ”
me sale que funcion, argumentos no validos.

HECTOR YESID RAMIREZ
Ing. de Sistemas
regiom...@gmail.com
www.arpasoftingenieria.com
Monterrey - Casanare

Carlos Alfaro

unread,
Aug 23, 2015, 9:16:44 AM8/23/15
to publice...@googlegroups.com

También allí tuve error le falta cerrar los paréntesis de las funciones, lo correcto es:

 

ContenidoVariable = ContenidoVariable + “carácter: “ + alltrim(str(chr(substr(MiVariable, VerContenido,1)))) + “ - ”

yesid ramirez

unread,
Aug 23, 2015, 11:22:16 AM8/23/15
to publicesvfoxpro
ya los cerre y me arrojo ese error

HECTOR YESID RAMIREZ
Ing. de Sistemas
regiom...@gmail.com
www.arpasoftingenieria.com
Monterrey - Casanare

Víctor Hugo Espínola Domínguez

unread,
Aug 23, 2015, 11:32:36 AM8/23/15
to publice...@googlegroups.com

Estás aplicando STR a una expresión tipo carácter.

Saludos,
Víctor.
Lambaré - Paraguay.

Carlos Alfaro

unread,
Aug 23, 2015, 12:17:06 PM8/23/15
to publice...@googlegroups.com

Es cierto lo, me equivoque de comando:

 

ContenidoVariable = ContenidoVariable + “carácter: “ + alltrim(str(asc(substr(MiVariable, VerContenido,1)))) + “ - ”

Reply all
Reply to author
Forward
0 new messages