TXT-4.0 ftrobopy Zählermotoren

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
Benutzeravatar
Die Chr0m
Beiträge: 5
Registriert: 27 Mär 2023, 17:57
Wohnort: Berlin

TXT-4.0 ftrobopy Zählermotoren

Beitrag von Die Chr0m » 30 Apr 2023, 15:10

Ich habe mir letztens einen TXT 4.0 gekauft und möchte nun meinen Code von dem alten TXT-3er auf dem Neuen laufen lassen über den ftrobopy_server mit der ftrobopy library. Jedoch ist mir ein Problem begegnet: Der Zählerstand eines Zählermotors setzt sich nicht mehr zurück!

Code: Alles auswählen

   
    while txt.getCurrentCounterValue(0) == 0:
        m1.setSpeed(-512)
    m1.stop()
hier würde ich erwarten, dass der Counter des Motors sich nach dem

Code: Alles auswählen

m1.stop()
zurücksetzt, wie es bei dem TXT-3.0 der Fall war, dies passiert hier leider nicht! Wie kann man dieses Problem lösen oder umgehen?

Vielen Dank für alle Antworten im Vorraus:
Dominik

Benutzeravatar
fishfriend
Beiträge: 1824
Registriert: 26 Nov 2010, 11:45

Re: TXT-4.0 ftrobopy Zählermotoren

Beitrag von fishfriend » 30 Apr 2023, 19:00

Hallo...
Ich bin mir nicht sicher, da ich ftrobopy noch nicht eingesetzt habe.

...Value(0) und m1 - Ist das die richtige Nummerierung?

Der Zähler ist im TXT - Muss man einen Extra Befehl geben um den Counter auf Null zu setzen?

Der Motor kann auch etwas nachlaufen und dadurch der Zähler einen Überlauf haben.

Mit freundlichen Grüßen
fishfriend
Holger Howey
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

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

Re: TXT-4.0 ftrobopy Zählermotoren

Beitrag von Torsten » 30 Apr 2023, 20:59

Hallo Dominik,

ich kann das von Dir beschriebene Verhalten mit ftrobopy und ftrobopy_server auf einem TXT 4.0 reproduzieren. Tatsächlich verhält sich der TXT 4.0 hier anderes als der TXT.

Ich muss allerdings nochmal genauer nachschauen, wo im ftrobopy_server-Code ich das am besten korrigiere, da die Datenstrukturen und Workflows von TXT und TXT 4.0 intern nicht genau gleich sind.

Bis dahin kannst Du den folgenden Workaround verwenden:

Nach jedem m1.stop() Befehl kannst Du manuell den entsprechenden Counter mit folgendem Befehl auf 0 stellen:

Code: Alles auswählen

txt.incrCounterCmdId(0)
Bitte beachte: bei diesem Befehl werden die Counter von 0-3 gezaehlt und nicht von 1-4, wie bei der txt.motor()-Klassenmethode.

Ich werde eine neue ftrobopy_server Version auf github hochladen, sobald ich eine runde Lösung gefunden habe.

Viele Grüße
Torsten

Benutzeravatar
Die Chr0m
Beiträge: 5
Registriert: 27 Mär 2023, 17:57
Wohnort: Berlin

Re: TXT-4.0 ftrobopy Zählermotoren

Beitrag von Die Chr0m » 01 Mai 2023, 09:23

Hallo Torsten,
danke für die schnelle Antwort und die Lösung, es scheint jedoch, dass der Zähler dann auf 1 und nicht 0 zurückgesetzt wird, stimmt das?

Dominik

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

Re: TXT-4.0 ftrobopy Zählermotoren

Beitrag von Torsten » 01 Mai 2023, 12:15

Hallo Dominik,

ja, dieses von dir beschriebene Problem konnte ich auch reproduzieren: Nach einem incrCounterCmdId-Befehl wird der Counter im TXT 4.0 zwar wirklich auf 0 gesetzt, aber bei der Abfrage trotzdem eine 1 zurückgeliefert.
Eine erste Fehlersuche deutet darauf hin, dass dies von einem Bug im Übertragungsprotokoll von ftrobopy_server verursacht wird, falls der Parameter "use_extension=True" im Initialisierungs-Aufruf von ftrobopy verwendet wird.

Das muss ich mir auf jeden Fall nochmal genauer anschauen.

Vielen Dank für den Hinweis!

Viele Grüße
Torsten

Antworten