wehnerc Posted July 17, 2014 at 03:50 PM Share Posted July 17, 2014 at 03:50 PM 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. Quote Link to comment Share on other sites More sharing options...
Loetkolben Posted July 17, 2014 at 04:02 PM Share Posted July 17, 2014 at 04:02 PM 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 Quote Link to comment Share on other sites More sharing options...
photron Posted July 17, 2014 at 04:24 PM Share Posted July 17, 2014 at 04:24 PM 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 Quote Link to comment Share on other sites More sharing options...
wehnerc Posted July 17, 2014 at 04:47 PM Author Share Posted July 17, 2014 at 04:47 PM Danke für die Antworten. Gibt es eine Möglichkeit rauszufinden welche Bindingversion verwendet wird? Quote Link to comment Share on other sites More sharing options...
photron Posted July 17, 2014 at 05:22 PM Share Posted July 17, 2014 at 05:22 PM 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? Quote Link to comment Share on other sites More sharing options...
wehnerc Posted July 17, 2014 at 06:46 PM Author Share Posted July 17, 2014 at 06:46 PM 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 Quote Link to comment Share on other sites More sharing options...
photron Posted July 18, 2014 at 08:09 AM Share Posted July 18, 2014 at 08:09 AM 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 Quote Link to comment Share on other sites More sharing options...
wehnerc Posted July 18, 2014 at 09:56 AM Author Share Posted July 18, 2014 at 09:56 AM 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. Quote Link to comment Share on other sites More sharing options...
photron Posted July 18, 2014 at 10:18 AM Share Posted July 18, 2014 at 10:18 AM 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. Quote Link to comment Share on other sites More sharing options...
wehnerc Posted July 18, 2014 at 10:22 AM Author Share Posted July 18, 2014 at 10:22 AM 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. Quote Link to comment Share on other sites More sharing options...
photron Posted July 18, 2014 at 02:03 PM Share Posted July 18, 2014 at 02:03 PM Ich habe jetzt auch die Dokumentation der get_api_version() Funktion erweitert, um sie besser zu erklären. Quote Link to comment Share on other sites More sharing options...
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.