ImagenImagenImagenImagen
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#...

Moderador: Junta Directiva

Avatar de Usuario
Zapa
Principiante
Principiante
Mensajes: 21
Registrado: Dom Mar 30, 2008 1:07 am
Ubicación: Madrid

Manejar puerto serie con Windows XP

Mensaje por Zapa » Vie Ago 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
Mensajes: 64
Registrado: Mié Jul 15, 2009 7:12 pm
Nombre: españa

Re: Manejar puerto serie con Windows XP

Mensaje por victorblue » Sab Ago 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.

Avatar de Usuario
Zapa
Principiante
Principiante
Mensajes: 21
Registrado: Dom Mar 30, 2008 1:07 am
Ubicación: Madrid

Re: Manejar puerto serie con Windows XP

Mensaje por Zapa » Dom Ago 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
Mensajes: 64
Registrado: Mié Jul 15, 2009 7:12 pm
Nombre: españa

Re: Manejar puerto serie con Windows XP

Mensaje por victorblue » Dom Ago 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;

Avatar de Usuario
Zapa
Principiante
Principiante
Mensajes: 21
Registrado: Dom Mar 30, 2008 1:07 am
Ubicación: Madrid

Re: Manejar puerto serie con Windows XP

Mensaje por Zapa » Dom Ago 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

Avatar de Usuario
beamspot
Usuario Desarrollador
Usuario Desarrollador
Mensajes: 1132
Registrado: Jue Oct 11, 2007 8:56 pm
Nombre: Guillem

Re: Manejar puerto serie con Windows XP

Mensaje por beamspot » Lun Ago 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.

Avatar de Usuario
aprendiendo
Usuario Avanzado
Usuario Avanzado
Mensajes: 316
Registrado: Vie Dic 28, 2007 9:31 pm
Nombre: Jose
Ubicación: Barcelona
Contactar:

Re: Manejar puerto serie con Windows XP

Mensaje por aprendiendo » Lun Ago 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
Mensajes: 1812
Registrado: Lun Sep 19, 2005 7:29 pm
Nombre: Javier

Re: Manejar puerto serie con Windows XP

Mensaje por BoOpS » Lun Ago 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
Mensajes: 64
Registrado: Mié Jul 15, 2009 7:12 pm
Nombre: españa

Re: Manejar puerto serie con Windows XP

Mensaje por victorblue » Mar Ago 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.

Avatar de Usuario
aprendiendo
Usuario Avanzado
Usuario Avanzado
Mensajes: 316
Registrado: Vie Dic 28, 2007 9:31 pm
Nombre: Jose
Ubicación: Barcelona
Contactar:

Re: Manejar puerto serie con Windows XP

Mensaje por aprendiendo » Mar Ago 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.

Imagen

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

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados