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. En la página oficial Ingeniería Usted encontrará la base para el uso de esta lengua. Pero empecemos instalando lo es para el idioma :
- 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 ! 🙂