Jump to content

Perl Bindings?


Recommended Posts

tex, ich arbeite im Moment nicht an Perl Bindings und mir ist auch noch nicht zu Ohren gekommen, dass sonst jemand daran arbeiten würde. Also kannst du ruhig daran arbeiten wenn dir danach ist.

 

Nic, richtig, die Ruby Bindings sind heute fertig geworden. Als nächstes sind Delphi Bindings dran. Ich werde mir dazu zunächst mal deinen Prototypen ansehen und wohl darauf aufbauen, wenn du nichts dagegen hast :)

Link zu diesem Kommentar
Share on other sites

Nein und ich habe auch kein Problem damit, wenn es anders gelöst würde. Die Hauptsache ist, die Leute hier können auch mal eine alte, etablierte Sprache einsetzen (älter als Java !) bzw. trauen sich den Delphi-Code auch zu benutzen ;D

 

Soweit es geht möglichst abwärtskompatibel zu älteren Delphi-Versionen bleiben, die aktuellen Versionen sind sehr teuer geworden. Wir benutzen hier selbst in der Firma immer noch Delphi 7.

 

http://de.wikipedia.org/wiki/Borland_Delphi

Link zu diesem Kommentar
Share on other sites

Hi!

 

So, jetzt habe ich mal ein bisschen mehr Zeit. Also folgendes: Andreas Jobs und ich (eigentlich viel mehr er als ich) haben neulich mal die TinkerForge C/C++-Bindings genommen und mittels Perl XS Perl-Module daraus gemacht. Dabei haben wir erstmal nur die Funktionen implementiert, die wir (also im Wesentlichen ich) für eine kleine Wetterstation brauchen. Und ein bisschen mehr. Erstmal nur so zum üben.

 

Ich habe mir vor ein paar Wochen mal ein TinkerForge Starter-Kit gekauft und das haben wir erstmal zum Testen genommen. Für folgende Module gibt es jetzt also Funktionen:

 

  Master Brick (voltage(), current() und ein paar ungetestete Chibi-Funktionen)

  Ambient Light (illuminance())

  Distance IR (distance())

  Humidity (humidity())

  Rotary Poti (position())

  Temperature (temperature())

  Temperature IR (ambient_temperature(), object_temperature(), emissivity())

  Voltage (voltage())

 

Was es noch nicht gibt, sind Callbacks. Und die will man ja eigentlich haben. Da überlegen wir momentan noch, wie wir das am elegantesten hin bekommen. Funktionieren tut das vom Prinzip her, ist aber mit XS ein bisschen blöd zu machen. Mal schauen, was die Tage noch so bringen...

 

Wir wären übrigens auch sehr an einem Ethernet-Brick (mit oder ohne PoE) interessiert, damit könnten wir für unsere Netzwerk-Standorte (in dreistelliger Stückzahl) relativ einfach ein kostengünstiges Monitoring implementieren! ;)

 

Wir haben uns bewusst dagegen entschieden, die Funktionen der C/C++-Bindings 1:1 in Perl abzubilden, weil wir der Meinung sind, dass es zweckdienlicher ist, mit den TinkerForge-Modulen in Perl vom Prinzip her genau so umgehen zu können wie mit jedem anderen Modul. Damit sieht eine Temperatur-Abfrage beispielsweise so aus:

 

#!/opt/perl/bin/perl

 

use TinkerForge::Client;

 

my $tc = new TinkerForge::Client( Hostname => 'yourhostname', Port => 1234 );

my $b_temp = $tc->add_temperature_bricklet('yourBrickletUID');

 

print 'Temperatur: ' . $b_temp->temperature . ' °C' . "\n";

 

Ich mache das und ein paar weitere Sachen momentan per Cron-Job alle 5 Minuten und schreibe das Ergebnis in eine Datenbank. Dazu brauche ich erstmal keine Callbacks. Aber für's Display werde ich die später brauchen. Ich werde die Tage mal eins bestellen, damit mein Wetter auch irgendwo angezeigt wird! ;)

 

Es würde uns freuen, wenn die Module allgemeine Zustimmung finden würden. Wir sind auch eigentlich ganz kooperativ und beißen nicht! ;) Wenn es also konstruktive Kritik oder Fragen gibt, sagt bescheid!

 

Gibt es eigentlich irgendwo (vielleicht bei den TinkerForge-Jungs) einen Brick Daemon, an den viele Module angeschlossen sind und den man zum Testen neuer Funktionen verwenden kann? Das würde uns sehr helfen und sicherlich Ansporn geben, weitere Bricks und Bricklets zu implementieren! :)

 

Viele Grüße

Robin Schröder

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...