Extensions mit RoboPro simmunlieren/ansprechen

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Benutzeravatar
fishfriend
Beiträge: 1165
Registriert: 26 Nov 2010, 11:45

Extensions mit RoboPro simmunlieren/ansprechen

Beitrag von fishfriend » 02 Dez 2021, 11:32

Hallo...
Es geht um die Kommunikation von RoboPro zu einem Interface und dann zu Extentions. Ziel ist es eine Kommunikation aufzubauen, zwischen einem ftduino (bzw Ardunino) und RoboPro, aber diesmal mit der Möglichkeit, Extensions anzusprechen. Ich hatte da an die Möglichkeit gedacht mehr I/Os anzusprechen. Ich hab da schon einiges ausprobiert aber es hat bisher nicht geklapt. Nun wollte ich von neuem anfangen. Es ist auch die Frage ob die Anzahl der TAs in den Ram-Speicher passen, von der Geschwindigkeit her geht usw. aber mal schaun...

Ich benutze die TX - Version. Ich vermute, dass die TXT genau so läuft.

Vorab:
Meine Abfrage ist wie beim fx1-arduino-parser, wo jedoch der TA-Header in die Nutzdaten reingehen. Da wird nur der Commandcode(Telecode) und die Anzahl der Trasferaereas ausgewertet.
Für die Extensions brauch ich vermutlich aber noch mehr (01 PC_Programmierung_RoboTXC.PDF Seite 29):
Anzahl der fx1 Strukturen (Byte 20)
Wobei die Frage ist, ob es einzelne TAs, über FROM/TO, an eine Extension gibt. Bisher hatte ich es so verstanden, dass nur eine fx1 mit allen TAs übertragen wird. Ist das so richtig?

Die Frage die dahinter steckt ist die, ob beim Senden an RoboPro "einfach" alle TAs gesendet werden sollen oder ich getrennte Speicherbereiche nutzen muss.
----
Initialisierung
Jedoch muss beim Starten der Kommunikation noch mehr Infos übertragen werden.
TA_STATE hat ja "ext_dev_connect_state[N_EXT] " der jedoch (noch) nicht deffiniert wird.
Wohl ehr so:

Code: Alles auswählen

// State of connection to an extension device (Controller)
enum ext_dev_connect_state_e
{
    EXT_DEV_OFFLINE = 0,
    EXT_DEV_ONLINE,
    EXT_DEV_INVALID
};
Nur mit Status wir es aber wohl nicht gewesen sein, RobPro zu überzeugen mehr TAs zu übertragen.
Wird z.B. die zweite TA übertragen, wenn im laufenden Programm gar kein Port der Extension angesprochen wird?
Wie wird denn ein Name der Extension und ein evtl Firmwareupdate erkannt/übertragen?
Es ist halt die Frage welche weiteren Variablen ich noch zur verfügung stellen muss oder auswerten muss.
...
---
Oder doch mal ganz von vorne Anfangen? Wie die Kommunikation mit Extensions abläuft?
Ich gebe zu dass es mir gerade sehr schwer fällt z.B. eine zweite TA in das Programm zu bauen.
Mit freundlichen Grüßen
fishfriend
Holger Howey

PS
Erst dachte ich, ich bräuche nur die Anzal der I/Os vom Interface zu erhöhen. Es ist ja egal ob nun über Extension M1 oder M5 gesteuert wird. Das klappt leider so nicht. Ich vermute mal das der ft-Treiber das nicht mitmacht.
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

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

Re: Extensions mit RoboPro simmunlieren/ansprechen

Beitrag von fishfriend » 19 Dez 2021, 21:41

Hallo...
Also die nächsen Versuche...

Es ist bei mir so, dass RoboPro nur eine TA sendet.

Und es recht wohl nicht bei Request vom Commando 007 (TA_STATE) ihm bei
BOOL8 ext_dev_connect_state[N_EXT]; // See enum ext_dev_connect_state_e
Ihm ein
ext_dev_connect_state[1] = 1;
rüberzuschicken um bei RoboPro eine Entension zu aktivieren.

Auch "einfach" das Hauptinterface löschen und ein Programm nur mit I/Os der ersten Extension laufen zu lassen, ändert nicht die Anzahl der übertragenen TAs.
Was braucht es noch?

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

Antworten