Developing Control ApplicationsMotorcortex-core is a C++ library, a swiss knife for developing real-time control applications. Motorcortex-core provides a component model to build and structure controls, real-time event loop to execute controls, a data representation model to provide thread safe internal and external communication, a variety of tools for logging events and errors, loading and saving configurations, monitoring signals, moreover it provides drivers for EtherCAT fieldbus, CiA402 and Sercos protocols, drivers for joysticks, IMUs and other sensors. Applications which are built with motorcortex-core have a communication server which enables direct interface to the web based motorcortex portal. Setup Development EnvironmentMotorcortex control applications are built and deployed with CMake. There is an example which can be used as a template to start development of a new application. Recommended IDEs are CLion and VisualCode. Development of the applications can be done on a local Linux system, remote Motorcortex system or cross-compiled on the local Motorcortex system. Local developmentLocal development could be done on the user’s PC. The main requirement is an Intel-based Linux PC, with recent GCC (version 8+) or Clang (version 5+) compiler and CMake. All the required dependencies could be installed as binary packages. Remote developmentRemote development of the applications on the Motorcortex Target System. This method is easy to set up, it does not require cross-compilation tools and dependencies however the downside is that a compile time for the large projects may be significant. Cross-compilationWith Motorcortex SDK it is possible to compile the code for the remote Motorcortex Target System on a host system such as user's PC. It's a very useful technique which allows us to build applications without using actual hardware and to decrease build time for large projects. |