Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Leer/escribir puerto serie!! (https://www.clubdelphi.com/foros/showthread.php?t=65210)

Kukko 27-11-2009 18:49:37

Leer/escribir puerto serie!!
 
Hola a todos,
Bueno mi problema es el siguiente: -tengo un proyecto entre manos de control de un pequeño robot, con un micro 8051, el cual dispone de unos sensores de ultrasonidos con los que se guarda la información de la proximidad/legania en que se encuentra de una pared. Este robot esta directamente conectado con un transeiver (emisor/receptor) el cual esta conectado al puerto serie del PC.
Por lo tanto, el transeiver manda una cadena de datos al puerto serie del PC. Lo que quiero es leer estos datos y escribir otros desde el PC hacia el robot, es decir leer/escribir sobre el puerto serie, me he estado informando un poco y he visto que se puede hacer con el xcommdrv32 de Delphi, pero no consigo entender su funcionamiento. Alguien me podria ayudar? GRACIAS

Neftali [Germán.Estévez] 30-11-2009 11:48:04

Si buscas en Torry hay bastantes componentes para trabajar con el puerto Serie. Seguramente similares al que comentas. Lo que te puede ser útil, es que muchos de estos componentes vienen con demos en las que puedes ver cómo confugurar, leer y escribir por el puero serie.

Kukko 30-11-2009 15:16:48

Si si, se de la existencia de los componentes en Torry, pero mi problema es que no se como funcionan dichos componentes. Si alguien me puede ayudar con un ejemplo con el xcomdrv32 se lo agradeceria.

Neftali [Germán.Estévez] 30-11-2009 16:25:36

Bueno te comentaba que miraras las demos que vienen con ellos, por que el funcionamiento es bastante básico. Viendo el código de alguno de esos ejemplos dberías poder hacerlo tú mismo sin problemas.

Una vez configurado el puerto con los parámetros correctos, basta leer/escribir los caracteres que necesites.

Kukko 30-11-2009 18:03:34

Hola,
si bueno el problema es que tengo que usar el xcomdrv y el "ejemplo" k se usa esta mal, ya que faltan librerias....

CrystalBlood 01-12-2009 15:02:55

Cita:

Empezado por Kukko (Mensaje 347615)
Hola a todos,
Bueno mi problema es el siguiente: -tengo un proyecto entre manos de control de un pequeño robot, con un micro 8051, el cual dispone de unos sensores de ultrasonidos con los que se guarda la información de la proximidad/legania en que se encuentra de una pared. Este robot esta directamente conectado con un transeiver (emisor/receptor) el cual esta conectado al puerto serie del PC.
Por lo tanto, el transeiver manda una cadena de datos al puerto serie del PC. Lo que quiero es leer estos datos y escribir otros desde el PC hacia el robot, es decir leer/escribir sobre el puerto serie, me he estado informando un poco y he visto que se puede hacer con el xcommdrv32 de Delphi, pero no consigo entender su funcionamiento. Alguien me podria ayudar? GRACIAS

Yo personalmente tengo buenos resultados con el componente TCiaComPort, para más info, te dejo el link del componente: http://www.mestdagh.biz/
Y es bien explícito, tenes los stops bits, los baudios (velocidad de transmisión), la paridad, el puerto COM, completo, y lo mejor es que es Event Driven... Saludos.

Kukko 02-12-2009 19:47:10

Muchas gracias pero lo siento por seguir siendo un poco pesado, pero sigo sin saber muy bien como va sin un ejemplo, sabeis de algun ejemplo con el componente TCiaComPort? GRACIAS y lo siento...

Neftali [Germán.Estévez] 03-12-2009 11:41:13

¿Puedes poner alguna referencia a ese componente?
¿Exactamente cual es el problema?
¿No sabes configurarlo? ¿Utilizarlo? ¿Tienes algo? ¿Te da error? ...

Kukko 03-12-2009 12:03:32

Es un transeiver RF650 que se comunica con otro transeiver RF650 y mandan la informacion con un microcontrolador ATM89C5131A del tipo 8051. El problema que tengo es que no se como configurar el envio y recepcion de datos entre el PC el Transeiver i el micro.

Neftali [Germán.Estévez] 03-12-2009 12:25:40

Si te soy sincero, esta explicación me ha sonado a que "se ha estropeado el condensadior de fluzo" :o:o

Se me escapa.
Lo que sí te puedo decir, es que para conectarte con el ordenador via puerto COM, lo primero que debes tener claro los parámetros de la conexión. Con esos parámetros podrás/deberás configurar el componente que estás utilizando para la comunicación.

Conoces los parámetros de:
  • Velocidad
  • Bits de datos
  • Bits de paridad
  • ...

Kukko 03-12-2009 13:42:17

Hola si si, tengo claros los parametros, 9600 Baudios, 8 bits, sin bit de paridad, etc....en un principio yo le doy estos valores a mi componente pero no se como una vez tiene esos componentes conektarlo. Si quieres te mando el programa para que veas a que me refiero

Neftali [Germán.Estévez] 03-12-2009 14:00:39

Cita:

Empezado por Kukko (Mensaje 348071)
...pero no se como una vez tiene esos componentes conektarlo.

Bueno, no he visto el componente, pero supongo que debe tener un método Connect, Active, Open o similar, que te intentará conectar al puerto con esos parámetros.
A veces puedes consultar alguno de los eventos del componente, para ver si se ha conectado bien, o alguna propiedad.

¿Posee procedimientos/propiedades como: Connect, Connected, Active, Open,..?

Kukko 11-12-2009 15:37:25

Pues si, al fin he conseguido conectar mi aplicación con el microcontrolador aunque no se porque hay algun tipo de error de lectura de datos, porque tengo un programa en el micro que simplemente vuelva a mandar lo que ha recibido, es decir, si mando un 1 con delphi, que reciba otro 1 y se muestre por pantalla, pero me salen signos raros y repetidos. alguien sabe como solucionar esto?

Neftali [Germán.Estévez] 11-12-2009 15:45:35

Cita:

Empezado por Kukko (Mensaje 348690)
...pero me salen signos raros y repetidos. alguien sabe como solucionar esto?

Revisa los parámetros de la conexión. A mi me pasaban cosas similares cuando no los tenía bien configurados.

Kukko 11-12-2009 19:37:53

Si si..esta revisado al 100% la conexion y en un principio esta bien, para Delphi con el componente ComPort 9600 Baudios, 1 bit de stop, ninguno de paridas 8 biteSize, para C TH1 y TL1 = 0xFD (timer en modo 2) uhm...etc etc...en teoria esta todo bien!

Neftali [Germán.Estévez] 12-12-2009 10:46:22

A ver cómo estás leyendo los caracteres; A veces llegan codificados con 7 / 8 bits.

Kukko 12-12-2009 13:00:38

En un principio los leo con 8 bits + 1 bit de stop i sin paridad...puede ser que sea por la velocidad (baudios?) lo digo porque si modifico en el programa en C los baudios a 4800, por ejemplo, me dan otros caràcteres pero tambien sin sentido.


La franja horaria es GMT +2. Ahora son las 05:13:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi