TXT Extension mit Python ansteuern

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Gamlicuss
Beiträge: 3
Registriert: 13 Nov 2019, 11:12
Wohnort: Freudenstadt

TXT Extension mit Python ansteuern

Beitrag von Gamlicuss » 13 Nov 2019, 11:41

Hallo zusammen,
Ich bin Informatik Student und habe als Studienarbeit die Aufgabe die 9V Modellfabrik (https://www.fischertechnik.de/de-de/ser ... ulation-9v) an unserer Hochschule Softwaremäßig zu Überarbeiten.
Ich frage mich nun ob es möglich ist, mit dem ftrobopy Pythonmodul auch die Ein und Ausgänge eines als Slave/Extension angeschlossenen TXT vom Master zu steuern.
Mit C/C++ hab ich dies bereits zum laufen bekommen, für Python habe ich allerdings noch keine Lösung gefunden.
Über eure Hilfe würde ich mich sehr freuen :)

vleeuwen
Beiträge: 1557
Registriert: 31 Okt 2010, 22:23
Wohnort: Enschede (NL)
Kontaktdaten:

Re: TXT Extension mit Python ansteuern

Beitrag von vleeuwen » 13 Nov 2019, 17:06

I can only reply in English. Sorry for this.
For what I have seen in the FtRobopPy documentation and source it is only addressing to the main controller.
However FtRoboPy is using the same socket connection as the C/C++ online library.
In the C/C++ sources you will find that to address the second TXT the TA (transfer area) needs to be compressed (see DoTransferCompressed) and the struct CRC32.
The FtRoboPy is both in the online as in the offline setting communicating with the IO-part over a socket: for this you will need to extend the FtRoboPy with the compression algorithm and compress the TA communication in the same way as done in the online C/C++ library.
In the C/C++ offline it is easier, you can address directly the second controller in the TA (But this is the TA at the other site of the socket)
This has been showed in example TxtDemo03_Input12ExtM12

Personally my choice for a program language is normally set through the language used in the documentation.
This to avoid complications. In case of the TXT my choice is to use C/C++.

==========================
edit PHabermehl:

I take the trouble and send the text through deepl.com (as a courtesy in compliance with the recent board rules), the result should be understandable. For me as a German native speaker it fits.
Ich mache mir mal die Mühe und schicke den Text durch die Übersetzung von deepL.com - Das Ergebnis sollte wohl verständlich sein:


Ich kann nur auf Englisch antworten. Das tut mir leid.
Was ich in der FtRobopPy-Dokumentation und der Quelle gesehen habe, richtet sich nur an den Hauptkontroller.
FtRoboPy verwendet jedoch die gleiche Socket-Verbindung wie die C/C++ Online-Bibliothek.
In den C/C++-Quellen finden Sie, dass zur Adressierung des zweiten TXT der TA (Transferbereich) komprimiert werden muss (siehe DoTransferCompressed) und die Struktur CRC32.
Die FtRoboPy ist sowohl in der Online- als auch in der Offline-Einstellung mit dem IO-Teil über einen Socket verbunden: Dazu müssen Sie die FtRoboPy mit dem Kompressionsalgorithmus erweitern und die TA-Kommunikation wie in der Online-C/C++-Bibliothek komprimieren.
In der C/C++ offline ist es einfacher, Sie können direkt die zweite Steuerung im TA ansprechen (aber das ist der TA an der anderen Seite des Sockels).
Dies wurde im Beispiel TxtDemo03_Input12ExtM12 gezeigt.

Persönlich wird meine Wahl für eine Programmsprache normalerweise durch die in der Dokumentation verwendete Sprache bestimmt.
Dies, um Komplikationen zu vermeiden. Im Falle des TXT ist meine Wahl die Verwendung von C/C++.

Übersetzt mit www.DeepL.com/Translator

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: TXT Extension mit Python ansteuern

Beitrag von PHabermehl » 13 Nov 2019, 17:32

edit: Quatsch geschrieben, I2C Master-Slave geht mit 2 TXT vermutlich nicht, sorry.

Hallo Gamlicus,

Du könntest den Autor von ftrobopy mal direkt ansprechen: Torsten Stühn, vielleicht hat er dazu noch Ideen. Meines Wissens nach ist die Master-Slave-Kommunikation (noch?) nicht implementiert.

Was aber noch eine Möglichkeit wäre, wäre, die Geräte über I²C-Bus zu koppeln. Das kannst Du ggf. schneller selbst implementieren als die Erweiterung von ftrobopy.

Gruß
Peter
============================================================
edit: Sorry, probably a Master-Slave I2C connection between two TXT is most likely not possible.

Hello, Gamlicus,

You could contact the author of ftrobopy directly: Torsten Stühn, maybe he has some ideas. To my knowledge the master-slave communication is not (yet?) implemented.

Another possibility would be to connect the devices via I²C-Bus. You may be able to implement this yourself faster than the extension of ftrobopy.

Greeting
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

Benutzeravatar
PHabermehl
Beiträge: 2429
Registriert: 20 Dez 2014, 22:59
Wohnort: Bad Hersfeld

Re: TXT Extension mit Python ansteuern

Beitrag von PHabermehl » 13 Nov 2019, 22:45

Hi nochmal,

vleeuwen hat mich gerade darauf aufmerksam gemacht, dass die Master-Slave-Konfiguration zweier TXTs über I2C vermutlich nicht möglich ist. Beide Geräte können nur als I2C Master agieren.

Aber eine weitere Möglichkeit der Kopplung zweier TXTs könnte darin bestehen, den zweiten TXT explizit über seine IP-Adresse mit ftrobopy im Onlinemodus anzusprechen. Dazu müssen beide Geräte natürlich im selben (W)LAN sein, aber das sollte theoretisch funktionieren - probiert habe ich es mangels zweitem TXT allerdings nicht.

Gruß
Peter
===========================
Hi again,

vleeuwen has just alerted me that the master-slave configuration of two TXTs over I2C is probably not possible. Both devices can only act as I2C masters.

But another way of pairing two TXTs could be to explicitly address the second TXT via its IP address with ftrobopy in online mode. Of course both devices have to be in the same (W) LAN, but that should theoretically work - because of lacking a 2nd TXT I haven't tried that myself anyway.

Greetings
Peter
https://www.MINTronics.de -- der ftDuino & TX-Pi Shop!

viele Grüße
Peter

Torsten
Beiträge: 308
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: TXT Extension mit Python ansteuern

Beitrag von Torsten » 14 Nov 2019, 20:44

Hallo Gamlicuss,

in der nächsten ftrobopy Version wird die Master-Slave Funktionalität zwischen 2 TXTs über den Extensionport unterstützt werden (ich arbeite gerade daran). Ich weiss noch nicht genau, wann ich es fertig haben werde, das hängt davon ab, wieviel ich Zeit ich habe. Ich denke, innerhalb der nächsten 4 Wochen.

Viele Grüße
Torsten
=======================0
edit PHabermehl:

Hello, Gamlicuss,

in the next ftrobopy version the master-slave functionality will be supported between 2 TXTs via the extension port (I'm working on it right now). I don't know exactly when I will have it ready yet, it depends on how much time I have. I think within the next 4 weeks.

Many greetings
Torsten

Gamlicuss
Beiträge: 3
Registriert: 13 Nov 2019, 11:12
Wohnort: Freudenstadt

Re: TXT Extension mit Python ansteuern

Beitrag von Gamlicuss » 15 Nov 2019, 09:15

Hallo Torsten,
vielen Dank, das hört sich sehr gut an :D,
danke auch an die anderen für die schnellen Antworten

viele Grüße
Gamlicuss

robofreak
Beiträge: 9
Registriert: 17 Dez 2016, 08:37
Wohnort: 69190 Walldorf

Re: TXT Extension mit Python ansteuern

Beitrag von robofreak » 24 Jun 2021, 15:19

Hallo, zusammen,

ich habe ein unerklärliches Problem bei der Anfrage von Inputs bei der Nutzung von 2 verbundenen TXT's mit FTROBOPY.

Ich nutze Ftrobopy, neueste Version, mit Python mit der Option "use_extension=True" zur Ansteuerung von 2 TXT mit Master/Slave-Konfiguration mit Kabelverbindung.
Die Anzahl der Ein/Ausgänge wird für mein Modell benötigt.

Ich führe die Programme remote über WLAN vom PC auf den TXT's-Standardfirmware- aus.
Alles klappt prima, Ausgänge, Motoren, Encoder-Abfrage, usw, AUßER der Abfrage von Inputs, z.B. von Tastern.

Fehlersituation:
Die Tasteränderung wird -einmal- korekt abgefragt , z.B. Druck = Änderung vn 0 zu 1. Bei der nächsten Abfrage des Inputs über state() innerhalb desselben Programmlaufs verbleibt der Wert aber bei -1-, trotz nicht gedrückter Taste und ändert sich auch nicht mehr. Nach Programmnneustart geht es dann wieder nur ein einziges Mal.

Dies betrifft sowohl inputs auf dem Master als auch der Extension.

Sobald ich die ftrobopy-Verbindung ohne die Option "use_extension=True" herstelle, läuft die Abfrage auf dem Master bei unverändertem PythonCode wieder völlig normal.
Auch über RobPro können die beiden TXT korrekt angesteurt werden.

Hat jemand auch solche Probleme, gibt es evtl. Lösungsmöglichkeiten??

Torsten
Beiträge: 308
Registriert: 29 Jun 2015, 23:08
Wohnort: Gernsheim (Rhein-Main-Region)

Re: TXT Extension mit Python ansteuern

Beitrag von Torsten » 05 Jul 2021, 21:14

Hallo,

das war ein Bug, der aber mit der Version 1.97 von ftrobopy behoben sein sollte.

Viele Grüße
Torsten

Antworten