Testen Sie die Vala-Sprache / Ingenieur auf Raspberry Pi
Sprachen sind viele auf Raspberry Pi. Ältesten wie C durch die moderne (Python ?) oder schwer wie Java, die Auswahl ist breit ! Neu unterstützt Das Gnome-Projekt, Engineering setzen sich einfach auf unserer Himbeere. 
- System-Update
apt - get Update && apt - Get Upgrade y
- Den Compiler zu installieren VALA Wer unterstützt die technische Sprache. Auch benötigen den Compiler Sie GCC.
apt - Get install install Gcc valac-0.16
- Sie können nun Ihr erste Programm erstellen. : Hallo Welt ! (Lui est vraiment universel 😉 )
init print "Hallo Welt" - Sie starten mit dem Befehl kompilieren valac.
- Das erzeugte Programm zu starten, bleibt : Hallo.
Dann ist alles schön, aber was ist der Sinn dieser Sprache ?
Ich gebe Ihnen die Liste (teilweise) Ihre Vorteile :
- Der Programmierung. Der Code ist ähnlich wie die Python (mit ein bisschen Boo, Delphi oder codieren Sie die D). So leicht zu verstehen !
- Leistung. Dort wo die Hochsprachen für Interpretation einen Prozess verwenden (über Pre-Kompilierung oder nicht), Ingenieur generierte Code ist c mit hervorragender Leistung bei der Ausführung.
- Die Möglichkeit der Verwendung von Objekten des Typs GObject. Es kommt (in der Gliederung) Äquivalent zu Objective-C für Apple. Ultra Praxis, eine portable grafische Oberfläche in ein paar Zeilen zu mounten. Nur Libc und Glib sind erforderlich.
- Leicht ausführbare Dateien. Die Hello World Classic beträgt 2,9 Kb und der gleiche GTK ist weniger als 6 Kb.
- Verbindung mit Bibliotheken Systeme direkt vom engineering. Nicht der Überlagerung wie in Python z.B. Bindung.
Nun auf, Es ist nicht alles rosig und gibt es Nachteile :
- Es wird kompiliert. C’est l’inconvénient des avantages 🙂 Un script python peut être facilement envoyé par email, geändert und umgesetzt. Hier ist es nicht unbedingt so einfach (vor allem, wenn Sie den generierten C-Code oder gesendet, die die Person keine Vala installiert).
- Und die letzte : eine Gemeinschaft, die vorhandenen aber ziemlich klein. Unterstützung bleibt daher begrenzt, während der Lernphase. Ich galeere ! 🙂
Also hier in der (sehr) große Linien, die der Sprache gesagt werden kann.
Ich gebe ich dir weitere Beispiele :
Zeigt einen roten Bildschirm mit Text von oben mit der Curses-Bibliothek :
[Gedankenstrich = 8]
uses
Curses
init
initscr ()
start_color ()
init_pair (1, Color.YELLOW, Color.RED)
Var gewinnen = neues Fenster (LINIEN - 8, HALSBÄNDER - 8, 4, 4)
Win.bkgdset (COLOR_PAIR (1) | Attribute.BOLD);
Win.addstr ("Raspberry Pi-Home-Server");
win.Refresh();
Win.Clrtobot ();
Win.getch ();
endwin ()
Zum Kompilieren (Wenn Ihre Datei heißt test.GS) :
Valac - Pkg Flüche x - Lncurses test.gs
Das Ergebnis :
Mit GTK installiert, Sie können Windows schnell erstellen :
[Gedankenstrich = 4] uses Gtk init Gtk.init (REF args) Var Wintest = neue Win_test() wintest.SHOW_ALL () GTK.Main () Klasse win_test : Window init title = "Raspberry Pi-Home-Server" Default_height = 250 Default_width = 250 window_position = WindowPosition.CENTER var button = new Button.with_label ("Drücken Sie hier") Button.clicked.Connect (geschoben) Destroy.Connect(GTK.main_quit) Hinzufügen(Schaltfläche ") DEF geschoben (btn : Schaltfläche ") Titel = "Sie klickte es" btn.Label = "Sie drängte mich !"
La Kompilierung Avec GTK 3 installiert :
Valac--Pkg Gtk -3,0 gtk.gs
Einfache, schnelle und effiziente !
Bon et pour Notre Raspberry Pi ? Es ist fast ganz einfach. Aber ich nun den Weg geebnet ! 🙂
- Die C-WiringPi-Bibliothek installieren. Das Tutorial ist auf die offizielle Seite.
- CRÄra einen link (die Bindung) zwischen WiringPi und Vala/engineering. Dafür erstellen Sie die Datei /Usr/Share/vala-0.16/VAPI/wiringPi.vapi mit folgendem Inhalt :
[BUKRS (Cheader_filename = "wiringPi.h")] public const Int NUM_PINS; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int Eingabe; [BUKRS (Cheader_filename = "wiringPi.h")] public const void Ausgabe; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int PWM_OUTPUT; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int GPIO_CLOCK; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int LOW; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int HIGH; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int PUD_OFF; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int PUD_DOWN; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int PUD_UP; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int PWM_MODE_MS; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int PWM_MODE_BAL; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int INT_EDGE_SETUP; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int INT_EDGE_FALLING; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int INT_EDGE_RISING; [BUKRS (Cheader_filename = "wiringPi.h")] public const Int INT_EDGE_BOTH; [BUKRS (CNAME = "int", Cprefix = "WPI_", Has_type_id = False)] [Flaggen] publicenum Foo { FATAL, FAST } [BUKRS (CNAME = "wiringPiSetup")] public void wiringPiSetup (); [BUKRS (CNAME = "pinMode")] public void pinMode (Int pin, Int-Modus); [BUKRS (CNAME = "digitalRead")] public void digitalRead (Int pin); [BUKRS (CNAME = "digitalWrite")] public void digitalWrite (Int pin, Int-Wert); [BUKRS (CNAME = "piBoardRev")] public void piBoardRev (); Namespace wiringPi { [BUKRS (CNAME = "int", Cprefix = "WPI_MODE_", Has_type_id = False)] publicenum WpiMode { KIEFER, GPIO, GPIO_SYS, PHYS, PIFACE, UNINITIALISED } }Diese Datei enthält Teil der Definitionen gemacht in der C-Bibliothek. Ich habe alles getan, aber das Prinzip ist es ! Sie können das Setup und ändern Sie die Position von einem GPIO.
- Das Programm, das welches eine LED blinkt ist mit dem GPIO verbunden 17. Ich nannte es genius_test.GS
uses wiringPi init stdout.printf ("Raspberry Pi Board revision : %d\n", piBoardRev()); wiringPiSetup(); pinMode (0, AUSGABE) ; for var i = 0 An 6 digitalWrite (0, HOHE); Thread.usleep (500*1000); digitalWrite (0, LOW); Thread.usleep (500*1000);
- Et enfin la compilation !
Valac - Pkg WiringPi x - LwiringPi genie_test.gs ; ./genie_test
Sie ist so mit einer LED, die durch ein Programm, das weniger als 6 kb und ohne gehen durch den komplexeren Code von C blinkt. Sie können es einfach in einem GTK-Oberfläche zum Beispiel integrieren.
Sie können jetzt spielen ! 🙂







