Author Topic: Desarrollo de módulos  (Read 8090 times)

Offline David Serrano

  • PTeam Member
  • PixInsight Guru
  • ****
  • Posts: 503
Desarrollo de módulos
« on: 2007 September 10 14:20:28 »
Bueno, me aburro un poco... :^P.

He estado echando un ojo por el fuente de alguno de los módulos, tal como está incluido en la PCL. Dado que realmente no soy lo que se denomina un "programador" y que además voy algo pez en C++, se me hace algo cuesta arriba comerme ese código ajeno. Peor aún cuando veo que el fuente de un proceso tan sencillo como ImageIdentifier consiste en casi 500 líneas de código (sin comentarios ni líneas en blanco, es decir <grep -vE "^$|^ *//">).

Veo en la web una sección "PCL development tutorials" que de momento está vacía. ¿Tenemos alguna estimación de tiempo para esto?

¿Podría algún benévolo miembro del PTeam poner aquí un pequeño curso rápido de cómo implementar "Hola mundo" en un módulo de PixInsight? No sólo el fuente, sino que también quisiera un par de cómos y porqués.

Y ya que estamos... ¿alguien me hace un ingreso así por el morro? Os paso la cuenta por privado... :^P.
--
 David Serrano

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Desarrollo de módulos
« Reply #1 on: 2007 September 11 00:53:35 »
Quote
Bueno, me aburro un poco...


No te imaginas lo extremadamente peligroso que es decirme eso...

Quote
He estado echando un ojo por el fuente de alguno de los módulos, tal como está incluido en la PCL. Dado que realmente no soy lo que se denomina un "programador" y que además voy algo pez en C++, se me hace algo cuesta arriba comerme ese código ajeno. Peor aún cuando veo que el fuente de un proceso tan sencillo como ImageIdentifier consiste en casi 500 líneas de código (sin comentarios ni líneas en blanco, es decir <grep -vE "^$|^ *//">).


Pues seguro que casi tan cuesta arriba como a mí el grep ese  :lol:

En serio, es completamente normal. No es que PCL sea complicada, que no lo es realmente (por fuera, por dentro sí), sino que efectivamente cuesta adaptarse a un entorno nuevo y complejo (complejo != complicado). Además, a esto se une el hecho de que PCL no tiene casi nada que ver con una interfaz de plugins como habitualmente tienen otras aplicaciones (que empiezan por P y por G, por ejemplo).

Bueno, como dice la web, aquí pido un poco de paciencia (jajaja, un poco, qué vorde soy).

Voy a ver si localizo un viejo tutorial que está un poco desfasado, pero que para introducir el asunto puede valer. Cualdo lo encuentre lo maquillaré y lo subiré ;)

Ah, y bienvenido a PCL, creo :-D
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline David Serrano

  • PTeam Member
  • PixInsight Guru
  • ****
  • Posts: 503
Desarrollo de módulos
« Reply #2 on: 2007 September 11 06:38:01 »
Quote from: "Juan Conejero"
Pues seguro que casi tan cuesta arriba como a mí el grep ese  :lol:


Oh, ruego acepte mis disculpas. Ese grep deja fuera las líneas vacías ("^$", es decir, "inicio y final sin nada en medio") y los comentarios ("^ *//", o sea, "inicio, quizá algunos espacios, y dos barras"). El resultado son líneas de código (en ausencia de /*otra clase de comentarios*/, claro).


Quote from: "Juan Conejero"
Ah, y bienvenido a PCL, creo :-D


Time will tell. Esperamos ese tutorial con (im)paciencia :^P.
--
 David Serrano

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
Desarrollo de módulos
« Reply #3 on: 2007 September 13 13:33:09 »
Una respuesta rapida ;)

Mirate el codigo de Invert. Habia un tutorial sobre el... seguro que Juan lo encuentra.

Para escribir "Hello World", utiliza ese codigo. Te descibire rapidamente los cambios que debes hacer (algunos de ellos)

Instance es el que define lo que hace en si el proceso. Alli, en ExecuteOn() reemplaza el trabajo de Invert por:

ProcessingConsole console;
console << "Hello World\n";

y listo. Asi tiraste a la consola el texto. Por supuesto, verifica que este incluida la biblioteca ProcessingConsole.h arriba.

Luego, puedes borrar Actions (eso define su aparicion en las barras de herramientas/menu principal), y saca su referencia en Process (que es el "organizador" del modulo, ademas de contener la interfaz por la consola, si existe). Y eso es principalmente... aparte de cambiar nombres por todos lados.

Si tienes paciencia, esta noche te hago ese modulo para que lo veas.
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com