Skip to content
Tags give the ability to mark specific points in history as being important
  • 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
    251ec595 · increase minor version ·
    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
    45174e36 · increase patch level ·
    New PATCH release 02.00.03
    
    Changes since 02.00.02:
    
    - fix not reporting exception to backend
  • 02.00.02
    36122f9e · Increase patch version ·
    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
    45557868 · increase patch level ·
    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
    a5be5991 · increase patch level ·
    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
    65041603 · increase patch level ·
    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]]