TXT 4.0 Programmierung in C++
Verfasst: 18 Feb 2022, 20:39
Hallo,
außer in Robo Pro Coding und in Python kann der TXT 4.0 auch direkt in C++ programmiert werden. Einen Compiler (gcc 8.2.0) und alle erforderlichen Include-Dateien und Libraries zur Ansteuerung der Ein- und Ausgänge des Controllers bringt der TXT 4.0 schon von Haus aus mit.
Die Struktur der untersten Python-Ebene des TXT 4.0 lehnt sich eng an die Struktur von ftrobopy an. Aufgrund der Verwendung von SWIG zur Realisierung des Python/C++-Interfaces zur Ansteuerung der Motorplatine des TXT 4.0, findet man dieselbe Klassenstruktur auch auf der C++-Ebene wieder.
C++-Beispielprogramm (motor.cpp) zur Ansteuerung eines Motors am Eingang M1:
Außer der Definition der Klassenstruktur in der Datei /usr/include/ft/ft.hpp auf dem TXT 4.0 gibt es bisher von fischertechnik keine offizielle Dokumentation dazu. Man muss sich die Funktionen also selbst aus dem Source-Code heraussuchen. Einem geübten C++-Programmierer sollte das aber nicht allzu viel Mühe bereiten
C++-Programme lassen sich direkt auf der Kommandozeile des TXT 4.0 compilieren:
Ausführen lassen sich die compilierten Programme dann mit:
Kopiert man die C++-Datei (mit der Endung .cpp) und das compilierte Binary gleichen Namens (ohne .cpp-Endung) in einen Pfad unterhalb von /opt/ft/workspaces lassen sich die Programme durch auswählen der .cpp-Datei auch über das Touch-GUI des TXT 4.0 starten.
Viele Grüße
Torsten
Edit: gcc --> g++
außer in Robo Pro Coding und in Python kann der TXT 4.0 auch direkt in C++ programmiert werden. Einen Compiler (gcc 8.2.0) und alle erforderlichen Include-Dateien und Libraries zur Ansteuerung der Ein- und Ausgänge des Controllers bringt der TXT 4.0 schon von Haus aus mit.
Die Struktur der untersten Python-Ebene des TXT 4.0 lehnt sich eng an die Struktur von ftrobopy an. Aufgrund der Verwendung von SWIG zur Realisierung des Python/C++-Interfaces zur Ansteuerung der Motorplatine des TXT 4.0, findet man dieselbe Klassenstruktur auch auf der C++-Ebene wieder.
C++-Beispielprogramm (motor.cpp) zur Ansteuerung eines Motors am Eingang M1:
Code: Alles auswählen
#include <unistd.h>
#include <iostream>
#include <ft/ft.hpp>
int main(void) {
ft::TXT txt("auto");
ft::Motor m1(txt, 1);
m1.startSpeed(512);
usleep(2000000); // in Mikrosekunden
m1.setSpeed(0);
}
C++-Programme lassen sich direkt auf der Kommandozeile des TXT 4.0 compilieren:
Code: Alles auswählen
g++ motor.cpp -o motor -lTxtControlLib
Code: Alles auswählen
./motor
Viele Grüße
Torsten
Edit: gcc --> g++