wehnerc Geschrieben July 17, 2014 at 15:50 Geschrieben July 17, 2014 at 15:50 Hallo zu jedem Brick oder Brickelt gibt es eine get_api_version() Wie muss ich die Ausgabe interpretieren? bei mir auf einem MAC mit Python 2.7 kommt folgende Ausgabe für ein VoltageCurrent und Temp-Bricklet: API: (2, 0, 0) API: (2, 0, 0) Eigentlich bin ich mir sicher die Python API 2.1.1 installiert zu haben. Zitieren
Loetkolben Geschrieben July 17, 2014 at 16:02 Geschrieben July 17, 2014 at 16:02 Hallo wehnerc. Ich denke damit ist die Tinkerforge-Protokollversion gemeint. Die wurde (vor laengerer zeit) von 1.0 auf 2.0 umgestellt. Übergang von Protokoll 1.0 auf Protokoll 2.0 Damit kann man feststellen, ob alle Bricks/Bricklets kommunizieren koennen, bzw, eine Firmware haben die das Protokoll unterstuetzt. Der Loetkolben Zitieren
photron Geschrieben July 17, 2014 at 16:24 Geschrieben July 17, 2014 at 16:24 Loetkolben, das ist nicht die Protokoll-Version. Die kannst du nirgendwo direkt abfragen. wehnerc, das ist nicht die Release-Version der API Bindings. Die Bindings haben keine Funktion ihre Release-Version auszugeben. get_api_version() gibt die API Definitions-Version aus, die die gerade verwendeten API Bindings implementieren. Diese Versionsnummer ist recht nutzlos und die Funktion ist nur aus Gründen der Kompatibilität mit älteren Programmen noch da. Wir hätten sie beim Übergang von Protokoll-Version 1.0 auf 2.0 entfernen sollen, haben die Gelegenheit aber verpasst. Aus der API Definitions-Version kann man die Protokoll-Version ableiten, aber das war nicht deren Zweck. <Nachtrag> Die Protokoll-Version kann man natürlich auch aus der Release-Version der API Bindings und der Firmware ableiten. </Nachtrag> Hier gibt's also nichts zu sehen, bitte weitergehen Zitieren
wehnerc Geschrieben July 17, 2014 at 16:47 Autor Geschrieben July 17, 2014 at 16:47 Danke für die Antworten. Gibt es eine Möglichkeit rauszufinden welche Bindingversion verwendet wird? Zitieren
photron Geschrieben July 17, 2014 at 17:22 Geschrieben July 17, 2014 at 17:22 Die Bindings bieten keine Möglichkeit aus Python heraus zu bestimmen welche Release-Version es ist. Die Release-Version steht aber am Anfang der Brick und Bricklet Python Dateien in einem Kommentar. Wenn du die Bindings mit über pip installiert hast, dann kann dir pip sagen welchen Release-Version installiert ist. Bleibt die Rückfrage: Warum ist diese Information überhaupt interessant? Zitieren
wehnerc Geschrieben July 17, 2014 at 18:46 Autor Geschrieben July 17, 2014 at 18:46 Wenn du die Bindings mit über pip installiert hast, dann kann dir pip sagen welchen Release-Version installiert ist. Bleibt die Rückfrage: Warum ist diese Information überhaupt interessant? Hab versucht wie in der Dokumentation beschrieben: http://www.tinkerforge.com/de/doc/Software/API_Bindings_Python.html#api-bindings-python pip install tinkerforge zu installieren aber auf dem Mac hat er gesagt das dieses Kommando nicht vorhanden ist. Zur Frage Warum? Ich hatte die Bindings vor 1 Jahr installiert und wusste nicht mehr welche Version das war. Nach der Neuinstallation der akt. Version wollte ich das überprüfen Zitieren
photron Geschrieben July 18, 2014 at 08:09 Geschrieben July 18, 2014 at 08:09 Dann hast du wahrscheinlich pip nicht installiert, das nicht unbedingt standardmäßig bei Python dabei. Es lässt sich aber leicht nachinstallieren, siehe: https://pip.pypa.io/en/latest/installing.html Zitieren
wehnerc Geschrieben July 18, 2014 at 09:56 Autor Geschrieben July 18, 2014 at 09:56 Werd ich mal nachinstallieren. Frage dazu. Habe wie vorher beschrieben die Bindings installiert (aus dem source Verzeichnis) mit python setup.py install Damit haben bisher alle Beispielprogramme funktioniert. Habe ich dann noch easy_install tinkerforge.egg ausgeführt funktionieren die Beispiele nicht mehr. Habe auch mal den prefix tinkerforge. bei den Modulen weggelassen aber hat trotzdem nicht funktioniert. Ich versteh den Zusammenhang zwischen den Beiden noch nicht. Zitieren
photron Geschrieben July 18, 2014 at 10:18 Geschrieben July 18, 2014 at 10:18 setup.py und easy_install ist entweder oder. Die nächste Release der Bindings wird das tinkerforge.egg nicht mehr beinhalten, da diese Format mittlerweile deprecated ist und auch nicht gut funktioniert, wie du ja selbst siehst. Es wird in Zukunft nur noch "python setup.py install" und "pip install tinkerforge" geben, als Installationsoptionen. Wobei das ein entweder/oder Auswahl ist. Du muss nicht beides machen. Das geht aus der Dokumentation nicht wirklich gut hervor. Deswegen überarbeite ich die Installationsanleitungen aller Bindings auch gerade. Wenn "python setup.py install" für dich funktioniert, dann bleib dabei. Wenn du das nochmal ausführst sollte aus auch die kaputte easy_install Installation wieder retten können. Zitieren
wehnerc Geschrieben July 18, 2014 at 10:22 Autor Geschrieben July 18, 2014 at 10:22 Danke nochmal für die Klarstellung. Eine erneute "python setup.py install" Ausführung hat immer das Problem beseitigt. Damit kann der Thread geschlossen werden. Zitieren
photron Geschrieben July 18, 2014 at 14:03 Geschrieben July 18, 2014 at 14:03 Ich habe jetzt auch die Dokumentation der get_api_version() Funktion erweitert, um sie besser zu erklären. 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.