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. Auf der offiziellen Seite Engineering finden Sie die Basis für die Verwendung dieser Sprache. Aber fangen wir mit der Installation, was für die Sprache ist :
- 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 ! 🙂