Jump to content

Anfänger-Startschwierigkeiten


Recommended Posts

Hallo Tinker-(Comm)unity,

 

ich hab mein StarterSet diese Woche auch erhalten und war eigentlich ganz guter Dinge. Angeschlossen, brickd und brickv läufen eigentlich wunderbar und erkennen meine 3 angeschlossenen bricklets.

 

Aber ich wollte natürlich auch gleich mal was programmieren :).

Ich bin eigentlich "eingefleischter" PHP entwickler und habe vor vielen Jahren                  einiges mit VisualBasic (VB6) gemacht, zu Schulzeiten ein bisschen C++ gelernt und dachte mir, ich fang mal mit Java an.

 

Fluchs Netbeans geladen und installiert sowie die "Bindings und Examples" für Java geladen. Ein bisschen Copy & Paste und schon stand mein aller erstes Java Consolen Programm.

 

Nur wenn ich das Programm laufen lasse (nach dem ich meine Anfänger-Fehler ausgemerzt habe) bekomm ich keine Werte von keinem der Bricklets. Es wird immer nur "0" angezeig...

 

Dann hab ich die Umgebung gewechselt und hab mir MSVC#2010 Express geladen und installiert und die Source-Files BrickletAmbientLight.cs, BrickletDistanceIR.cs, BrickletRotaryPoti.cs, BrickMaster.cs und IPConnection.cs in die Projekt-Mappe gezogen.

in der "Form1.cs" hab ich dann oben noch "using Tinkerforge;" hinzugefügt und schon waren die meisten Fehler weg.

 

Noch ein paar Bespiel-Code-Zeilen nach "Form1_Load" gezogen die mir eigentlich ein paar TextBoxen füllen sollten:

private void Form1_Load(object sender, EventArgs e)
{
    IPConnection ipcon = new IPConnection(HOST, PORT); // Create connection to brickd
    BrickMaster master = new BrickMaster(UID); // Create device object
    BrickletRotaryPoti poti = new BrickletRotaryPoti(UID); // Create device object
    BrickletAmbientLight al = new BrickletAmbientLight(UID); // Create device object
    ipcon.AddDevice(master); // Add device to IP connection
    ipcon.AddDevice(al); // Add device to IP connection
    ipcon.AddDevice(poti); // Add device to IP connection
    // Don't use device before it is added to a connection

    short position;
    string str_position;
    poti.GetPosition(out position);
    str_position = position.ToString();
    txt_rotpot.Text = str_position;

    ushort illuminance;
    al.GetIlluminance(out illuminance);
    string str_illuminance;
    str_illuminance = illuminance.ToString();
    txt_lumi.Text = str_illuminance;

    //ipcon.JoinThread();
}

 

Am Anfang der Class Form1 hab ich noch die Zeilen

private static string HOST = "localhost";
private static int PORT = 4223;
private static string UID = "94ANbPPdB7Z"; // Change to your UID

eingebaut.

 

Aktuell hat meine Form 2 Textfelder "txt_rotpot" und "txt_lumi". Nur bei rotpot kommt eine nicht korrekte "0" an. Bei Limi garnix :(.

 

Irgendwas mach ich scheinbar falsch und ich bin schon etwas frustriert, dass ich nicht dahinter komm :(.

 

Hoffe ich finde hier Hilfe :D.

 

Viele Grüße aus Franken

Christian

Link zu diesem Kommentar
Share on other sites

Danke mal für die Antworten!

 

also das mit der UID war schon klar :). dat is auch meine...

 

nur wie werte ich die Rückgabe-Werte am besten aus oder wo rufe ich Fehler ab? einfach "error_al = ipcon.AddDevice(al);" geht ja wohl nicht.

 

Also momentan fühl ich mich wie ein blutiger Anfänger ;-). Ich hab wie gesagt früher viel mit VB6 und Forms gemacht, aber mit meiner allgemeinen Objekt-Orientierung ist es wirklich nicht weit her. Mit C# hatte ich bisher ja auch noch nie was zutun, aber aller Anfang ist schwer :)...

 

Eine PHP-API wär natürlich mein Traum ;-)... da muss ich wohl noch ein paar Wochen drauf warten, aber geplant scheint es ja schon.

Link zu diesem Kommentar
Share on other sites

Erwischt!

Kaum macht man's richtig, gehts ;-). Immer wieder verblüffend!

naja, ich seh schon. Das wird für mich noch ein harter Weg werden ;-). Entweder ich lern jetzt Java oder C#... Bin noch irgendwie unentschlossen...

 

jetzt muss ich dann noch schauen wie ich in C# mit Exeptions umgehen muss, weil mir teilweise ein Timeout passiert. Aber ich denk das ist hier nicht das richtige Forum für "allgemeine C# Fragen".

 

Trotzdem Danke für die Starthilfe :). Ich weiß echt nicht ob ich jetzt was neues lern oder warte bis die PHP-Unterstützung da ist.

Link zu diesem Kommentar
Share on other sites

AddDevice wirft eine TimeoutException wenn es kein Device für die gegebene UID antwortet.

Na da muss ich mich eben noch schlau machen wie ich mit sowas in C# umgeh. is ja alles neuland :).

 

Bei VB erinnere ich mich, da gabs sowas wie "ON ERROR RESUME NEXT" usw...

 

Christian, die PHP Bindings sind gerade in Arbeit und sollten im Laufe der nächsten Woche fertig werden.

Das wird ja COOOL :D... dann bin ich mal gespannt wie sich das dann "anfühlt". da bin ich dann schon wesentlich heimischer *g*. Ihr macht echt großartige Arbeit muss ich sagen. Ich denk mit euch wirds nich langweilig. Wenn man hier so rumliest was ihr noch alles für Erweiterungen plant. Respekt!

Link zu diesem Kommentar
Share on other sites

Welche Probleme hast Du den jetzt noch mit C# ?

 

Na es geht ja Bergauf. Wie gesagt das mit den Exeptions macht mir eben manchmal einen Strich durch die Rechnung. Ich hatte mal nen Timer angelegt, der alle Sekunde die Werte ausliest und in die Text-Felder schreibt. Ab und an gabs halt ein Timeout und C# ist dann stehen geblieben. aber da muss ich mich erst noch näher mit C# auseinander setzen. Das ist halt immer ne ziemliche Zeitfrage :). Arbeiten soll ich schließlich auch noch was *g*, was mir wegen der "Ablenkung" hier nicht ganz so leicht fällt...

 

Gruß

Christian

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...