AuronX Geschrieben May 10, 2012 at 15:19 Geschrieben May 10, 2012 at 15:19 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 ^^ Zitieren
Nic Geschrieben May 10, 2012 at 15:32 Geschrieben May 10, 2012 at 15:32 @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. Zitieren
AuronX Geschrieben May 11, 2012 at 07:09 Geschrieben May 11, 2012 at 07:09 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) Zitieren
detg Geschrieben May 11, 2012 at 13:12 Geschrieben May 11, 2012 at 13:12 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. Zitieren
photron Geschrieben May 11, 2012 at 14:17 Geschrieben May 11, 2012 at 14:17 Die TCP/IP Dokumentation ist schon fertig. Super. Das ist aber neu, oder? Vor ein paar Wochen habe ich das noch nicht gefunden. Recht neu noch, ja 30. April => http://de.blog.tinkerforge.com/2012/4/30/low-level-protokoll-dokumentierung Zitieren
photron Geschrieben May 25, 2012 at 13:46 Geschrieben May 25, 2012 at 13:46 Ruby Bindings sind da! http://www.tinkerforge.com/doc/Software/IPConnection_Ruby.html http://download.tinkerforge.com/bindings/ruby/tinkerforge_ruby_bindings_latest.zip Als nächstes kommen Delphi Bindings, wahrscheinlich aufbauend auf Nics Prototypen: http://www.tinkerunity.org/forum/index.php/topic,444.msg2314.html Zitieren
Lars Ro Geschrieben April 13, 2013 at 13:03 Geschrieben April 13, 2013 at 13:03 Ich würde modernes C++ vorschlagen, also nicht CobjektorientiertCamelCase 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 Callbackseinfach 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(); } Zitieren
photron Geschrieben April 15, 2013 at 09:38 Geschrieben April 15, 2013 at 09:38 Beides durchaus sinnvolle Vorschläge. Die nächsten Bindings werden höchstwahrscheinlich für LabVIEW sein. Zitieren
luxor Geschrieben April 23, 2013 at 18:55 Geschrieben April 23, 2013 at 18:55 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. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.