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++.
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.
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 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
TheFtTxtWorkspace
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.
If you have any questions, please contact us: [email protected] .
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. )
- this Document
- What is an SLI?.
- What is in my toolbox? My program development environment
Same for both application and SLI development. - How to setup my fischertechnik SLI workspace in Eclipse?
Same for both application and SLI development) - How to start with my first fischertechnik project?
Almost the same for both application and SLI development. - How to start a new Fischertechnik SLI project
- Notes.
- Introduction and overview SLI project for the developer.
- Mosquitto MQTT
- Civetweb
- Technical information about I2C
- Official NXP I2C user guide, a must for the I2C user
- NXP AN10216-01 I2C MANUAL
All you need to know about for example: I2C device addressing. - NXP AN10441 Level shifting techniques in I2C-bus design
All you need to know about level shifting. - NXP product selector I2C
- I2C BUS
- I2C Devices
Information about the pull-up resistor value calculation.
- Official NXP I2C user guide, a must for the I2C user
- 2020-05-16/18/24 CvL 466.1.2 SLI, new
- 2020-06-03 CvL 466.1.3 contact, I2C references