FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Comunicacion con puerto serie
Hola foro:
Estoy haciendo un programa que debe enviar y recibir datos por el puerto rs232. Tengo 0 (cero) experiencia en el tema y quería consultar dos cosas. La primera es: En la sección "Trucos" existe un hilo http://www.clubdelphi.com/trucos/ind...ll=0&scrollb=0 Donde hay un ejemplo para leer y escribir por el puerto serie. La pregunta es: 1.- ¿Conviene usar este tipo de código o instalar algún componente para este tipo de comunicación? 2.- Si conviene utilizar un componente ¿Cual sería el más recomendable?. 3.- Si conviene usar este código debo adaptar la parte de escritura, ya que en ejemplo transmite un solo byte,
, Entonces hago algo como:
pero en num:= ????(Dato) debe ir alguna forma de convertir la caaadena en un Byte. Eso es todo. Gracias por su atención |
#2
|
||||
|
||||
|
#3
|
||||
|
||||
Gracias
Gracias duiliolosa con
quedó bien ya que te transforma el string a byte, ver que i empiece de 1 y no de cero. Queda el otro tema: ¿Que es mejor, usar esto o un componente? |
#4
|
||||
|
||||
Es verdad ... me comí el comienzo del string...
Si esto te es suficiente, no necesitas un componente. ¿Qé es lo que vas a hacer? Un componente puede que te dé alguna funcionalidad extra para controlar errores o enviar directamente un string. |
#5
|
||||
|
||||
Hola: gracias por responder.
Sólo necesito enviar un texto y esperar la respuesta. Yo creo que con esto me alcanza. El modo de lectura / escritura lo saqué de "Trucos", lo único que hice fué convertirlo en una función que te devuelve true o false. Es que si la cosa es así de facil para que están esos componentes de que hablan. Voy a probar así y ver que sale. Gracias nuevamente. |
#6
|
||||
|
||||
Cita:
Bueno agregando un poquito esta linea de codigo que te propone duilioisola: tambien se podria hacer casting algo asi: Para complementar tus dudas sobre conversion char a byte y viseversa chequea este hilo. Saludos....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#7
|
|||
|
|||
Buenas tardes:
Disculpen cuando uso ese programa una vez funciona bien, pero si intento ejecutarlo nuevamente no funciona, no se si el puerto serial se queda bloqueado?. Debo desconectar el otro equipo para que pueda funcionar nuevamente el programa. Agregue FileClose(Puerto), pero tampoco me funciona esto. agradecere mucho me puedan dar una mano con esto. Muchas gracias, Juan C. |
#8
|
||||
|
||||
Mis dos centavos al asunto:
No pierdas el tiempo accediendo al puerto "a pelo". Descarga e instala la suite AsyncPro (es software libre) y podrás hacer todo eso sin dificultad, incluso tiene componentes para decodificación de paquetes (lo que veo que estás haciendo "a mano") y máquina de estados para implementar protocolos complejos. Todo acompañado de una excelente documentación. Si tenés alguna duda sobre estos componentes o necesitas ejemplos de uso, con gusto intentaré darte una mano. Saludos !
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma. |
#9
|
|||
|
|||
Hola Planteo nuevamente mi problema:
Usando el programa de truco que se encuentra mas arriba, logro adquirir correctamente una primera lectura de un dispositivo por RS232. Puedo apreciar que cada vez que deseo leer, previamente debo escribir o enviar CR (return) al dispositivo, el cual me responde con una cadena que termina en CR LF. Mi problema se presenta al realizar un bucle y querer leer por segunda vez el puerto. El programa queda como bloqueado pensando. Por favor, si alguien me pudiera orientar respecto a que podria hacer. No se si debo de alguna forma limpiar el puerto despues de cada lectura?, si fuera asi cual seria el comando a utilisar?. Agradesco la respuesta anteriormente recibida, pero justamente mi trabajo requiere que realice este programa sin utilisar otros componentes como el Aync Pro. Por favor, agradeceria me orientaran a la solucion de este problema. Gracias, jc. |
#10
|
||||
|
||||
Pude ser que tengas activado el handshake/"control de flujo" por hardware
( DTR, RTS , CTS ) por la pista que das , intenta quitar el modo y ponerlo a none/ninguno , aunque no se si podrás hacerlo con el modo de acceso al cana serie que estas intentando; también prodrías utilizar el "HyperTerminal". ¿ Por que no pueden utlizar un componente ? un trabajo de la escuela / facultad ? Un saludo.
__________________
Because , I have a power. |
#11
|
|||
|
|||
Hola gracias por tu respuesta.
Es para un trabajo en la escuela. Estoy obligado a desarrollarlo asi. Por otro lado, el control de flujo esta en None en el puerto utilizado. Con el hyper terminal puedo leer los datos sin problema. Pero con mi programa abro el puero y leo una primera vez, luego cierro el programa y cuando lo ejecuto nuevamente al momento de intentar leer se queda colgado pensando. Dime si deseas que te envie mi programa, o si tenes alguna otra sugerencia. gracias, jc |
#12
|
||||
|
||||
Yo siempre utilizo el API de Windows para el acceso al canal serie , aquí
te dejo el link al MSDN, quizás puedas utilizar alguna función que te solucione el problema. http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx Un saludo.
__________________
Because , I have a power. |
#13
|
|||
|
|||
Gracias por su respuesta. Al final me permitieron hacerlo con algun componente, asi que utilize Tcomport y ya realize mi programa sin problemas. Nuevamente gracias por el apoyo.
saludos, jc. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
protocolo de comunicacion via puerto serie | martin_vcp | Varios | 1 | 01-08-2008 15:23:02 |
AYUDA,Comunicación con el puerto Serie | tanketa | OOP | 2 | 18-04-2007 00:13:08 |
comunicacion con el puerto serie de la PC en C++ Builder 5 | RobeCarl | C++ Builder | 2 | 10-01-2007 00:36:06 |
Comunicacion Serie | jorge_mosquera | Varios | 1 | 24-11-2005 16:40:47 |
usar XON/XOFF en comunicacion puerto serie | apgperi | C++ Builder | 0 | 08-06-2005 12:33:55 |
|