-
02.05.00
New MINOR release 02.05.00 Changes since 02.04.00: Main feature: - Add support for Boolean and Void types Improvements: - Start writing a conceptual overview - Remove microDAQ left overs - Change version of specification documents from RC to release (#8523) - Added: tests for initialValuePropogation. - Fixed example2 - Add systematic tests for data validity propagation (#8369) - Add test for trigger passed through FanOut (fix #1) - Implement systematic tests for exception handling along specification. Behaviour change: - TestFacility: do not wait until device backends are open This was a left-over from times when no proper initial value propagation and exception handling was implemented in ApplicationCore. Waiting until the backends are open is anyway not sufficient, since the DeviceModule needs to finish the recovery procedure. If any test would still rely on this (anti-)feature, it would be subject to race conditions. The wait is removed because it prevents important tests for the exception handling specification. In particular, tests which intentionally break devices during startup of the application would not be implementable.
-
02.04.00
New MINOR release 02.04.00 Changes since 02.03.00: - make EntityOwner::findTagAndAppendToModule() public (required e.g. for MicroDAQ module) - add DeviceModule::getDeviceAliasOrURI() - ConnectingDeviceModule: allow to obtain underlying DeviceModule - add Application::dumpModuleConnectionGraph() (to visualise the connections between modules) - graphviz code generators: fix not replacing @ characters - minor performance improvements - improve tests
-
02.03.00
New MINOR release 02.03.00 Changes since 02.02.00: - Bug fix: DeviceModule: change initialValueMutex into latch Fixes undefined behaviour and applications hanging during shutdown while initial values are pending
-
02.02.00
New MINOR release 02.02.00 Changes since 02.01.00: Modernised interface extensions: - introduce ConnectingDeviceModule - introduce HierarchyModifyingGroup - add default implementation for Application::defineConnections() connecting the entire application to a ControlSystemModule - allow use of multiple ControlSystemModules seamlessly - rework of StatusMonitor and StatusAggregator (breaks compatibility) - add convenient way to create constant PVs for use in generic modules - Multiplier module: add modern constructor accepting qualified path names of input, factor and output - DataLossCounter constructor now takes qualified path to trigger variable - optimise out unused (i.e. unmapped) control system PVs Bug fixes etc. - fix data validity flags permanently staying at invalid in case of circular ApplicationModule dependencies (see also updated specification spec_dataValidityPropagation) - fix testable mode not waiting for Device to recover - fix some common corner cases in Module::submodule() - hierarchy modifiers: allow nested oneLevelUp etc.; simplify implementation - allow merging variable networks if one has no feeder. - distinguish float32 and float64 for device registers - change Module::getVirtualQualifiedName() to no longer include the application name - add missing TestableModeAccessorDecorator for push-type feeding device variables - necessary updates for changes in DeviceAccess Debug tooling and improved error handling: - allow to debug data loss as detected by the DataLossCounter (cf. enableDebugDataLoss()) - ConfigReader: Print error message before throwing exception to make sure it is visible - add InvalidityTracer module to debug invalid data flags - print warning to stdout if modules wait for initial values - dumpConnections now prints circular dependencies - TestFacility: throw exception if attempting to set default value after start of application
-
02.01.00
New MINOR release 02.01.00 Changes since 02.00.04: - Fix mulitple instances of ControlSystemModule handing out different nodes for same variables - Logger: Fix missing initial value; add automatic registration with the LoggingModule. (#204) - ServerHistory: Add option to use submodules of DeviceModules. - Add support for pkgconfig (from project-template) - Remove MicroDAQ, as it has been moved to a separate package
-
02.00.04
New PATCH release 02.00.04 Changes since 02.00.03: - fix spamming log file with error messages if device initialisation fails
-
02.00.03
New PATCH release 02.00.03 Changes since 02.00.02: - fix not reporting exception to backend
-
02.00.02
New PATCH release 02.00.02 Changes since 02.00.01: - CircularDependencyDetector: Avoid deadlocks - findTag: Improve message for illegal usage of oneUp-modifiers. Nonvirtual path to module is printed. - Logging Module: - Update documentation and update publishing options. - The user can now also choose to publish messages only to the control system.
-
02.00.01
New PATCH release 02.00.01 Changes since 02.00.00: - fix not testable-mode decorating return channels of CS to app variables - solved connection problem in virtual hierarchies
-
02.00.00
New MAJOR release 02.00.00 Changes since 01.11.01: See also Whats_new_in_AC_2_0.dox - Update for DeviceAccess/ControlSystemAdapter version 02.00 API - Proper implementation of Device exception handling (with technical specification) - Proper implementation of initial value propagation (with technical specification) - Add a CircularDependencyDetector to report any ApplicationModules mutually waiting for each other's initial values - Testable mode: print modules waiting for initial values when TestStalled is thrown - Proper implementation of invalid data flag propagation (with technical specification) - Proper implementation of propagation of VersionNumbers (technical specification incomplete) - Fix not calling ApplicationModule::defineConnections() - Constants are now created with correct access mode flags. - Improve HierarchyModifiers: Handle oneLevelUp and oneUpAndHide in getVirtualQualifiedName() - ConfigReader: improved error handling - ConfigReader: improve internal object ownership to prevent memory access violations on destruction - MicroDAQ: - Fix not reading inputs on highest level - Make input accessors push type and use ReadAnyGroup - Enforce starting a new file after the DAQ has been disabled - Allow to override the file name prefix - StatusMonitor/StatusAggregator - StatusMonitor: renamed ERROR to FAULT - Fixed demo for status monitor (was not setting time stamps) - Added move constructors to StatusMonitors - Added specification for StatusAggregator, implementation not yet complete - Fix several issues reported by clang's thread/address sanitizers
-
000_focus2020week17
Tag for the group focus in 2020 calendar week 17 Tag to create a consistent set of DeviceAccess, ControlSystemAdapter and ApplicationCore which compile and all DeviceAccess and ApplicationCore tests are passing (except for race conditions)
-
01.11.01
New PATCH release 01.11.01 Changes since 01.11.00: - Template example server: improved CMake - fix not using a ConsumingFanOut when connecting the two poll-types each with a push-type variable (e.g. control system)
-
01.11.00
New MINOR release 01.11.00 Changes since 01.10.03: - ConfigReader: add HierarchyModifier argument to constructor (optional) - Added specifications for exception handling and initial value propagation - testPropagateDataFlag: adapted tests to changed behaviour (half way towards the new spec) - ExceptionHandlingDecorator -- gets the direction from the variable model. -- fixed initialisation issue with exception counting. -- all accessors come up in exception state. -- read-accessors increase counter in init phase - Fixed wrong usage of feeding/consuming in Applicaton::createDeviceVariable.| *- Device support for micro daq (issue #121) - LoggingModule -- make FindSender more efficient (#115) -- bug fix (uninitialised value, #114 ) - ExceptionDummy now taken from Device Access
-
01.10.03
New PATCH release 01.10.03 Changes since 01.10.02: - fix crash in case of certain illegal networks (test was failing)
-
01.10.02
New PATCH release 01.10.02 Changes since 01.10.01: - fix wrong read-type for initial values when reading from devices through FanOut - add information about initial value propagation to VariableNetworkNode::dump()
-
01.10.01
New PATCH release 01.10.01 Changes since 01.10.00: - writeAll()/readAll() and friends now exclude return channels by default. - TestFacility: fix initial values for bidirectional variables
-
01.10.00
New MINOR release 01.10.00 Changes since 01.09.00: - Improve exception handling, device opening and initial values: - Fix multiple bugs in existing exception handling code - Implement propagation of data fault flags (only partially) - Fix constants directly connected to devices - Implement proper propagation of initial values (#90) - TestFacility now deals with initial values as well -> might require changes to tests of applications - Fix not writing ConfigReader values to devices in case of exceptions (#47) - Fix repeatedly reporting device-not-opened state as data fault - Enforce to set default values correctly when using TestFacility - Prevent to define connections after Application::initialise() has been called - Enforce correct usage of TestFacility - Fix incorrect mapping of registers without module in virtualiseFromCatalogue - PeriodicTrigger: properly set version number when sending manually triggers from tests - Device support for history module - Make it possible to dump connections to file - Fix various race conditions in tests - Fixed TimerDummyDevice in example (was missing isFunctional()) - Some fixes for the cmake build environment - Solved some recursive inclusion of headers - un-protect setCurrentVersionNumber(), as it is used in user code - Made hdf5 optional - Add option to switch off building tests.
-
01.09.00
New MINOR release 01.09.00 Changes since 01.08.00: - examples -- added oven_sim.py script to example2 -- added example2c: device initialisation -- example2 uses connection code without tags -- updated status monitor example - StatusMonitors -- cleaned up constructor (!API change!) -- changed variable content: * input is moved one level up, so it's in the same hierarcy as the monitor * output and limit names changed (!API change!). Now uniform for all monitors -- can be disabled -- fixed RangeMonitor decision logic - HierarchyModifiers -- introduced oneLevelUp and oneUpAndHide -- hierarchies are correctly hidden with "hideThis" even if the hidden name exists in the hierarchy. Fixes #68 - TestableMode -- ApplicationModule guarantees that the main loop thread had the testableModeLock at least once. Solves #66 - LoggingModule -- changed message to be poll type instead of push type -- added CS tag - added template example server - build system -- export public dependencies -- fixed cmake issues on tumbleweed - merge VirtualModules which have the same name. This doesn't really make a difference, but e.g. the output of dump() will be much cleaner. - fixed bidirectional writeback not working at beginning of the main loop. - added deviceBecameFunctional to DeviceModule (first part of #65) - added tool to generate a wiki table from the variable household XML file
-
01.08.00
New MINOR release 01.08.00 Changes since 01.07.00: - Added support for device initialisation handlers (issue #46) - Fixed device error reporting (#53) - Fixed problems with device error recovering - Set/clear data validity flag on device exception (fixes #39) - Examples have their own CMakeLists.txt Removed optional dependency on DoocsAdapter and creation of demos from CMakeLists.txt - Included all examples in doxygen - Use the new DeviceAccess .DUMMY_WRITEABLE variable in tests. Writing to the readonly version now throws.
-
01.07.00
New MINOR release 01.07.00 Changes since 01.06.00: - bugfix: added missing implementations of writeDestructively() - the inherited ones from the DeviceAccess classes are not doing the right thing... - bugfix: do not propagate VersionNumber in case of non-blocking reads (incl. readLatest) - make first example an independent project - VariableGroup: Mark deprecated constructor [[deprecated]]