Seite 1 von 1
Python auf der Standard Firmware
Verfasst: 19 Dez 2020, 13:09
von Chuaat3.Versuch
Hallo,
seit der Offiziellen Firmware Version 4.6.6 (
https://github.com/fischertechnik/FT-TXT/releases) ist ein Python Launcher im TXT integriert. Kann man diesen irgendwie benutzen um Python Dateien ohne die Community Firmware laufen zu lassen? Und wenn ja, kann man irgendwie Python-Bibliotheken, die nicht standardmäßig mit Python kommen und mit PIP installiert werden müssten, benutzen?
Danke im Voraus,
LG. Chuaat
Re: Python auf der Standard Firmware
Verfasst: 19 Dez 2020, 19:47
von Torsten
Hallo Chuaat,
Da auch die Python-Library ftrobopy[1] bei der 4.6.6 Firmware vorinstalliert ist, kannst Du damit und mit dem Python Launcher die Ein- und Ausgaenge des TXT direkt in Python ansteuern (im Online- und Offline-Modus).
Chuaat3.Versuch hat geschrieben: ↑19 Dez 2020, 13:09
Und wenn ja, kann man irgendwie Python-Bibliotheken, die nicht standardmäßig mit Python kommen und mit PIP installiert werden müssten, benutzen?
Solange die Python-Bibliotheken, die Du installieren moechtest, rein in Python geschrieben sind, geht das normalerweise. Sobald andere Sprachen beteiligt sind, die einen Compiler erfordern (z.B. C/C++), ist es nicht mehr ganz so einfach, da der TXT ohne vorinstallierten C/C++ Compiler kommt. Mit etwas mehr Aufwand ist aber auch das moeglich.
Viele Gruesse
Torsten
[1]
https://github.com/ftrobopy
Re: Python auf der Standard Firmware
Verfasst: 20 Dez 2020, 10:29
von vleeuwen
The basic idea behind the TXT (ARM Cortex A8 (ARM v7-A),embedded LINUX) is cross compiling from a windows or linux system.
A way to find a solution could be cross compiling for Python PIP's.
Maybe this can help you to find a solution for your problem: (search on the web: Python PIP cross compiling)
https://pypi.org/project/crossenv/
The basics about cross compiling for the TXT with Eclipse has been discussed on:
https://github.com/fischertechnik/txt_demo_ROBOPro_SLI
Documentation is all in English.
(For translation, see Google translate)
===============================
Die Grundidee beim TXT (Embedded LINUX) ist das Cross-Compilieren von einem Windows- oder Linux-System.
Möglicherweise besteht eine Möglichkeit, eine Lösung zu finden, in der Cross-Kompilierung für Python-PIPs.
Vielleicht kann Ihnen dies helfen, eine Lösung für Ihr Problem zu finden:
https://pypi.org/project/crossenv/
Re: Python auf der Standard Firmware
Verfasst: 21 Dez 2020, 12:39
von Chuaat3.Versuch
Danke für die Antworten!
Eine Frage habe ich noch:
Kann man das Python Programm nur vom PC aus laufen lassen, oder kann man es auch vom TXT direkt starten?
Wenn ja, wie würde man das Programm auf den TXT übertragen?
LG. Chuaat
Re: Python auf der Standard Firmware
Verfasst: 21 Dez 2020, 13:09
von vleeuwen
With the TXT web interface you are able to upload /download / manage files to the use data area on the TXT.
Or with for example Filezilla.
You will need firmware 4.6.6 or 4.7.0
There is a Python runtime on the TXT available. So after uploading your py program you can run it from the command prompt (Putty).
See also the documentation of the FtRoboPy:
https://github.com/ftrobopy/ftrobopy
The py programs can run remote or local.
It is even possible to use Python in a CGI script with CivetWeb on the TXT.
============== Google translate for what it is ===================================================================================
Mit der TXT-Weboberfläche können Sie Dateien in den Verwendungsdatenbereich des TXT hochladen / herunterladen / verwalten.
Oder zum Beispiel mit Filezilla.
Auf dem TXT ist eine Python-Laufzeit verfügbar. Nachdem Sie Ihr py-Programm hochgeladen haben, können Sie es an der Eingabeaufforderung (Putty) ausführen. Siehe auch die Dokumentation des FtRoboPy
https://github.com/ftrobopy/ftrobopy
Die py-Programme können remote oder lokal ausgeführt werden.
Re: Python auf der Standard Firmware
Verfasst: 21 Dez 2020, 15:06
von Chuaat3.Versuch
Thanks for your answer!
Eine letzte Frage: Funktioniert die Anzeige auf dem TXT gleich wie in der Community Firmware, also mit TouchStyle und QT4, oder ist das gar nicht möglich.
Translation (deepl translate):
One last question: Does the display on the TXT work the same as in the community firmware, i.e. with TouchStyle and QT4, or is that not possible at all?
Re: Python auf der Standard Firmware
Verfasst: 23 Dez 2020, 15:16
von ft-ninja
vleeuwen hat geschrieben: ↑21 Dez 2020, 13:09
So after uploading your py program you can run it from the command prompt (Putty).
Hi Carel,
Do you know - is there any special requirements for python script to start it from integrated LCD GUI? I can start my scripts via SSH, but no success via GUI.
Re: Python auf der Standard Firmware
Verfasst: 23 Dez 2020, 15:59
von vleeuwen
@ft-ninja
Since firmware 4.6.6 there is a Python launcher available (Release Notes TXT Firmware 4.5.1 -> 4.6.6).
I tried and tested that a long time ago but the termination after the end of the script gave some minor problems but it is usable.
I did not tested this on 4.8.0 yet.
I also tested Civetweb CGI interface with Python and that was working fine; this with the use of FtRoboPy.
But the CGI interface with C/C++ was also working fine.
Because C/C++ is the native interface langage, I am using C/C++ most of the time.
For Civetweb on the TXT, see also some of my personal notes:
http://tescaweb.nl/Carel/?p=407
@Chuaat3.Versuch
By my knowledge the TXT display is not accessible by the fischertechnik programming interface.
However it could be that I have miss something in the past.
Personal I am using embedded CivetWeb to have a Winsocket connection between my local application on the TXT and my control logic (web based).
I that case the TXT runs as access point and I can control that model with a normal browser (device Independent).
It is even possible to put the embedded Civetweb part in a RoboPro SLI element and create the application with RoboPro.
The TXT access point could also act a router for more client devices.
Use you fantasy.
Re: Python auf der Standard Firmware
Verfasst: 23 Dez 2020, 18:00
von Torsten
Hallo Chuaat,
Chuaat3.Versuch hat geschrieben: ↑21 Dez 2020, 12:39
Kann man das Python Programm nur vom PC aus laufen lassen, oder kann man es auch vom TXT direkt starten?
Wenn ja, wie würde man das Programm auf den TXT übertragen?
Ja, man kann ab der Version 4.6.6 Python Programme auch lokal auf dem TXT laufen lassen.
Man muss dazu im Verzeichnis /opt/knobloch auf dem TXT einen Ordner namens "Python" anlegen.
Entweder per ssh:
# ssh ROBOPro@192.168.7.2
# mkdir Python
Oder per Webbrower, der zuvor auf dem TXT gestartet worden sein muss (Einstellungen-->Sicherheit-->WEB Server), einen neuen Ordner anlegen.
In diesen Ordner sollte man nun die Python Programme kopieren (per scp oder auch per Webbrowser)
In der GUI des TXT erscheint dann unter "Datei" auch der Ordner Python und man kann die Python Scripte von dort per GUI laden und starten.
Damit das alles funktinoiert, benoetigt man noch die neueste Version von ftrobopy (1.93), die es auf github.com/ftrobopy gibt. Man kopiert einfach die beiden Datein ftrobopy.py und ftTA2py.so in den Python Ordner auf dem TXT.
In dem Python-Skript muss dann bei der Initialisierung von ftrobopy der sog. TransferAreaMode eingeschaltet werden:
Code: Alles auswählen
txt=ftrobopy.ftrobopy('auto', use_TransferAreaMode=True)
Im Prinzip kann man auch auf den Bildschirm des TXT von Python aus zugreifen (ueber das TXT Framebuffer Device /dev/fb0). Da Python allerdings recht langsam ist, sollte man die Bildschirmroutinen besser in C/C++ implementieren. Dafuer kann man die SDL (Simple Display Library) verwenden, die auf dem TXT immer installiert ist.
Viele Gruesse
Torsten
Re: Python auf der Standard Firmware
Verfasst: 23 Dez 2020, 18:15
von vleeuwen
Thanks Torsten, very useful.
I was searching for the description of SDL and found only Simple DirectMedia Layer,
(
http://www.sdltutorials.com/sdl-tutorial-basics or
https://www.geeksforgeeks.org/sdl-libra ... -examples/)
Is that what mean? Or did I overlook something?
Re: Python auf der Standard Firmware
Verfasst: 23 Dez 2020, 18:28
von Torsten
Hi Carel,
vleeuwen hat geschrieben: ↑23 Dez 2020, 18:15
I was searching for the description of SDL and found only Simple DirectMedia Layer,
yes, you are right of course. Thats what I ment: SDL for Simple DirectMedia Layer.
Sorry for the confusion.
Best wishes,
Torsten
Re: Python auf der Standard Firmware
Verfasst: 25 Dez 2020, 12:25
von Chuaat3.Versuch
Ok danke für die Antwort
Re: Python auf der Standard Firmware
Verfasst: 29 Dez 2024, 12:02
von EstherM
Hallo zusammen,
nur wenige Jahre später möchte ich diesen Thread mal wieder hochkramen.
Ich freue mich, dass es ftrobopy gibt und dass ftrobopy noch "lebt" und dass es auch auf der Standard-Firmware läuft. Danke!
Mein Testprogramm hat online bestens funktioniert.
Jetzt möchte ich das Programm auch offline direkt auf dem TXT laufen lassen.
Dazu habe ich folgendes gemacht:
- Von GitHub die neueste Version von ftrobopy.py und ftTA2py.so geholt.
- Auf dem TXT ein Verzeichnis /opt/knobloch/Python angelegt.
- Mit scp mein Programm, ftrobopy.py und ftTA2py.so dort hin kopiert.
- Das Programm (automation_robots.01.py) versucht zu starten und eine Fehlermeldung erhalten:
Code: Alles auswählen
$ python automation_robots-01.py
IO-1
StartTxtDlPrg-4 Thrd-Run
Connected to TXT TransferAreaMode firmware version not detected
MenueBase::Finished: ROBOProDisplayPseudoMenue not active or was activated by ROOT
Was mache ich falsch?
Die ersten Zeilen meines Programms sehen so aus:
Code: Alles auswählen
#!/usr/bin/env/ python3
import ftrobopy
# txt = ftrobopy.ftrobopy('192.168.178.174')
txt = ftrobopy.ftrobopy('auto', use_TransferAreaMode=True)
Für sachdienliche Hinweise bin ich sehr dankbar.
Gruß
Esther
Re: Python auf der Standard Firmware
Verfasst: 30 Dez 2024, 14:31
von Torsten
Hallo Esther,
die Meldung
Code: Alles auswählen
MenueBase::Finished: ROBOProDisplayPseudoMenue not active or was activated by ROOT
erhält man erst ab der Firmwareversion 4.7.0.
Die genaue Ursache für diese Meldung habe ich bisher auch noch nicht ergründen können. Sie erscheint immer nach dem Ende eines (ftrobopy-) Python Scriptes. Allerdings hatte diese Meldung, zumindest bei mir, bisher keinen weiteren Einfluss auf den Ablauf meiner Programme. D.h. alles lief bei mir völlig normal (bis auf die Meldung nach dem Beenden). Falls Dein Script überhaupt nicht läuft hat das wahrscheinlich andere Gründe. Wenn Du mir Dein Python-Programm schickst -- am Besten per Email, die hast Du ja

-- kann ich mir das auch gerne mal anschauen.
Viele Grüße
Torsten
Re: Python auf der Standard Firmware
Verfasst: 30 Dez 2024, 17:27
von EstherM
Hallo zusammen, hallo Torsten,
Torsten hat geschrieben: ↑30 Dez 2024, 14:31
Allerdings hatte diese Meldung, zumindest bei mir, bisher keinen weiteren Einfluss auf den Ablauf meiner Programme.
Danke für diesen Hinweis.
Ich bin darauf hin der Sache noch mal nachgegangen.
Bei der Initialisierung über
Code: Alles auswählen
txt = ftrobopy.ftrobopy('auto', use_TransferAreaMode=True)
funktioniert das Programm gar nicht oder nur ein bisschen.
Mein Programm lässt sich aber sowohl über SSH als auch über das TXT-Display starten und funktioniert tadellos, wenn ich den TXT mit der IP-Adresse initialisiere:
Wenn ich das Programm über SSH starte, steht im Display "Online", bei Start über das Display leider "NO PROGRAMM", obwohl das Programm läuft.
Das stört mich aber nicht so sehr, dass ich weitere Maßnahmen für nötig halten würde.
Für mich funktioniert alles so, wie ich es brauche und mir lange gewünscht habe. Vielen Dank dafür!
Gruß
Esther