Skip to content

fischertechnik/txt_demo_ROBOPro_SLI

Repository files navigation

Content

C/C++ programming for the fischertechnik TXT controller

Target groups for this information.

This information is aiming for two groups of users, the end-user and software developer:

A developer is someone with at least basic software engineering's skills. He/she will find information about how to create new or modify existing SLI's or applications, suggestions for the toolbox needed, setting up a development environment on MS-Windows. How to use this environment to create documents, and how to use your custom SLI's or applications.

An end-user is somebody with the focus on the TXT and RoboPro and a user of the functionality offered by the SLI's or the applications. He/she will find here information and examples about how to use an SLI or application. The end-user don't need to setup a complete development system, maybe only Putty and Notepad++.

Introduction

This is all about creating and/or using local applications and RoboPro extensions on the fischertechnik TXT . There are several possibilities to use C/C++ programs locally on the TXT:

  • As TXT local C/C++ application
    A local C/C++ application instead of a local RoboPro program.
    This is faster because of the leak of overhead from the RoboPro. The fischertechnik TXT C/C++ interface offers direct access to the TXT actuators outputs, sensors inputs, the I2C interface and the camera device. There is for example also access to the file system, disk memory, USB memory and SD-card, the internet interface. In combination with technologies like Civetweb, or Mosquitto MQTT this offers a possibility to create functional units which can be part of a bigger system. Also interesting for the end-user and the educational world.

  • As TXT Shared Library Interface (SLI) for ROBOPro
    A SLI extends the basic set of RoboPro elements with new one's. It enables also for the developer user to add functionality to RoboPro. Functionality that can be used by the end-users (RoboPro) later. The possibilities are the same as for the C/C++ applications but with some restrictions.
    SLI's are very interesting because they can add elements (functionality) to RoboPro for the end-users.
    For further information see txt_demo_ROBOPro_SLI.

Besides this local use, there are also possibilities to incorporate the TXT remotely in programs which are running on other systems.

  • The TXT works with Berkeley sockets and so called transfer area (TA) for communication.
  • The TXT is using a socket with port 65000 for the TA, 65001 for the video and 65002 for the I2C.
  • Here you will find how to create a remote program with the .NET Visual Studio (2017, 2019) environment.
  • Remote programs can be programmed in a lot of languages, if they support Berkeley sockets.
  • It is also possible to use Python with the FtRoboPy (pre-installed on the TXT). A Python program can run remotely and local.
    However, FtPythonPy is using a connection over the sockets, and in fact, it's behavior is like a remote application that when it runs locally on the TXT, it runs with the IP-address (localhost) 127.0.0.1.

About the terms: TXT C/C++ application, download and uploading?

In my opinion the name C/C++ download program must be TXT C/C++ application. I will explain "why".
The dictionary said that iIt is "downloading from" and "uploading to". The application (a compiled program) or SLI is going from the remote system to the TXT and that is uploading. That is also the terminology used by the fischertechnik TXT web interfacing.
For that reason I will use the term (TXT C/C++) application , upload to the TXT and downloading from the TXT.

This repository covers only C/C++ applications and SLI's that will run directly on the TXT. However these applications and SLI's will be develop remotely with a the add of a cross-compiler.

The organization of this GitHub repository

  • The map FtTxtExamples is aiming for the end user. The applications and/or SLI's are pre-compiled and ready to use. You don't need to have a development environment.
    This map contains usable examples. See also
  • The map FtTxtWorkspace is aiming for the developer
    The FtTxtWorkspace root contains Eclipse example projects and the supporting TXT libraries. See also the FtTxtWorkspace readme.
  • In this root you will find a descriptions of "How to ... ? and overviews"

Both the FtTxtExamples and FtTxtWorkspace maps will be available under "release" as separate zip files. So you can use them without knowledge of the GitHub (or Git) system.

What to do in case of problem or questions?

If you have any questions, please contact us: fischertechnik-technik@fischer.de .
It is also possible to report a problem as Issues go to Issues.
In both cases:

  • Mention your name and e-mail address. Mention the (pre-) release version (Vx.y.z).
  • Mention the project name and file name.
  • Give a detailed and to the point description of the problem.
  • If possible add trace info (see the previous chapter. )

Documentation

Overview

For the end-user:

For the developer:

For the end-user:

General

References

document history

  • 2020-05-16/18/24 CvL 466.1.2 SLI, new
  • 2020-06-03 CvL 466.1.3 contact, I2C references