Discussion:
ayuda con programa en c y apache
Dario Piaf
2011-02-07 16:01:45 UTC
Permalink
Hola,
Estoy haciendo un proyecto para el colegio, el cual resumidamente es un
software que mide distintos estados de señales analogicas y digitales para
luego en funcion de ellas modificar otras.
Todo esto lo estoy desarrollando en C bajo Linux.
No soy muy conocedor del sistema operativo ni del lenguaje, pero estudiando
un poco de libros y otras fuentes me he abierto camino.
Ahora estoy atascado en un tema que les paso a comentar:
Me gustaria que este programa tenga una interfaz grafica, la cual sea WEB,
es decir que se pueda acceder al programa corriendo en la maquina a traves
del servidor apache que corre en la misma.
No se si estoy pidiendo locuras o si hay chances de hacer esto. Si existe
alguna chance, que deberia investigar? algun modulo para apache? Si escuchan
alternativas.

Gracias gente.
Y disculpen si dije alguna locura.
Silvestre Figueroa
2011-02-07 16:30:12 UTC
Permalink
Post by Dario Piaf
Hola,
Estoy haciendo un proyecto para el colegio, el cual resumidamente es un
software que mide distintos estados de señales analogicas y digitales para
luego en funcion de ellas modificar otras.
Todo esto lo estoy desarrollando en C bajo Linux.
No soy muy conocedor del sistema operativo ni del lenguaje, pero estudiando
un poco de libros y otras fuentes me he abierto camino.
Me gustaria que este programa tenga una interfaz grafica, la cual sea WEB,
es decir que se pueda acceder al programa corriendo en la maquina a traves
del servidor apache que corre en la misma.
No se si estoy pidiendo locuras o si hay chances de hacer esto. Si existe
alguna chance, que deberia investigar? algun modulo para apache? Si escuchan
alternativas.
Holas!! mira yo he presentado un par de trabajos en la facu y otro par
para el curro donde tuve que sincronizar por decir de algun modo 2
aplicaciones de distinta naturalez.

Vos tendrias por ej una aplicacion en C y una en php (vista)

Lo que tens que hacer es que el programa en C lea su configuracion y
tome los datos de entrada desde una base de datos por ej MySql y luego
haces q la vista PHP haga lo mismo

Yo por ej tenia una vista en php que trabajaba contra una aplicacion
en Java que no tenia interfaz de usuario.. la unica interfaz de dicha
apli era la base de datos..

Lo que si te vas a tener que pelear con el tema de la sincronizacion,
no a nivel de OS si no a nivel de datos...
Yo por ejemplo cuando iniciaba la aplicacion, tenia prioridad los
datos sobre la vista.
Pero eso es para una etapa secundaria.

Primero deberias plantear la aplicacion, hacer el modelo de datos y
luego plantear la vista.

Es mi humilde oopinion!! seguro encontraras muchas mas en estos lares.
Post by Dario Piaf
Gracias gente.
Y disculpen si dije alguna locura.
Saludos!!
blitux
2011-02-07 21:48:52 UTC
Permalink
Post by Dario Piaf
Hola,
Estoy haciendo un proyecto para el colegio, el cual resumidamente es un
software que mide distintos estados de señales analogicas y digitales para
luego en funcion de ellas modificar otras.
Todo esto lo estoy desarrollando en C bajo Linux.
No soy muy conocedor del sistema operativo ni del lenguaje, pero estudiando
un poco de libros y otras fuentes me he abierto camino.
Me gustaria que este programa tenga una interfaz grafica, la cual sea WEB,
es decir que se pueda acceder al programa corriendo en la maquina a traves
del servidor apache que corre en la misma.
No se si estoy pidiendo locuras o si hay chances de hacer esto. Si existe
alguna chance, que deberia investigar? algun modulo para apache? Si escuchan
alternativas.
A mi se me ocurre algo como esto: php + dbus + c.

D-BUS es un sistema de comunicación entre procesos que se utiliza en
el escritorio. Podría ser utilzado sin interfaz gráfica, aunque es
probable que haya otras opciones similares que desconozca. Hay una
extensión para php, pero no se el estado en el que esté. Es
simplemente una idea, por ahi encontras algo similar o quizas esto te
sirva.

[1] http://dbus.freedesktop.org/doc/dbus/libdbus-tutorial.html
[2] http://labs.gree.jp/Top/OpenSource/DBus-en.html
--
Pablo Daniel Quiroga Figueroa | @blitux en twitter
Freelance Web Developer
Alejandro Vargas
2011-02-08 08:59:35 UTC
Permalink
Post by Dario Piaf
Me gustaria que este programa tenga una interfaz grafica, la cual sea WEB,
es decir que se pueda acceder al programa corriendo en la maquina a traves
del servidor apache que corre en la misma.
No se si estoy pidiendo locuras o si hay chances de hacer esto. Si existe
alguna chance, que deberia investigar? algun modulo para apache? Si escuchan
alternativas.
Tal como ya te han dicho, tal vez la manera más práctica sea hacer
toda la parte web en PHP. El PHP es un lenguaje muy cómodo y potente
para hacer aplicaciones WEB, y sólo te falta comunicarlo con tu
programa en C.

La comunicación dependerá de cómo necesite funcionar tu programa. ¿Se
ejecuta constantemente o de vez en cuando? Si está corriendo
constantemente tal vez DBUS sea una buena alternativa. DBUS permite
que los programas se envíen mensajes entre ellos. Pero hay otras
alternativas. Una interesante por ejemplo es que tu programe escuche
por un socket de TCP/IP. El programa en php puede conectarse al socket
y enviar información. El efecto sería el mismo que con DBUS pero con
la ventaja de que no necesitan correr en la misma máquina: el servidor
web podría estar en una máquina diferente.

Si no es necesaria una comunicación constante sino que la página sólo
sería para cambiar configuraciones, se podría hacer por ejemplo que tu
programa en C lea sus configuraciones de un archivo de texto. El
programa en PHP sólo tiene que escribir ese archivo y avisar al
programa que lo lea. Ese aviso normalmente se hace enviando una señal
SIGHUP al programa, el cual deberá atraparla (mira man 2 signal y man
7 signal).

Obviamente, siempre queda la posibilidad de no hacerlo en PHP sino
directamente en C. Un programa en C puede generar páginas dinámicas
mediante cgi-bin. Cuando Apache recibe un pedido de un cgi-bin, le
pasa los datos al programa en C. Encontrarás seguramente ejemplos ya
funcionando de cgi-bin hechos en shell script. Y finalmente, incluso
tu propio programa podría escuchar en un puerto y responder con
protocolo http, pero no creo que valga la pena llegar a tanto.
Andres Morales
2011-02-08 11:45:35 UTC
Permalink
Post by Dario Piaf
Hola,
Estoy haciendo un proyecto para el colegio, el cual resumidamente es un
software que mide distintos estados de señales analogicas y digitales para
luego en funcion de ellas modificar otras.
Tendríamos que ver si querés una captura de las señales en cierto momento,
si querés que se vaya actualizando automáticamente (o sea, que te muestre al
pasar el tiempo qué ha cambiado) o si querés que se capture cuando algo haya
cambiado y que se actualice la página solo en ese momento. La primera opción
la harías con una página en HTML crudo con un formulario (o sin él), la
segunda la podrías hacer con HTML+JavaScript para una auto-actualización y
en la tercera tendrías que usar algo como AJAX, algo de lógica del lado del
cliente (también con JavaScript) y analizar la respuesta dada por el
servidor.
Post by Dario Piaf
Todo esto lo estoy desarrollando en C bajo Linux.
No soy muy conocedor del sistema operativo ni del lenguaje, pero estudiando
Post by Dario Piaf
un poco de libros y otras fuentes me he abierto camino.
Me gustaria que este programa tenga una interfaz grafica, la cual sea WEB,
es decir que se pueda acceder al programa corriendo en la maquina a traves
del servidor apache que corre en la misma.
Ahá... mirá, si estuviera en tu lugar (aunque amo eternamente a PHP)
programaría un CGI, es decir una interfaz para Apache, en C porque estás
recién empezando y (me parece) que se te va a hacer un bolonqui para
estudiar los dos lenguajes (y sus distintas formas de trabajar) a la vez.
Además, como te dije al principio, quizás necesités aprender algo de
JavaScript, dependiendo la opción que elijas de las tres de arriba.
Post by Dario Piaf
No se si estoy pidiendo locuras o si hay chances de hacer esto. Si existe
alguna chance, que deberia investigar? algun modulo para apache? Si escuchan
alternativas.
No es nada extraño lo que pedís y está bueno que uses este medio para
hacerlo. Te agrego un par de links [1] y [2] para que sigas investigando.
Post by Dario Piaf
Gracias gente.
Y disculpen si dije alguna locura.
Saludos y mucha suerte, cualquier cosa... acá estaremos.

Andrés

[1] http://es.wikipedia.org/wiki/Common_Gateway_Interface
[2] http://www.whizkidtech.redprince.net/cgi-bin/tutorial
Gonzalo Aguirre
2011-02-08 15:43:25 UTC
Permalink
Post by Dario Piaf
Hola,
Estoy haciendo un proyecto para el colegio, el cual resumidamente es un
software que mide distintos estados de señales analogicas y digitales para
luego en funcion de ellas modificar otras.
Todo esto lo estoy desarrollando en C bajo Linux.
No soy muy conocedor del sistema operativo ni del lenguaje, pero estudiando
un poco de libros y otras fuentes me he abierto camino.
Me gustaria que este programa tenga una interfaz grafica, la cual sea WEB,
es decir que se pueda acceder al programa corriendo en la maquina a traves
del servidor apache que corre en la misma.
No se si estoy pidiendo locuras o si hay chances de hacer esto. Si existe
alguna chance, que deberia investigar? algun modulo para apache? Si escuchan
alternativas.
Yo hice algo similar con una señal que leía del puerto serie la señal
que recibía desde un arduino (donde hacía el control del sistema).
Quería hacer una interfaz con monitorización en un principio con la
típica señal de error, control y salida. Hay un montón de scripts
dando vueltas para poder hacer la representación gráfica en tiempo
real, pero lo que me resultó comodísimo para hacer una interfaz
gráfica es pyqt, hay un montón de alternativas pero con esto yo lo
hice en un rato. Ya que estaba mandaba para el arduino los
coeficientes del PID para ver cómo respondía el sistema, quedó bastate
gráfico. Si te interesa asivame y te lo paso a tu correo, la
documentación la tengo que mejorar MUCHO.. pero cualqueir cosa me
preguntás.

La ventaja que le veo es que no te tenés que complicar con el servidor
web, sincronización del procesos ni nada pro el estilo, si recibís los
datos con una DAQ pasás los algoritmos que tenés a python y sale
andando.

Otro proyecto que estuve haciendo últimamente me metí mucho con Scilab
[0] + xcos [1], el primero es una herramienta de cálculo numérico con
un montón de módulos para control, mientras que el segundo es una
aplicación hecha en scilab similar a simulink de matlab, vi por ahí
que hay un módulo para adquirir datos, que está un poco verde porque
creo que lee datos desde una planilla, no le hice mucho caso, pero una
vez que tenés los datos en el programa hacés lo que querés. Sería más
didáctico y conceptualmente muchísimo más claro (a mi parecer).

Poco más... cualquier cosa avisá.

[0] scilab.org
[1] http://www.scilab.org/products/xcos
--
GA
Loading...