Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Gambas3: SerialPort1.Speed No Acepta Configuracion
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Gambas3: SerialPort1.Speed No Acepta Configuracion 
 
Hola: Quiero pedir ayuda para resolver un problema con la configuración del SerialPort1 relativo a su velociad en bps.

Tengo Ubuntu 18.04 64 bits, Gambas3. Mi proyecto ya tiene definido el gb.net. El programa no manda ningún mensaje de error, pero al enviar datos por el puerto serial (/dev/ttyS0, con sus permisos correspondientes) el receptor no responde. Así que viendo las señales con el osciloscopio y esperando observar la emisión de un solo
byte, la señal debería tener una duración de 1.04 ms aproximadamente, para 9600 bps. Sin embargo la señal que se emite es de 2.1 ms ( correspondiendo a una velocidad de aproximadamente 5000 bps) y esa es la razón por la que el receptor no recibe. Probé a 19200 bps y sigue resultando una señal de 2.1 ms. Así que algo debo estar haciendo mal. Esta es la configuración del puerto:

SerialPort1.PortName = "/dev/ttyS0"
SerialPort1.DataBits = "8"                      'SerialPort.Bits8
SerialPort1.FlowControl = SerialPort.none
SerialPort1.Parity = SerialPort.None
SerialPort1.Speed = "9600"
SerialPort1.StopBits = "1"                      'SerialPort.Bits1
'Sp.Open

Por favor si alguien tiene la amabilidad de darme una idea de cómo lo puedo solucionar, se lo agradeceré mucho.

Nota: En gambas2 esto no sucedía.
 



 
AlfredoSC - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas3: SerialPort1.Speed No Acepta Configuracion 
 
AlfredoSC escribió:  
Hola: Quiero pedir ayuda para resolver un problema con la configuración del SerialPort1 relativo a su velociad en bps....
Por favor si alguien tiene la amabilidad de darme una idea de cómo lo puedo solucionar, se lo agradeceré mucho.
Nota: En gambas2 esto no sucedía.

Lo siento, pero no te puedo ayudar con ese tema, peor me viene a la mente que hay algo de estas cosas en el foro.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas3: SerialPort1.Speed No Acepta Configuracion 
 
tincho escribió:  
AlfredoSC escribió:  
Hola: Quiero pedir ayuda para resolver un problema con la configuración del SerialPort1 relativo a su velociad en bps....
Por favor si alguien tiene la amabilidad de darme una idea de cómo lo puedo solucionar, se lo agradeceré mucho.
Nota: En gambas2 esto no sucedía.

Lo siento, pero no te puedo ayudar con ese tema, peor me viene a la mente que hay algo de estas cosas en el foro.
Saludos.


Después de leer algunos de los temas del foro y hacer varios cambios, me puse a analizar el oscilograma: Yo envío como prueba un solo byte, por facilidad el "7" es decir 0x37. En el osciloscopio aparecen 2 bytes seguidos, el 0x37 y el 0x0A, por eso era la duración de 2.1 ms. De dónde viene esa 0x0A (?) me pregunté. Entonces en mi sentencia puse un ; al final, así

  Print #SerialPort1, dato;

y se envío únicamente el 0x37 ("7") con duración de 1 ms. Así que el tema está solucionado y ese ; al final es muy importante. Sin embargo la literatura de SerialPort debería considerar describir, que si no se usa ; Gambas3 adicionará un LF (0x0A) por default, aunque empiezo a sospechar que es obvio....De todos modos Gracias por leer el tema y saludos.
 



 
AlfredoSC - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas3: SerialPort1.Speed No Acepta Configuracion 
 
Hola

Me alegra que lo hayas podido solucionar. Aunque en el pasado he utilizado bastante el puerto serie en mis programas (para comunicarme con transceptores de radio), no lograba entender tu problema sin saber cómo estabas enviando y leyendo el puerto. Aún así, me llamó la atención que le pases una cadena a los parámetros del puerto en lugar de enteros, que es lo que almacenan las constantes que se deberían usar (SerialPort.BitsX). Me imagino que gambas hará la conversión internamente.

En cualquier caso, enhorabuena y bienvenido, estamos aquí para ayudar siempre que podamos.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas3: SerialPort1.Speed No Acepta Configuracion 
 
AlfredoSC escribió:  
De dónde viene esa 0x0A (?) me pregunté. Entonces en mi sentencia puse un ; al final, así

  Print #SerialPort1, dato;

y se envío únicamente el 0x37

La función "Print" escribe un flujo de datos de manera formateada, ponendo en fin el valor &0A (0x0A). ...típicamente una cadena de caracteres.

Para evitar este formateo, tienes que usar la función Write: http://gambaswiki.org/wiki/lang/write?nh
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas3: SerialPort1.Speed No Acepta Configuracion 
 
vuott escribió:  
AlfredoSC escribió:  
De dónde viene esa 0x0A (?) me pregunté. Entonces en mi sentencia puse un ; al final, así

  Print #SerialPort1, dato;

y se envío únicamente el 0x37

La función "Print" escribe un flujo de datos de manera formateada, ponendo en fin el valor &0A (0x0A). ...típicamente una cadena de caracteres.

Para evitar este formateo, tienes que usar la función Write: http://gambaswiki.org/wiki/lang/write?nh


Habiendo consultado el link que envías, encontré este Warning: When writing a string, the length of the string is sent before the string contents. "Cuando se escribe un string (cadena), la longitud del string es enviada antes del contenido del string", lo cual nos lleva al envío de 2 bytes; la longitud y la cadena, por lo que Write podría llevarme otra vez al problema original, que opinan?
 



 
AlfredoSC - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Gambas3: SerialPort1.Speed No Acepta Configuracion 
 
AlfredoSC escribió:  
"Cuando se escribe un string (cadena), la longitud del string es enviada antes del contenido del string", lo cual nos lleva al envío de 2 bytes; la longitud y la cadena, por lo que Write podría llevarme otra vez al problema original, que opinan?


Si especificas la longitud de la cadena a continuación de dicha cadena, no. Sólo se envía la cadena.

WRITE [ # Stream , ] String [ , Length ]

Lo que pasa es que es opcional, en caso de no especificar la longitud, entonces sí que se envía ese dato. Para obtener la longitud de la cadena previamente al envío puedes hacer esto:

WRITE #stream, cadena_envio, String.Len(cadena_envio)


Es recomendable el uso de las funciones de cadena String porque se tienen en cuenta los caracteres UTF8 especiales, que como sabes, ocupan 2 bytes en lugar de 1. De otro modo, la cadena enviada podría quedar truncada al final si contiene algún carácter acentuado o especial.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Recorrer O Contar En Archivo De Configuracion tomas General 4 Jueves, 04 Noviembre 2010, 12:11 Ver último mensaje
tomas
No hay nuevos mensajes Un Campo Sql Varchar(32) Que Acepta Mas De... v3ctor Bases de Datos 1 Martes, 27 Diciembre 2016, 00:00 Ver último mensaje
tincho
No hay nuevos mensajes Chooser No Acepta Mas De 62 Argumentos :( v3ctor General 12 Viernes, 07 Septiembre 2018, 13:49 Ver último mensaje
Shell
No hay nuevos mensajes Apache2 Configuracion tincho Mundo Linux 5 Sabado, 02 Marzo 2019, 22:56 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron