Jump to content

Umfrage: Welche Programmiersprache als nächstes?


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

Posted

Also wenn du ein bis zwei Beispiel-Devices geschrieben hast kann ich mir ja mal anschauen wie es mit der Generation dessen aussieht. Ohne Erfolgsgarantie, aber villt krieg ich ja was hin ^^

  • Replies 59
  • Created
  • Last Reply

Top Posters In This Topic

Posted

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

Posted
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)

Posted

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

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

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...