Jump to content
[[Template core/global/global/poll is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]

Recommended Posts

  • Replies 59
  • Created
  • Letzte Antwort

Top Posters In This Topic

Geschrieben

@AuronX

Würde es die Arbeit erschweren, wenn in den Bindings, neue Klassen bzw. Typen hinzukommen, z.B. habe ich für die Transfer-Pakete einen eigenen Typen geschaffen, der sofort mit FktId, StackId und in der passenden Dimension initialisiert wird. In sämtliche Funktionen wird für meinen Geschmack immer die gleiche Paketstruktur redundant zusammengebaut.

Geschrieben
In sämtliche Funktionen wird für meinen Geschmack immer die gleiche Paketstruktur redundant zusammengebaut.

Vermutlich lässt sich da noch einiges optimieren ^^

 

Für einen einfachen Generator ist es am Ende nur wichtig, dass man die einzelnen Methoden nach einfachen Regeln bauen kann, deiner Beschreibung nach scheinst du ja die Handhabung sogar zu vereinfachen, sollte also gut sein.

 

Wenn ich eine Methode generiere, dann habe ich die folgenden Informationen:

- Welche ID hat sie auf TCP-Ebene

- Wie heißt sie

- Für alle Paramter/Rückgabewerte: Name, Typ, vielfältigkeit

 

Vielfältigkeit wird in C# durch arrays abgebildet.

 

(Zur Referenz: Config vom Stepper)

Geschrieben

Die TCP/IP Dokumentation ist schon fertig.

 

Super. Das ist aber neu, oder? Vor ein paar Wochen habe ich das noch nicht gefunden.

 

Wie ich schon an anderer Stelle geschrieben hatte, werde ich erst aktiv, wenn ich direkt per TCP/IP mit einem Brick kommunizieren kann (über Ethernet oder WLAN). Steuerung per USB ist für mich nicht interessant, weil es dafür immer einen PC oder einen relativ aufwändigen Embedded-Controller braucht.

 

Deswegen brauche ich auch keine Bindings für PC-Programmiersprachen.

 

  • 2 weeks later...
  • 10 months later...
  • 2 weeks later...
Geschrieben

Ich würde modernes C++ vorschlagen, also

  • nicht C
  • objektorientiert
  • CamelCase coding-style (passt gut zu Qt)
  • ähnlich wie die Java-Bindings (nur i.Allg. ohne new)
  • std::string statt char*
  • std::function und std::bind für Callbacks
  • einfach uint8 statt uint8_t (ggf. selbst definieren)

 

#include <iostream>
using namespace std;

#include "tinkerforge/IPConnection.hpp"
using namespace tinkerforge;

const string Host = "localhost";
const int Port = 4223;

// Print incoming enumeration information
void
enumerationCallback(
    const string& uid,
    const string& connectedUID,
    char position,
    uint8 hardwareVersion[3],
    uint8 firmwareVersion[3],
    uint16 deviceID,
    uint8 enumerationType
    //nicht nötig, dank bind(), siehe unten//void* user_data
) {
    cout << "UID:               " << uid << endl
         << "Enumeration Type:  " << enumerationType << endl;

    if (enumerationType == IPConnection::EnumerationType::Disconnected) {
        cout << endl;
        return;
    }

    cout << "Connected UID:     " << connectedUID << endl
         << "Position:          " << position << endl
         << "Hardware Version:  " << hardwareVersion[0] << "."
                                  << hardwareVersion[1] << "."
                                  << hardwareVersion[2] << endl
         << "Firmware Version:  " << firmwareVersion[0] << "."
                                  << firmwareVersion[1] << "."
                                  << firmwareVersion[2] << endl
         << "Device ID:         " << deviceID << endl
         << endl;
}

int
main() {
    // Create IP Connection
    IPConnection ipcon;

    if (ipcon.connect(Host, Port)) {
        cerr << "Could not connect to brickd" << endl;
        exit(1);
    }

    // Register enumeration callback to "enumerationCallback"
    ipcon.registerEnumerationCallback(&enumerationCallback);
    //ipcon.registerEnumerationCallback(bind(&AClass::enumerationCallback, this));

    // Trigger enumerate
    ipcon.enumerate();

    cout << "Press key to exit" << endl;
    getchar();

    //Nicht nötig, da vom Destruktor aufgerufen://ipcon.disconnect();
}

  • 2 weeks later...
Geschrieben

Hallo Zusammen,

für die kleines Projekt hab ich ein wenig mit Autoit gespielt. Und ich muss sagen ich war sehr angenehm überrascht. Ohne das ich was von der Script Sprache kannte habe ich sehr schnell ein kleines Programm mit GUI und Funktionen erstellt.

 

Ist zwar nur für Windows aber eine GUI Anwendung war wirklich sehr schnell erstellt. Vielleicht wäre das ja mal eine Überlegung wert.

 

Gruß der Denon.

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