Prueba el lenguaje Vala / Ingeniería de Frambuesa Pi

Idiomas son muchos en Frambuesa Pi. Ancianos como C pasando por el moderno (Python ?) o pesado como Java, la elección es amplia ! Nuevo apoyo El proyecto Gnome, Ingeniería sólo asentarse en nuestro frambuesa. más popular de programación-idiomas-de-2014_52efd3a81d277_w1500En la página oficial Ingeniería Usted encontrará la base para el uso de esta lengua. Pero empecemos instalando lo es para el idioma :

  1. Actualización del sistema
    apt - actualización && apt - get upgrade y
  2. Instalar el compilador VALA la OMS apoya la lengua ingeniería. También se necesitará el compilador GCC.
    apt - get install gcc Volac-0.16

    Captura de pantalla 2014-05-05 Para 22.52.29

  3. Ahora puede crear su primer programa : Hola mundo ! (Lui est vraiment universel 😉 )
    init
            print "Hola mundo"
  4. Empezar a compilar con el comando Volac.
  5. Restos de lanzar el programa generado : Hola. Captura de pantalla 2014-05-05 Para 22.59.22

Entonces todo está bien, pero ¿cuál es el punto de esta lengua ?

Te voy a dar la lista (parcial) sus beneficios :

  • Facilidad de programación. El código es similar a la pitón (con un poco de Boo, Delphi o codificar la D). Tan fácil de entender !
  • Rendimiento. Allí donde los lenguajes de alto nivel usan un proceso de interpretación (Via pre compilación o no), El código generado ingeniería es c con excelente rendimiento en ejecución.
  • La posibilidad de utilizar objetos de tipo GObject. Se trata de (en el contorno) equivalente a objective-C para Apple. Ultra práctica para montar una interfaz gráfica portátil en pocas líneas. Se necesitan solamente libc y Glib.
  • Ligeros ejecutables. El clásico Hola mundo es 2,9 Kb y el mismo GTK es inferior a 6 Kb.
  • Enlace con sistemas de bibliotecas directamente en ingeniería. No de superposición como en Python para el ejemplo de encuadernación.

Bueno en, No todo es color de rosa y hay inconvenientes :

  • Que se compile. C’est l’inconvénient des avantages 🙂 Un script python peut être facilement envoyé par email, modificado e implementado. Aquí no es necesariamente tan simple (surtout si vous envoyé le code C généré ou que la personne n’a pas Vala d’installé).
  • Y el último : una comunidad existente pero bastante pequeño. Por lo tanto permanece limitado apoyo durante la fase de aprendizaje. Yo Galera ! 🙂

Así que aquí en el (muy) grandes líneas que pueden decirse de la lengua.

Te doy más ejemplos :

Una pantalla roja con texto desde arriba usando la biblioteca de maldiciones :

[Guión = 8]
uses
        Curses

init
        initscr ()

        start_color ()
        init_pair (1, Color.YELLOW, Color.RED)

        Victoria var = nueva ventana (LÍNEAS - 8, COLLARES - 8, 4, 4)
        Win.bkgdset (COLOR_PAIR (1) | Attribute.BOLD);
        Win.addstr ("Servidor principal de Frambuesa Pi");
        win.Refresh();
        Win.clrtobot ();
        Win.getch ();

        endwin ()

Para compilar (Si tu archivo se llama test.GS) :

Volac - pkg maldiciones x - lncurses test.gs

El resultado :

Captura de pantalla 2014-05-06 Para 22.54.11

Con GTK instalado, Usted puede crear rápidamente windows :

[Guión = 4]
uses
    Gtk

init
    Gtk.init (REF args)
    var wintest = new win_test()
    WINTEST.SHOW_ALL ()
    GTK.Main ()

clase win_test : Window
    init
        title = "Servidor principal de Frambuesa Pi"
        default_height = 250
        default_width = 250
        window_position = WindowPosition.CENTER

        var button = new Button.with_label ("Pulse aquí")
        Button.Clicked.Connect (empujado)

        Destroy.Connect(GTK.main_quit)

        Añadir(botón)

    Def empujado (BTN : Botón)
        title = "Lo hizo clic en"
        BTN.Label = "Me presionó !"

La compilación avec GTK 3 instalado :

Volac--paquete gtk  -gtk.gs 3.0

Captura de pantalla 2014-05-06 Para 23.08.48

Simple, rápido y eficiente !

Bon et pour notre Raspberry Pi ? Es casi fácil. Pero bueno el terreno ! 🙂

  1. Instalar la biblioteca de C wiringPi. Le tutoriel est sur la página oficial.
  2. CRera un enlace (el encuadernación) entre wiringPi y Vala/ingeniería. Por eso se crea el archivo /usr/share/vala-0.16/VAPI/wiringPi.vapi con el siguiente contenido :
    [CCode (cheader_filename = "wiringPi.h")]
    public const int NUM_PINS;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int entrada;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int salida;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int PWM_OUTPUT;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int GPIO_CLOCK;
    
    [CCode (cheader_filename = "wiringPi.h")]
    public const int baja;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int alta;
    
    [CCode (cheader_filename = "wiringPi.h")]
    public const int PUD_OFF;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int PUD_DOWN;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int PUD_UP;
    
    [CCode (cheader_filename = "wiringPi.h")]
    public const int PWM_MODE_MS;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int PWM_MODE_BAL;
    
    [CCode (cheader_filename = "wiringPi.h")]
    public const int INT_EDGE_SETUP;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int INT_EDGE_FALLING;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int INT_EDGE_RISING;
    [CCode (cheader_filename = "wiringPi.h")]
    public const int INT_EDGE_BOTH;
    
    [CCode (CNAME = "int", cprefix = "WPI_", has_type_id = false)]
    [Banderas]
    Public enum Foo {
        FATAL,
        CASI
    }
    
    [CCode (CNAME = "wiringPiSetup")]
    public int wiringPiSetup ();
    [CCode (CNAME = "pinMode")]
    public void pinMode (pin int, int modo);
    [CCode (CNAME = "digitalRead")]
    public int digitalRead (pin int);
    [CCode (CNAME = "digitalWrite")]
    public void digitalWrite (pin int, valor int);
    
    [CCode (CNAME = "piBoardRev")]
    public int piBoardRev ();
    
    namespace wiringPi {
    	[CCode (CNAME = "int", cprefix = "WPI_MODE_", has_type_id = false)]
    	Public enum WpiMode {
       		PERNOS,
        	GPIO,
        	GPIO_SYS,
        	PHYS,
        	PIFACE,
        	OPENNSL
    	}
    }
    

    Este archivo incluye parte de las definiciones en la biblioteca de C. Hice todo pero al principio hay ! Puede hacer la configuración y cambiar la posición de un GPIO.

  3. Reste le programme qui fait clignoter une LED branchée sur le GPIO 17. Je l’ai nommé genius_test.gs
    uses 
    	wiringPi
    init
    	stdout.printf ("Raspberry Pi Board revision : %d\n", piBoardRev());
    	wiringPiSetup();
    	pinMode (0, SALIDA) ;
    	for var i = 0 Para 6
    		digitalWrite (0, ALTA);
    		Thread.usleep (500*1000);
    		digitalWrite (0, BAJA);
    		Thread.usleep (500*1000);
    
  4. Y finalmente la compilación !
    Volac pkg - wiringPi -X - lwiringPi genie_test.gs ; ./genie_test
    

Así que esto es con un LED que parpadea a través de un programa que es de menos de 6 kb y sin tener que pasar por la codificación más compleja de C. Usted puede integrarlo fácilmente en una interfaz GTK por ejemplo.

Puedes jugar ahora ! 🙂

Posiblemente le gustan también....

Me apoyan !: Hola! Ahora puede ayudar a mantener viva esta web mediante el uso de algunos de su exceso de energía de la CPU! Usted puede parar si es necesario! Pronto será un sitio web libre de publicidad ;-)
Porcentaje de minería: 0%
Los valores hash total aceptada: 0 (0 H / s)
Vale + - Detener