• Domingo 28 de Abril de 2024, 21:48

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - sergios_

Páginas: [1]
1
GNU/Linux / Re: Ejecutar una aplicación desde un nuevo hilo creado con fork
« en: Martes 25 de Noviembre de 2008, 10:56 »
Hola a todos,

Muchas gracias por vuestras respuestas. Teniendo en cuenta vuestros comentarios voy a replantearme si sería mejor utilizar otro tipo de comunicación entre procesos que no sea memoria compartida (pipes o sockets por ejemplo).

De todas formas mi mayor duda no era esa, sino buscar la forma de que una aplicación cree un proceso hijo con fork y después ese hijo ejecute el código de otro ejecutable. Los ejemplos que he visto hacen esto usando una llamada a exec, pero por lo que he leído al hacer exec se perdería por ejemplo la memoria compartida que se hubiera definido previamente y no sé si puede afectar también a otros tipos de comunicación entre procesos. Por eso preguntaba si había otras formas de hacerlo. La razón de tener la gui y las comunicaciones en dos aplicaciones distintas es que estas aplicaciones puedan ser desarrolladas por programadores distintos, e incluso usando lenguajes distintos (C puro por un lado, C++ por el otro).

Gracias de nuevo y un saludo.

2
GNU/Linux / Ejecutar una aplicación desde un nuevo hilo creado con fork
« en: Domingo 23 de Noviembre de 2008, 15:35 »
Hola a todos,

Quería hacerles una consulta. Estoy desarrollando una aplicación con una interfaz gráfica de usuario que utiliza las librerías Qt. Por otro lado hay una aplicación que gestiona un bus serie de comunicaciones. La idea era que los datos que maneja la interfaz gráfica de la primera aplicación fueran en realidad datos que se reciben y se envían usando la segunda aplicación. Como primera idea se me ocurre que ambas aplicaciones podrían usar una sección de memoria compartida. Podría haber, por tanto, un programa aparte que crease la memoria compartida y después iniciase dos procesos hijos mediante fork. Uno de los hijos ejecuta el código de la primera aplicación y el otro el de la segunda aplicación.

Hasta aquí la idea sonaba bastante bien pero por lo que he leído si utilizo un fork para crear un proceso y después exec para que dicho proceso ejecute el código de un ejecutable ya existente el espacio de direcciones cambia y pierdo la memoria compartida. ¿Cúal sería la forma correcta de hacer algo como lo que estoy planteando?

Si alguien necesita más información puedo tratar de explicar más en detalle alguna parte del problema.

Gracias por adelantado y un saludo.

3
VB .NET / Re: "Heredando" de una clase más
« en: Lunes 17 de Noviembre de 2008, 16:04 »
Hola Kaidok,

No se si es posible, pero se me ocurre que podrías definir una clase que herede todos los componentes de "Form" y añada las variables que tu deseas tener. Algo así:

Código: Text
  1.  
  2. Class FormModified
  3.     Inherits Form
  4.     Private InitialWidth as Integer
  5.     ...
  6. End Class
  7.  
  8.  

Después modificas las definiciones de tus formularios de forma que en vez de pertenecer a la clase "Form" pertenezcan a la clase "FormModified". Esto último es lo que no sé cuanto puede costarte.

Si lo pruebas y te funciona me gustaría saberlo porque a lo mejor puede ser útil en algunos casos.

Un saludo

4
C/C++ / Re: Correcion de Algoritmo en Dev c++
« en: Miércoles 12 de Noviembre de 2008, 20:24 »
Hola Kamikasi,

Si no has conseguido compilarlo a lo mejor ha sido porque usas dos variables en el código que no has declarado en ningún sitio. Si te fijas bien hay dos líneas en las que usas la variable "Radius" en vez de "Radio".

cout << "Valor del radio positivo = " << Radius << endl;
cout << "El área y volumen de la esfera del radio = " << Radius << endl;

Y un poco más adelante utilizas la variable "Volume" en vez de "Volumen" que es como la tienes declarada.

cout << "Volumen = " << Volume << endl;

Prueba si poniendo los nombres correctos te funciona bien.

Un saludo.

5
Ingeniería del Software / Re: Control de tiempo en desarrollo de software
« en: Martes 11 de Noviembre de 2008, 21:01 »
Hola pacevedo,

Por lo que entiendo, lo que tú quieres saber es cómo se controlan las horas que se dedican a un proyecto durante su desarrollo para que, por ejemplo, una vez finalizado el proyecto puedas comparar lo estimado inicialmente con el tiempo real que ha llevado el proyecto.

Mi experiencia es la siguiente. Existen programas de gestión que permiten indicar al final del día (o al principio del día siguiente) a qué proyectos se han dedicado las horas trabajadas. Por ejemplo, yo también colaboro simultaneamente en diferentes proyectos, y antés de irme cada día utilizo un programa para indicar que he dedicado 2 horas al proyecto A y 6 al proyecto B. Incluso indico la fase especifica del proyecto en la que he estado trabajando: diseño, desarrollo, pruebas. El programa trabaja contra unas bases de datos centrales de forma que luego es posible sacar informes para ver qué personas han trabajado en un proyecto y cuantas horas han dedicado, cuáles son las fases que más horas han llevado, en cuáles ha sido mayor la desviación con respecto a lo estimado, etc.

En el caso de mi empresa se utiliza una aplicación adaptada específicamente a nuestras necesidades, pero seguro que puedes encontrar algo si buscas información acerca de herramientas ERP.

6
C# / Re: El icono notifyIcon
« en: Sábado 8 de Noviembre de 2008, 17:49 »
Hola,

La variable que utilizas para saber si ya has mostrado el aviso la tienes que declarar a nivel de formulario. Es decir, en la sección de declaraciones de Form1, fuera de cualquier función, la declaras de la siguiente forma:

private int uno = 0;

Tal y como lo haces tú cada vez que entras en el método "SizeChanged" se crea la variable y se le da el valor cero antes del if por lo que no tiene ningún efecto.

Espero que esta vez te sirva. Un saludo.

7
C# / Re: El icono notifyIcon
« en: Sábado 8 de Noviembre de 2008, 11:18 »
Hola,

Si lo que quieres es que el mensaje de aviso se muestre solo la primera vez que minimices el formulario se me ocurre que podrías usar algún tipo de "flag" que te indique si ya has mostrado el mensaje con anterioridad. Puedes añadir una variable miembro privada al formulario que se llame "BalloonTipShow" y que al iniciarse el programa tenga un valor por defecto de cero. Después en el evento "SizeChange" del formulario metes:

Código: Text
  1.  
  2. if(BalloonTipShow == 0)
  3. {
  4.     notifyIcon1.ShowBalloonTip(3000, "Prueba", "Puede acceder a la aplicación desde este icono", ToolTipIcon.Info);
  5.     BalloonTipShow = 1;
  6. }
  7.  
  8.  

Espero que te sirva de ayuda. Un saludo.

8
C/C++ / Re: consulta sobre conversion de números
« en: Domingo 7 de Septiembre de 2008, 17:45 »
Hola,

Pues en vez de usar atoi() se usa la función atof():

double atof ( const char * str );

Espero que te sirva. Un saludo.

9
VB .NET / Re: como guardar un textbox en un array
« en: Jueves 7 de Agosto de 2008, 21:00 »
Hola,

Si te fijas en el código que estas usando veras que la primera vez que pasas por el for (i=0) conviertes lo que tienes en el textbox (supongo que hasta el primer espacio en blanco) a un integer y lo metes en el array. El primer problema es que inmediatamente después borras el contenido del textbox así que las siguientes veces que pasas por el for el textbox ya está vacío y por tanto es normal que solo te meta en el array un valor. El textbox lo tienes que borrar después del for.

Por otro lado, como no modificas de ninguna forma lo que tienes en el textbox, cada vez que llamases a "Integer.Parse(TextBox1.Text)" obtendrías el mismo resultado. Con esto lo que tendrías es el primero de los números que has escrito en el textbox repetido cinco veces en el array. Lo que tienes que hacer es separar en varias cadenas los números que has escrito en el textbox y luego convertirlos por separado a integer. No lo he probado pero mira a ver si te funciona algo así.

Código: Text
  1.   
  2. dim arreglo as new arraylist
  3.  
  4. Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
  5.          Dim ch As Char
  6.          Dim lineaSeparada As String()
  7.    
  8.          If ch = ChrW(13) Then
  9.              lineaSeparada = TextBox1.Text.Split(" "c)
  10.              For i As Integer = 0 To lineaSeparada.GetUpperBound(0)
  11.                  arreglo.Insert(i, Integer.Parse(lineaSeparada(i)))
  12.              Next
  13.              TextBox1.Text = ""
  14.          End If
  15.  
  16.  
  17.  

10
Microcontroladores / Re: Controlar 4 salidas RCA hacia un TV
« en: Miércoles 6 de Agosto de 2008, 10:10 »
A ver, eso de que todas las señales son digitales. La señal de video que metes al televisor a través de un conector RCA de digital tiene poco. Lo que tu necesitas es un multiplexor que te seleccione una de entre cuatro señales analógicas de entrada (tus señales de video) y te la pase a la salida. Por supuesto, las señales que controlan cuál de las cuatro entradas pasa a la salida si que son digitales y las puedes sacar desde el PIC.

Un saludo.

11
Microcontroladores / Re: Controlar 4 salidas RCA hacia un TV
« en: Martes 5 de Agosto de 2008, 22:08 »
Hola,

Si lo que tienes son cuatro señales de video compuesto que quieres meter a través de una entrada RCA a la TV podrías usar un multiplexor analógico. Yo he usado alguno en el trabajo para conmutar entre distintas señales de video y van muy bien. Puedes controlarlo desde el PIC muy facilmente. Podrías echar un vistazo por ejemplo al AD8184 de Analog Devices.

Espero que te sirva la idea. Un saludo.

12
VB .NET / Re: como guardar un textbox en un array
« en: Martes 5 de Agosto de 2008, 21:42 »
Hola,

Podrías poner algo sobre cómo estas intentando guardar los valores que introduces en el textbox, de qué tipo es el array, cómo separas los diferentes valores cuando los escribes en el textbox...

A mí se me ocurren un par de ideas pero sin tener más información es dificil darte una respuesta.

Un saludo.

13
C/C++ / Re: Funcion que cronometrice la ejecucion de un programa
« en: Domingo 29 de Junio de 2008, 20:19 »
Hola madsiro,

Creo que para lo que quieres hacer pueden servirte las funciones "time()" y "difftime()" de la biblioteca estándar de C. Échale un vistazo a este ejemplo a ver si te aclara algo:

http: //www.conclase.net/c/librerias/funcion.php?fun=difftime

Un saludo.

14
VB .NET / Re: Desarrolladores Simultaneos
« en: Domingo 1 de Junio de 2008, 22:56 »
Hola Cardonas,

Entiendo que lo que andas buscando es un Sistema de Control de Versiones que permita que varios programadores trabajen sobre los mismos archivos fuentes sin que uno pueda machacar los cambios de otro.

Existen varias herramientas de este tipo. Una muy conocida es CVS.

Yo personalmente te aconsejaría echarle un vistazo a TortoiseCVS para ver si puede cubrir tus necesidades (es un cliente libre para CVS).

www.tortoisecvs.org

Espero que pueda servirte de algo mi respuesta. Un saludo.

15
C/C++ / Re: Error Al Compilar : Vialacion De Segmento
« en: Sábado 31 de Mayo de 2008, 13:00 »
Hola buscasolus,

¿Lo que te da el error es exactamente el mismo código que has puesto en el post?

Yo lo he compilado con gcc y lo he ejecutado y no he tenido ningún problema.

16
VB .NET / Re: Enviar Y Recibir Caracteres Por El Puerto Serie
« en: Sábado 17 de Noviembre de 2007, 13:12 »
Hola marleysoft,

La verdad es que he andado con mucho trabajo últimamente y se me había olvidado mirar tu respuesta. He encontrado cuál parece ser el problema y espero que aún te sirva. El fallo parece que proviene de la codificación de los caracteres por defecto. A continuación te pongo un enlace a la descripción del método "serialport.write" en la MSDN. Si te fijas en la sección de comentarios verás que indica que por defecto todos los caracteres mayores que 127 se codifican como '?'. Para mandar caracteres por encima de 127 pone que tienes que cambiar el "Encoding".

msdn2.microsoft.com/es-es/library/ms143551(VS.80).aspx

Yo no puedo probarlo ahora, pero espero que tirando un poco del hilo a partir del enlace que te indico consigas que finalmente te funcione. Si lo consigues me gustaría ver cómo te ha quedado al final.

NOTA: Corta el link y pegalo en el navegador, al parecer todavía no tengo permisos para incluir enlaces en mis respuestas.

Un saludo.

17
VB .NET / Re: Enviar Y Recibir Caracteres Por El Puerto Serie
« en: Domingo 11 de Noviembre de 2007, 16:55 »
Hola marleysoft,

¿Podrías dar alguna pista  más de la forma en que estas tramistiendo desde VB.NET y cómo has configurado el puerto en el programa que envía y en el microcontrolador que recibe?

A simple vista me parece curioso que cuando envías "ÿ" (0xFF) recibes "?" (0x3F). Osea, que se ha cargado los dos bits de más peso en la transmisión. No sé si podrías estar mal configurado el número de bits por dato o el número de bits de stop. O a lo mejor no tiene nada que ver pero si puedes poner algo de cómo lo estas haciendo le intento echar un vistazo.

Un saludo

18
Programación de Aplicaciones para Dispositivos / Re: Bit Del Paralelo
« en: Sábado 15 de Septiembre de 2007, 11:35 »
Hola GsOiD,

La verdad es que manejar datos a nivel de bit es algo muy típico en programación de bajo nivel. Por lo que dices del TASM entiendo que estas trabajando en ensamblador (yo hace bastante que no lo he usado). Supongo que leeras o escribiras un BYTE que contenga el estado de los pines del puerto paralelo. Si pones un ejemplo de código de cómo haces la lectura o escritura del puerto y dices los bits concretos a los que quieres tener acceso creo que podría explicarte cómo hacerlo.

Un saludo.

19
VB .NET / Re: Retraso!!!!
« en: Jueves 13 de Septiembre de 2007, 21:14 »
Hola foru-,

Entiendo que lo que quieres hacer es que un dibujo parpadee (aparezca y desaparezca). A mí me parece que el ejemplo que has puesto no funciona porque si te fijas entras en el bucle, visualizas la imagen, y te quedas esperando un tiempo. Luego quitas la imagen, decrementas el contador y al volver al comienzo del bucle muestras la imagen de nuevo. Osea, que en realidad quitas la imagen e inmediatamente después la vuelves a visualizar así que no vas a llegar a ver nada. El bucle tendría que ser algo así.

do while (quinientos > 0)
picturebox.visible = true
'Metes la espera
picturebox.visible = false
'Metes otra espera
quinientos = quinientos - 1
loop

¿Podrías poner el mensaje que te saca cuando te subraya en verde el System.Threading.Thread.CurrentThread.Sleep(1000)? Así vemos porque se está quejando el Visual Studio.

Como dice lencho también puedes hacerlo usando un timer. Por ejemplo, declaras un contador dentro del formulario (dim contador as integer) y cuando quieras que el dibujo parpadee arrancas el timer. Dentro de la rutina que se ejecuta cuando salta el timer simplemente cambias el estado de la propiedad visible del picturebox e incrementas el contador. Cuando el contador llegue a un determinado número paras el contador y ya está.

Espero que te sirva de algo. Un saludo

20
VB .NET / Re: Crear Html
« en: Domingo 9 de Septiembre de 2007, 14:55 »
Hola jandresaedo,

La verdad es que no sé si existe alguna forma automática de generar HTML para mostrar datos desde VB .NET, pero los archivos HTML no son más que archivos de texto que utilizan un formato especial basado en tags así que por supuesto que es posible crear una página HTML. Solo tienes que crear un fichero con extensión ".htm" o ".html" y escribir en él lo que quieres que se muestre pero siguiendo el formato HTML (mirate las tags básicas). Por ejemplo, si tu programa crea un fichero llamado "prueba.html" y luego escribe en él lo siguiente:
Código: Text
  1.  
  2. &#60;html&#62;
  3. &#60;head&#62;
  4.     &#60;title&#62;Hola Mundo&#60;/title&#62;
  5. &#60;/head&#62;
  6. &#60;body&#62;
  7.     &#60;p&#62;Hola Mundo&#60;/p&#62;
  8. &#60;/body&#62;
  9. &#60;/html&#62;
  10.  
  11.  
Verás que es posible abrir el archivo desde el navegador web y que te muestra la frase "Hola Mundo".

Tal vez te sirva para empezar por algún sitio. Un saludo.

Páginas: [1]