DACHSview++ is a MS Windows based general purpose graphical programming tool which is based on graphical function block display.
DACHSview++ applications are data flow and function block oriented and are developed within an uniform programming environment. The programming environment consists out of a programming workbench and one or several remote, multi threaded POSIX target systems. The communication between the workbench and the targets is based on a proprietary UDP protocol. Each target system supports up to 15 POSIX threads and works event oriented.
The graphically coded algorithms can be compiled on the fly to a binary list representation, and uploaded to the connected target for execution. This list of binary code and data is processed within the target systems by a small and fast processing loop, which works like a Turing Machine.
Each target thread runs its own instance of this processing loop and can be assigned to an individual core of a multicore CPU.
There is no need to integrate application code into the code of the target system in order to recompile it to an application specific target.
Function block definitions are provided by several base libraries and different extension libraries. The C-codes of these function blocks are part of the target systems. DACHSview++ targets support - depending on their software configuration - function blocks for e.g :
− 2D graphics: calls of the libraries SDL, SDL-Gfx, SDL_ttf, TinySDGL and FTLK as pre-defined function
blocks (FBs) incl. higher level FBs for easy handling of complex visualization tasks,
− 3D graphics: OpenGL (SDGL)
− Standard controls: Qt for GUI buttons, control- and input-elements, etc.
− SQL: SQLite for extending DACHSview++ for processing mass data
− International fonts: TTF support
− Message Passing by ZMQ
− Language bindings for LUA
− Embedded C-Compiler TCC
− Embedded C/C++ JIT Compiler (LLVM) for integrating of e.g. C/C++ Code of Qt, Matlab/Simulink ,
mathematical and scientific libraries, etc.
− Support of shared libraries
− OPC UA Client (Server is under development)
User defined function block applications can be reused as libraries. Function block libraries for fieldbuses like EtherCAT, PROFINET, Modbus, PROFIBUS-DP, CAN, CANopen, INTERBUS, etc. are offered as options. Access to operation system calls are provided by OS specific libraries.
The QNX6.x library offers e.g. access to physical memory, I/O ports, message passing IPC and interrupt handling.