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. 
- Actualización del sistema
apt - actualización && apt - get upgrade y
- 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
- Ahora puede crear su primer programa : Hola mundo ! (Lui est vraiment universel 😉 )
init print "Hola mundo" - Empezar a compilar con el comando Volac.
- Restos de lanzar el programa generado : Hola.
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 :
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
Simple, rápido y eficiente !
Bon et pour notre Raspberry Pi ? Es casi fácil. Pero bueno el terreno ! 🙂
- Instalar la biblioteca de C wiringPi. Le tutoriel est sur la página oficial.
- 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.
- 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);
- 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 ! 🙂







