Tags: RTXI/rtxi
Tags
Merge pull request #164 from RTXI/dev Implemented tracking of downsampling for analog channels on nidaq devices Implemented downsampling logic for hardware reads and writes on NIDAQ… Updated write logic for better downsampling behavior removed downsampling from writes as this is not supported Updated template plugin generation script to compile correctly Demoted createGUI to non-virtual as it is not common to modify the provided implementation Fixed bug where DAQ devices cannot be connected to the same plugin updated oscilloscope to keep selected channel when clicking apply Fix bug with offset in oscilloscope. fix offset issues in oscilloscope fixed regression introduced by modifying cycle detection logic fixed connector bug where clicking on connection list would not properly update dropbox values
Dev (#145) This update modernizes RTXI architecture and leverages newer techniques on performance and maintainability patterns. The need for these updates originates primarily from the difficulty of updating RTXI 2.4 to the new Xenomai API, as well as the unfortunate news that the Analogy drivers used for hardware access would not be supported any longer under Xenomai. These and other architectural issues made it necessary to apply the lessons learned from years of use to improve software architecture and flexibility. This update relies on proven methods, and uses existing code to create a modern RTXI application. Some of the changes introduced: New abstractions that reduces user and developer cognitive load Introduces a new scheduler and connector classes for faster and more accurate plugin real-time scheduling A redesign of the event system to have stronger typing and safer abstractions Support for the newest Xenomai framework now called EVL Introduction of new DAQ driver model to support non Analogy devices Support for National Instruments DAQ PCIe devices Introduction of the Real-Time Platform Abstraction Layer (RTPAL) for non Xenomai real-time support Automatic driver and real-time platform detection scheme for ease of use Central logging system to capture events fired by RTXI components and plugins Retire the DefaultGuiModel classes and introduction of the widget classes (plugin, component, and panel) Migration from autotools build system to cmake Update to installation instructions for both main RTXI components and DSO plugins Major updates to the builtin plugins such as data recorder and oscilloscope and many more This update breaks backwards compatibility with already existing plugins, and these will be updated in their own repositories.
Updates to RTXI testing and debugging (#141) * Feature/xenomai update (#134) * Updated installatin procedure for linux 4.9.90 and xenomai 3.1 * Removed unsupported backwards compatibility with git libraries * further updates to dependency and kernel installation scripts * Improved kernel installation script for more dynamic file downloads * Changed kernel and ipipe to supported versions * Updated missing dependency * updated to kernel version to remove compilation bug * trying to find a workable ipipe version * updated build process and added pkgconf dependency in installation scripts * Updated rt kernel installation script for flexibility * bump version number * Added CIP kernel support * Updated script modification details. Co-authored-by: Ivan F. Valerio <[email protected]> * Updated teamviewer installation script for helpdesk * Removed bug where distribution target in build fails * Feature/module installer progressbar (#138) * Added loading message with progress bar for module installer * Added error message when plugin build fails * Removed bug where README text fails to load after plugin installation * Added Boost testing library as a testing framework * modified debug header to use boost::stacktrace library * added testing source files * Removed unused compilation flags from Makefile.buildvars * Updated error messaging to use boost library stacktrace printout. Removed some Debug messages * Removed unused comment from debug.h * Included autoconf-archive and boost test library dependencies * Changed Makefile.am and cpp files in tests to include rtxi project objects and code * Modified posix version of rtos to not throw stacktrace errors on startup * Added more rtxi tests and included rtxi_tests.h for organization of fixtures * Moved over to googletest framework. Although hard to integrate, easy to use and includes mocking out of the box with gmock * replaced boost testing framwork with googletest framework libraries in dependency installation script * Added basic tests to a few RT::System class public functions * Fully transition testing functions from boost test to gtest/gmock * Added event mocking object. Causes segfault in current implementation * fixed bug where RTXI fails to link properly because of linker order * Built tests for RT::System class * Added functions to test real-time thread main loop * Added tests for Event::Manager class * Updated gitignore and renamed test files * Forgot to rename include statement. Now tests compile properly * Added initial tests for daq and io objects. * Added tests for IO::Block class * Added connection tests to IO::Connector testing * Refined IO::Block Input testing for more thorough results * Added tests for DAQ::Manager * Finished adding tests for foreachDevice function in daq manager class * Added preliminary tests for Settings::Object and Settings::Manager classes * Added tests for Settings classes. Need additional tests for better coverage. * Added skeleton tests for Workspace classes * Completed Workspace namespace class tests * Added tests for Plugin::Object and Plugin::Manager. Attempted (unsuccessfuly) to create fake plugin to test loading functions. broken * Added fake plugin for dynamic load testing and modified makefile to support plugin compilation before installation * Added more tests for plugin testing. Failures still present * Updated gitignore to skip coverage files. Updated Doxyfile for proper documentation * Minor updates to documentation generation. * Finished testing what was testable in plugins namespace. * removed runningstat links and reused precompiled objecst. Modified Makefile to reflect changes. Fixed RunningStat class to give correct std and variance values * Added tests for performance_measurement plugin * Added connector plugin tests. * Improved gui tests to allow testing of plugin loading * Combined individual core plugin tests into a single translation unit and header. Fixed minor issues with workspace testing. * created base tests for data_recorder, model_loader, system_control, and userprefs core plugins * Changed rt system to correctly identify if running thread is realtime. Updated tests to link adequate symbols on linking stage. Changed ERROR_MSG to unique translation unit. * Updated makefile to remove library warnings during debug compilation. Minor changes to DAQ tests. * Removed many warnings from dsp library. Unused variables and such. * Added simple script to download all available plugins * Cleaned up dsp library from unused variables and warnings. * Removed warnings for gen, math, and plot libraries. Updated Makefiles to remove cleanfiles * Removed default constructor warnings in core main window. Updated perforamnce measurement plugin * Removed warnigns and updated Makefile for system control plugin * Removed warnigns and updated Makefile for user preferences plugin * Removed warnigns and updated Makefile for Analogy Device plugin * Removed warnigns and updated Makefile for connector plugin * Updated makefile for core classes. Removed many warnigns for src dir * Updated Makefile and removed warnigns for Model Loader plugin * Updated Makefile and removed warnings for module installer plugin * Updated makefile and removed warnings for data recorder plugin. * Updated gitignore file * Updated Makefile and removed warnings for oscilloscope plugin * Updated Makefile and removed warnigns for rtxi tests * Removed m4 folder as this is automatically generated by autotools during installation * Removed qwt zip file from source control as this is downloaded as library during installation * Refined coverage report generation and fixed failing test error for workspace_tests.cpp * Improved plugin testing. Added tests for fifo objects. improved fifo documentation. * Updated plugin download script for better testing experience * Added thread tests to fifo class * updated to only print stacktrace if in debug mode * Change my mind. Backtrace should not be implicitly included in error messages as it slows down real-time performance * refined fifo tests to include failures and some edge cases * Updated documentation on atomic_fifo class * Added similar tests from fifo to atomic_fifo * Modified thread tests on atomic_fifo class to use synchronization utilities for better tests * Added cpu usage statistics fields to performance measurement plugin * Update performance measurement and os functions to display cpu usage by real-time thread (xenomai version). * Mispelled comment in atomic fifo tests * Adding posix equivalent to cpu usage stats. WIP * Upgraded the performance measurement plugin to accurately display cpu usage for both xenomai and posix versions * Removed cmdline classes as they are not used anywhere in RTXI * Updated RTXI to not use the removed module cmdline. Added more tests to event modules. * Removed unused and undocumented functions from IO module * Removed major memory leaks from testing functions. Improved setup and teardown of testing environment * Added support for testing error messages in daq tests. * Semaphore primitives are unused in RTXI. Condition variables are a better alternative * Removed semaphore translation units from makefiles. fixed const term in system::getTask function * CI github actions should now run tests on both master and dev branches * Workflows outputs logs if there are test errors on push/pull request * Made Github workflows cleaner on test run. Added non-window option to qapplication class for tests on github workflows Co-authored-by: Ivan F. Valerio <[email protected]>
Update RTXI (#135) * Feature/xenomai update (#134) * Updated installation procedure for linux 4.9.90 and xenomai 3.1 * Removed unsupported backwards compatibility with git libraries * Improved kernel installation script for more dynamic file downloads * Changed kernel and ipipe to supported versions * Updated missing dependency * updated build process and added pkgconf dependency in installation scripts * Added CIP kernel support Co-authored-by: Ivan F. Valerio <[email protected]> * Updated teamviewer installation script for helpdesk Co-authored-by: Ivan F. Valerio <[email protected]>
PreviousNext