ImageImageImageImage
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

Manejar puerto serie con Windows XP

Postea aqui toda la parte de programación del lenguaje C, C++, C#...

Moderator: Junta Directiva

User avatar
Zapa
Principiante
Principiante
Posts: 21
Joined: Sun Mar 30, 2008 1:07 am
Location: Madrid

Manejar puerto serie con Windows XP

Post by Zapa » Fri Aug 27, 2010 10:18 pm

Hola,

Estoy en un proyecto de desarrollo de un robot que envie al PC por el puerto serie asincrono datos de odometria y distancia a los objetos cercanos. Para ello he estado usando el hyperterminal para depurar la transmission Robot->PC.

Cuando he querido pasar a hacerme un programita en C para hacer graficas y procesar los datos, he desempolvado el Turbo C y me he peleado con el puerto serie usando bioscom(), inport(). Sin exito, cuando descubro que Windows XP no permite acceso a los puertos directo. Se tiene que hacer via API.

No me gustaria tener que dedicar tiempo a aprender Visual C++ o Visual Basic, no tengo mucho tiempo y el poco que tengo lo quiero dedicar a experimentar con el robot. Como lo que quiero hacer: recoger datos del robot por el puerto serie me parece tan sencillo, seguro que alguno de vosotros teneis alguna idea de como podria hacerlo sin recurrir a complicarme la vida aprendiendo a programar en Windows con APIs y demas.

Muchas gracias por vuestros comentarios.

zapa

victorblue
Iniciado
Iniciado
Posts: 64
Joined: Wed Jul 15, 2009 7:12 pm
Nombre: españa

Re: Manejar puerto serie con Windows XP

Post by victorblue » Sat Aug 28, 2010 6:02 pm

Te comento un par de consejos:

1.- Olvidate del turboC a no ser que tengas un windows 95/98 y entres en msdos.

2.-Si quieres trabajar en windows pero sin tener que usar entornos "propietarios", instala el devcpp que ya trae entorno c/c++ gnu y generar ejecutables válidos win32.

Con devcpp puedes trabajar con programas escritos en C con las librerías estándar de c (el bios.h no lo es, igual que el borland graphics del turbo c) y/o trabajar con la api de windows.

Yo ya he estado bicheando el puerto serie con el devcpp y al final tienes que recurrir a "incrustar" las funciones el io.dll / winio.dll o usar unas librerías "envolventes" (wrappers) que lo hagan por tí, y tu llamar a las funciones de esa nueva librería.

Te dejo algunos enlaces donde verás los mismos códigos de llamada a la api de windows una y otra vez.

http://msdn.microsoft.com/en-us/library/ms810467.aspx
http://www.daniweb.com/forums/thread56329.html
http://ontrak.net/mfc.htm
http://sites.google.com/site/xrobot17/p ... -interface
http://dtejedacetis42.blogspot.com/2009 ... -file.html

EDITO:

Echale un vistazo a la libreria inpout32.dll:

http://www.elrincondelc.com/nuevorincon ... php?t=3054


Ni por asomo tiene que decirse que en linux es todo más sencillo, con llamadas al sistema posix....
Cuando te aburras del terminal consola de windows puedes probar con las librerías SDL, hay código para el puerto serie y demás.

User avatar
Zapa
Principiante
Principiante
Posts: 21
Joined: Sun Mar 30, 2008 1:07 am
Location: Madrid

Re: Manejar puerto serie con Windows XP

Post by Zapa » Sun Aug 29, 2010 1:44 pm

Gracias victorblue.

Parece que no me quedará otra que meterme con la programacion en entorno Windows. Me dá un poco de pereza pero como compensacion el resultado de lo que haga será mas vistoso.

He seguido tu consejo y he instalado el Dev C++ 4.9.9.2 (parece que es la ultima version). Resulta que aunque dice que viene con el compilador Mingw, cuando arranco el IDE me avisa que no tengo un Make GNU y que por tanto no puedo compilar.

Tambien me doy cuenta que el "Herramientas" "Configuracion del Compilador" tengo los Directorios y Programas sin configurar.

¿Alguna pista de como puedo poner el DevC++ operativo y en marcha? Y empezar a juguetear?

Muchas gracias

javier

victorblue
Iniciado
Iniciado
Posts: 64
Joined: Wed Jul 15, 2009 7:12 pm
Nombre: españa

Re: Manejar puerto serie con Windows XP

Post by victorblue » Sun Aug 29, 2010 2:57 pm

Jeje, ahora que lo dices me suena que la pagina del bloodshell tenia las descargas algo confusas.

Seguramente te habrás descargado sólo el entorno de programación y no el compilador. Tranquilo que yo siempre que me lo he descargado me lo he descargado completo (ide+compilador).

Pincha en este link y te vas al final de la pagina en "Browse all files" donde pone "binaries", te vas a la 4.9.9.2 y pillas el setup (unos 9 MB). Verás que al lado está el mismo setup pero sin el compilador (2MB) que sera seguramente lo que te has descargado.

http://sourceforge.net/projects/dev-cpp/files/

Aqui tienes el ide+compilador+linker+librerias,etc:

http://sourceforge.net/projects/dev-cpp ... e/download

Que haya alivio!

ED: El entorno no hay que toquetearlo mucho, te vendrá todas las rutas bien puestas y demás. Puedes empezar nuevos proyectos de consola, aplicación grafica, etc. Ojo que esto no es el visual basic ni IDEs que vas poniendo botoncicos y cajicas, es como el turboC pero en windows.

En el caso de que quieras trabajar con más librerías (SDL, openGL), tendrás que añadir los flags en el compilador y enlazador, en las pestañas de las opciones del compilador.

Yo empeze con el devcpp porque quería portar a windows algun programa cad en opengl. Si estás interesado en cosas de gráficos te recomiendo estos tutoriales que vienen ya los proyectos para compilarlos con el devcpp : http://nehe.gamedev.net/" onclick="window.open(this.href);return false;

User avatar
Zapa
Principiante
Principiante
Posts: 21
Joined: Sun Mar 30, 2008 1:07 am
Location: Madrid

Re: Manejar puerto serie con Windows XP

Post by Zapa » Sun Aug 29, 2010 3:52 pm

Ahora si. :-) Ahora ya tengo compilador y todos los programas, porque he compilado y ejecutado el Hello World y ha funcionado.

Gracias victorblue.

Me pongo a ello. Ya te digo, mi objetivo es hacerme una aplicacion sencilla que escriba y lea por el puerto serie, procesar los datos y hacer algunas graficas con el resultado. Echare un vistazo a todos los links que me has pasado. :geek:

Gracias de nuevo.

zapa

User avatar
beamspot
Usuario Desarrollador
Usuario Desarrollador
Posts: 1132
Joined: Thu Oct 11, 2007 8:56 pm
Nombre: Guillem

Re: Manejar puerto serie con Windows XP

Post by beamspot » Mon Aug 30, 2010 2:24 pm

Otra opción para aquellos que como yo, somos 'lerdos' con el C++, es usar el C#, como el Microsoft C# Express gratuito que se puede bajar por internet. Usar el puerto serie bajo dicho entorno es fácil hasta para mí.
Beamspot.

User avatar
aprendiendo
Usuario Avanzado
Usuario Avanzado
Posts: 316
Joined: Fri Dec 28, 2007 9:31 pm
Nombre: Jose
Location: Barcelona
Contact:

Re: Manejar puerto serie con Windows XP

Post by aprendiendo » Mon Aug 30, 2010 9:43 pm

¿qué lenguaje te más cómodos? ¿sólo C?

Como dice beamspot C# con .Net es la forma más fácil de programar para Windows.

Pero tienes muchas opciones, dependiendo si el procesamiento de datos y generación de gráficos ha de ser continuo o lo puedes hacer a posteriori.

Una de las opciones es utilizar dos lenguajes o "herramientas":

- una para tratar con el puerto serie, por ejemplo un sencillo programa para línea de comandos en C para tratar con el puerto serie y generar un fichero con los datos,

- y otra para fácilmente procesar los datos y generar los gráficos, por ejemplo excel o cualquier otra hoja de cálculo.

También tienes otros IDEs open source como Code:Blocks o con librerías gráficas, como QT (ahora de Nokia) (con esta clase para tratar con el puerto serie)
http://www.softwaresouls.com" onclick="window.open(this.href);return false;

BoOpS
Administrador
Administrador
Posts: 1812
Joined: Mon Sep 19, 2005 7:29 pm
Nombre: Javier

Re: Manejar puerto serie con Windows XP

Post by BoOpS » Mon Aug 30, 2010 9:56 pm

Yo he realizado un par de proyectos para clase usando Qt y el puerto seria tal como dice aprendiendo en su post.

El IDE que trae aun en la version GPL es bastante completo con muchas opciones "arrastrar y listo" aparte te da flexibilidad para programar en diversos lenguajes (personamente siempre he preferio cpp) Así como facilitar las cosas a la hora de portar codigo a Win, Linux o Mac. De hecho alguno de los test que he realizado han sido conjuntos con otro miembro de la asociación, el en windows y yo en linux funcionando perfectamente y de forma muy optima.
Mi Blog de RoBoOpS

victorblue
Iniciado
Iniciado
Posts: 64
Joined: Wed Jul 15, 2009 7:12 pm
Nombre: españa

Re: Manejar puerto serie con Windows XP

Post by victorblue » Tue Aug 31, 2010 1:13 pm

La verdad es que las librerías Qt están muy bien. Yo las empezé a usar en Linux en 1995 e hice dos PFC con ellas, asi que no puedo hablar mal; el soporte de sockets más que aceptable y la documentación es muy buena. Además vienen muchos ejemplos que puedes "reciclar" para tu proyecto.

No sé como andará ultimamente el qt designer, pues yo siempre he hecho los layouts y la parte gráfica "a pelo", porque el designer, al menos cuando empezó, era muy farragoso.

El problema de las qt en windows es que no se llevaban (al menos las 2-3 veces que lo he intentado) muy bien con el devcpp; cuando lo he intentado he tenido que modificar makefiles, recompilar todas las librerias qt (1hora) y después cambiar rutas, paths, etc.

Si te vas para las qt es mejor pasarse "al lado oscuro" del visual c++. También es cierto que si haces un proyecto con las librerías y lo retomas al cabo de un par de años te empezarán a salir errores de cosas "deprecated" o funciones miembro que han sido eliminadas, etc.

Yo al final opté por hacer mis propias liberías de botoncicos y layouts sdl y opengl, tipo menus juegos para PC.

User avatar
aprendiendo
Usuario Avanzado
Usuario Avanzado
Posts: 316
Joined: Fri Dec 28, 2007 9:31 pm
Nombre: Jose
Location: Barcelona
Contact:

Re: Manejar puerto serie con Windows XP

Post by aprendiendo » Tue Aug 31, 2010 7:42 pm

Victor,

¿has probado el QTCreator desde que QT es de Nokia (Junio de 2008)?

Dentro de lo sencillo es bastante efectivo.

Yo no he visto otro IDE open source, con capacidad de creación de ventanas de forma visual, mejor. He probado bastantes y es el único que le podría hacer sombra al Visual Studio de MS en un futuro cercano.

Image

Image
http://www.softwaresouls.com" onclick="window.open(this.href);return false;

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest