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. die meisten populären-Programmiersprachen-of-2014_52efd3a81d277_w1500Auf 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 :

  1. System-Update
    apt - get Update && apt - Get Upgrade y
  2. 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

    Screenshot 2014-05-05 An 22.52.29

  3. Sie können nun Ihr erste Programm erstellen. : Hallo Welt ! (Lui est vraiment universel 😉 )
    init
            print "Hallo Welt"
  4. Sie starten mit dem Befehl kompilieren valac.
  5. Das erzeugte Programm zu starten, bleibt : Hallo. Screenshot 2014-05-05 An 22.59.22

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 :

Screenshot 2014-05-06 An 22.54.11

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

Screenshot 2014-05-06 An 23.08.48

Einfache, schnelle und effiziente !

Bon et pour Notre Raspberry Pi ? Es ist fast ganz einfach. Aber ich nun den Weg geebnet ! 🙂

  1. Die C-WiringPi-Bibliothek installieren. Das Tutorial ist auf die offizielle Seite.
  2. 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.

  3. 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);
    
  4. 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 ! 🙂

Sie können auch mögen....

Unterstützen Sie mich !: Hallo! Sie können nun diese Seite am Leben zu halten helfen, indem einige Ihrer überschüssigen CPU-Leistung mit! Sie können aufhören, wenn Sie brauchen! Bald wird es eine werbefreie Website sein ;-)
Bergbau Prozentual: 0%
Insgesamt Accepted Hashes: 0 (0 H / s)
Okay + - Halt