Skip to content
Tags give the ability to mark specific points in history as being important
  • 03.15.02
    New PATCH release 03.15.02
    
    Changes since 03.15.01:
    
    - chore: Bump patch version (#427)
    - fix(uio-backend): Add missing include (#426)
  • 03.15.01
    6388257a · fix: add missing include ·
    New PATCH release 03.15.01
    
    Changes since 03.15.00:
    
    - fix: add missing include
  • 03.15.00
    New MINOR release 03.15.00
    
    Changes since 03.14.00:
    
    - feat: implement GenericMuxedInterruptDistributor
    - fix(NumericAddressed): throw when reading from write only register
    - fix: Provide explicit template specialisations (#420)
    - fix(rebot): boost exception escaping when host unreachable (#423)
    - fix: LMAP double buffering unnecessary lock across devices
    - chore: restructure/remove subfolders
    - fix(UnifiedBackendTest): catalogue test disabled for dummy accessors
    - fix(DummyInterruptTriggerAccessor): isReadable returns wrong value
    - fix(rebot): Capture by reference for "this"
    - feat(uio): Add unified backend test
    - fix: Remove read impl. in DummyInterruptTriggerAccessor
    - fix(lmap): Use FixedPointConverter to convert input data (#396)
    - feat(uio): Support symlinked device files (#399)
    - fix(xdma): event files opened too early (#402)
    - feat: introduce async API
    - cleanup: Remove left-overs from DMapFilesParser (#401)
    - fix: LNM constants stuck at very old version number
    - feat(UnifiedBackendTest): newVersionAfterOpen test
    - fix: Memcopy for mmio is bad, do manual copy (#371)
  • 03.14.00
    New MINOR release 03.14.00
    
    Changes since 03.13.01:
    
    NOTE: Breaking API change for backends:
    - feat!(exceptions): keep and report original message.
      Backends now need to override setExceptionImpl() instead of
      setException() and make use of setOpenedAndClearException()
      as well as checkActiveException().
    
    Other (non-breaking) changes:
    
    - fix: rethrow old exceptions by math plugin after recovery
    
    - feat: obtain minimum data type from DataDescriptor
    - feat: convenience functions for string accessors
    
    - fix(UnifiedBackendTest): multiple runtime error cases
    - feat(UnifiedBackendTest): improve reporting to help debugging
    - fix(tests): wrong boost test include (includede vs. dyn_link)
    
    - fix: remove outdated comment
  • 03.13.01
    New PATCH release 03.13.01
    
    Changes since 03.13.00:
    
    - hotfix: rethrow old exceptions by math plugin after recovery
  • 03.13.00
    New MINOR release 03.13.00
    
    Changes since 03.12.00:
    fix(xdma): event files opened in the wrong place
    
    - push type accessors can be requested before opening the device
    - no event file is opened if no push type accessors exist
  • 03.12.00
    New MINOR release 03.12.00
    
    Changes since 03.11.00:
    
    - fix: Drop explicit dependency to glib-2.0
    - chore: move testUnifiedTypeChangingDecorator from CSA
    - fix: solve asan test issues
    - fix: header include syntax
    - docs:  MappedStruct use is discouraged
    - style: code formatting
    - feat(MappedImage): add floating point formats
    - refactor: move MappedImage from ControlSystemAdapter here
    - refactor: move TypeChangingDecorator from ControlSystemAdapter here
    - fix: tsan issues (#367)
    - fix: code formatting (#365)
    - fix: access back() of empty string
    - refactor: Use std::make_exception_ptr() (#361)
    - fix: docu for interrupts in map files
  • 03.11.00
    New MINOR release 03.11.00
    
    Changes since 03.10.00:
    
    - feat: LMAP bitRange plugin
    - feat: writeIfDifferent accounts for DataValidity
    - feat: put DataValidity in iostream
    - fix: lmap push pars (#11910)
    - fix: compiler warning
  • 03.10.00
    New MINOR release 03.10.00
    
    Changes since 03.09.00:
    
    - feat(BREAKING): Changed interruptID to vector, and primay interrupt to uint32_t
    - feat: detect broken background process in testSharedDummyBackendUnified
    
    - docs: clarify documentation of math plugin
    
    - fix: lmap math plugin with push parameter shutdown (#11506)
    - fix: map file interrupts syntax
    - fix: remove async write accessor
    - fix: remove interruptController from startInterruptHandlingThread
    - fix: throw logic error already when unsupported map file is loaded
    - fix: compiler warnings about unused variables
    - fix: missing BOOST_TEST_DYN_LINK in some tests
    
    - chore: remove interruptController from SharedDummyBackend internal interface
    - chore: use exprtk by imported target
  • 03.09.00
    New MINOR release 03.09.00
    
    Changes since 03.08.00:
    
    * use lib install dir defined by GNUInstallDirs
        this should fix library search problems on Tumbleweed
    
    * remove testVirtualFunctionEmplateCompilerFlags
    
    * chore: modernize cmake (#329)
        imported targets
        fix find_package / add_dependency arg order
        handle rpath according to discussion
          i.e. rpath of non-system install location is added for implicit dependencies
        remove explicit definitions for downstream projects
        remove enable-new-dtags, it was used for selecting right rpath variant
        (runpath instead of older rpath) but rpath/runpath is now handled via cmake
        proper cmake Module path
          this is required e.g. for resolution of implicit dependencies
        remove fusion compiler flags
          no longer required since c++11
  • 03.08.00
    New MINOR release 03.08.00
    
    Changes since 03.07.01:
    !!! API breaking change in NumericAddress !!!
      - Change BAR to  BAR() in the calling code!
    
    - Fix warnigns from Doxygen for unsupported tags (#330)
      -- Just escape the strings as pre-formatted
    - cmake: small fixes (#326)
      -- fix problems which cause errors with new cmake concept
    - refactor ExceptionDummyBackend (#328)
      -- introduce in the BackendFactory
      -- remove backend registerer (removes stray printout)
      -- put non-template code into .cc file
    - Wip/11220 fix asan issues (#327)
      -- fix buffer overflow in NumericAddressedBackendRegisterAccessor
      -- Fix implicit memory leaks in LNM plugin mechanism.
         The LNM plugin was holding a shared pointer to itself.
         * Clear list of plugins in RegisterInfo instances held by plugins.
         * Refactoring reduces code duplication and cleans up responsibilities:
           ** Plugin base class does interaction with the catalogue.
            ** Plugin implementation only modifies the info.
    - fix g++-12 compiler warnings (#324)
    - Wip/10307 formal code cleaning ii a (#321)
      -- fix all linter warnings in the library
         * UIO and XDMA backend are exempt because I cannot test them
         * Tests not done yet
    - replace sdm with CDD in the tests and examples. (#322)
    - Fix MathPlugin DataInvalidity flag propagation  (#318)
    - Use CMake to check and set -D_FILE_OFFSET_BITS (#319)
      -- Needed on 32 bit systems
    - Use getwuid/geteuid instead of getlogin() (#314)
      -- getlogin() sometimes seems to have issues to properly retrieve the username
    - lmap: Enable vector operations on math plugin (#316)
    - Enable 64bit io for pcie backend (#315)
      -- The bar offsets start at bit 60 upwards, passing down the offsets
         through off_t requires the 64bit variants of file functions to end up in kernel correctly
    - Don't use 'included' boost test library. (#317)
      -- The boost test library is linked. Using the included version leads to
         a violation of the one definition rule and causes double free corruptions.
    - document dynload usage in packaging scripts
    - call BOOST_CHECK only in main thread (#311)
      -- BOOST.Test is not thread-safe, e.g. BOOST_CHECK macro cannot be called
         concurrently from threads. So we buffer the check results in the main
         thread.
    - Add wireshark dissector for rebot (#308)
    - Add forcePollingRead plugin to doxygen (#307)
    - lmap: Allow CDATA for parameters (#306)
      - This simplifies writing formulas containing lots of <, > and & which
        then don't need XML escaping
    - avoid object slicing in ReadAnyGroup (#301)
      -- In ApplicationCore we frequently pass derived objects of the
         TransferElementAbstractor class with additional data members to the
         ReadAnyGroup constructor. The std::initializer_list uses copy sematics,
         hence the objects were sliced (i.e. copied into base class instances
         which lack the additional data members). By using an
         std::initialiser_list of std::reference_wrapper, only references are
         copied and slicing is avoided at that point.
      -- Note that this change mainly avoids the linter warning. The slicing at
         that place was harmless, since the additional data members are not
         accessed by base class functionality.
  • 03.07.01
    New PATCH release 03.07.01
    
    - bugfix for parsing uint64 values
      was failing due to incorrect range check
  • 03.07.00
    b542cfe1 · increase minor version ·
    New MINOR release 03.07.00
    
    Changes since 03.06.00:
    - fix missing includes
      -- was failing on gcc12 Tumbleweed and  gcc 11 (on Ubuntu 22.04)
    - project-template: make config_generator_project future proof
    - BackendFactory: deprecate old register function signature
    - Wip/8141: Add convenience functions for accessor read/write (#283)
  • 03.06.00
    New MINOR release 03.06.00
    
    Changes since 03.05.00:
    - Introduce UIO backend
    - Fix runtime_error escaping readAny before postRead
    - Fix ambiguity for read/write on 32bit platforms (#296)
    - Refactor testAsyncRead slightly (fixes linter warnings etc.)
  • 03.05.00
    bf5e82c2 · increase minor version ·
    New MINOR release 03.05.00
    
    Changes since 03.04.00:
    
    - lmap: allow using hex integers
    
    - fix double buffering lmap plugin
    - fix typos, formatting and linter warnings
    - fix lmap type hint plugin test in combination with math plugin
    - fix force read only math plugin
    - fix potential memory leak in numeric address backend (#9542)
    
    - replace abi::__cxa_demangle by boost::core::demangle
    
    * commit bf5e82c2ae2890dde1c6375a5b341d5db0172b50
    |
    |     increase minor version
    |
    * commit 13d034e40fba88c9a153544eaa648279238a129d
    |
    |     replace abi::__cxa_demangle by boost::core::demangle
    |
    * commit 14d6a08fb1a17314ee209350c6b250fad871c216
    |
    |     fix typos, formatting and linter warnings
    |
    * commit 7960d10aac9a69cdbf74783009f2ca300ba4ff1e
    |
    |     extend lmap type hint plugin test for combination with math plugin
    |
    |     This is failing right now due to a real bug to be found.
    |
    * commit f1d0650977bb373bd0cbcda80f95f3b10a298d9f
    |
    |     Wip/9799 double buffer tests ext (#290)
    |
    |     * test race condition: slow reader
    |
    |     also: deactivate raw access mode
    |
    |     * fix testSlowReader and add error testing to testUnified
    |
    |     * add failing testConcurrentRead
    |
    |     it exposes the race condition currently not handled correctly in DoubleBufferPlugin
    |
    |     * fix of concurrent read
    |
    |     by simple atomic readerCount
    |     the full concept of sharedmem readerCount can later still be added in,
    |     by exchanging the counter object created in DoubleBufferPlugin constr
    |
    |     * fix for removing AccessMode=raw
    |
    |     add setter in DataDescriptor for removing raw type
    |
    |     * improve safety and usability of double buffer plugin
    |
    |     - make sure control and status registers have length 1
    |     - add support for targetdevice="this"
    |     - add optional "daqNumber" parameter
    |
    |     * add use case of Klaus as test case
    |
    |     - access to extracted channels
    |     - also check usage of "this"
    |     - also check usage of 'daqNumber'
    |
    |     * extend tests for 2D extracted channels
    |
    |     currently failing
    |
    |     * fix for extracted channels with double buffering
    |
    |     - also add checks for matching shapes of buffer0, buffer1
    |     - fixes for tests
    |     - testExtractedChannls1 now succeeding
    |     - testExtractedChannels2 still failing
    |
    |     * make _readerCount shared between instances of Double buffer plugin
    |
    |     since there can be several instances of the plugin pointing to the same double buffered region
    |
    |     * refactoring: make DoubleBufferAccessorDecorator and DoubleBufferPlugin
    |
    |     friends and keep a reference instead of copying all the state. They are tightly tied anyway
    |
    |     * take over the offset and numWords of this double buffered register
    |
    |     as defined in logical name mapping, also for second buffer
    |     So then <targetStartIndex> and <numberOfElements> should make sense.
    |
    |     * ugly prelim fix for wordoffset
    |
    |     which is required in decorateAccessor for doubleBuffering
    |
    |     * refactor saved state for decorateAccessor
    |
    |     changes API for plugins
    |
    |     * update documentation
    |
    |     * add transfergroup testing
    |
    |     (still failing)
    |     also, test another xlmap - direct double buffering on lowest level, and for that introduce new DAQ region
    |
    |     * fix case when combining TransferGroup and double buffer plugin
    |
    |     * remove redirectedChannel + doubleBuffer plugin
    |
    |     since it is not helpful and will cause trouble with TransferGroup
    |
    |     * add double buffering test on hardware
    |
    |     see #10522
    |
    |     * some docu for testingDoubleBufferHw
    |
    |     * introduce parameter testUSleep
    |
    |     for testing double buffering handshake.
    |     will probably remove later again, after data corruption problems understood
    |
    |     * fix race condition in handshake
    |
    |     it could have happened that one reader enables double buffering just while another one is starting to read.
    |     this possibility is now excluded by a mutex in ReaderCount.
    |
    |     * review items
    |
    * commit 4d4151f4269c4c1dca2e724b2a2b0c9368c4efa0
    |
    |     Wip/9551 force read only math plugin (#289)
    |
    |     * add failing test
    |
    |     math plugin and forceReadOnly plugin do not harmonize
    |     see issue #9551
    |     Reason for failure:
    |     - proper register catalogue is only constructed in getRegisterCatalogue().
    |     - There plugins are processed in the end
    |     - but already before, register info from target register is copied as a basis for the new lmap regInfo
    |     - the wrong copy (not having included effects of target Register plugins) is never fixed
    |
    |     * bugfix for #9551
    |
    |     process plugins also when fetching target_info first time
    |
    |     * review items
    |
    * commit 8aea0719ea9e43be0a571084c21d5775d3fe335f
    |
    |     Wip/9439 lmap parse hex int (#288)
    |
    |     * first bugfix implementation
    |     - based on std::stol
    |     - includes tests
    |     * also use better parsing in other places
    |     where string values are converted to some value of type T
    |     * extend test to check for duplicate register name
    |     see issue #9054
    |     test already passes with no further modification
    |
    |     Co-authored-by: Martin Killenberg <martin.killenberg@desy.de>
    |
    * commit 7c913c46f7837a0055b550f7ecdd32a034279034
    |
    |     fix include order (was breaking coding style) (#291)
    |
    * commit 26442e637f71bd3f8f8136663b8cb1d4e38c2881
    |
    |     Wip/9542 numeric address backend shared ploop (#286)
    |
    |     * make test sensitive to the issue
    |       turn back on check in testVerifyMemoryDeleted that was disabled
    |
    |     * new solution: remove whole TransferGroup
    |       on unsubscribe, if the _usageCount says that no more accessors of the transfergroup are needed.
    |       Then, the accessors' shared pointer to the backend, from the accessors in the transfergroup,
    |       are also implicityly removed,  hich breaks the sh-ptr loop.
    |     * add concept overview
    |
    |     Co-authored-by: Dietrich Rothe <dietrich.rothe@desy.de>
    |
    * commit 892bdf707411b939323587247f59c1c78d51bc91
    | Merge: 64b0c755 c97fcf2d
    |
    |     Merge pull request #287 from ChimeraTK/update-project-template
    |
    |     set IMAGE_PATH
    |
    * commit c97fcf2d54e0495ad4083650f62d6a57b1247022
    | Merge: 64b0c755 f70a0bf4
    |
    |     Merge remote-tracking branch 'project-template/master' into update-project-template
    |
    * commit f70a0bf44a17d8c42340b35e5a0b1629c02cf9ee
    
    set IMAGE_PATH
    
    in order to allow that documentation includes images
  • 03.04.00
    New MINOR release 03.04.00
    
    Changes since 03.03.00:
    - Fix build on macOS (#282)
        * Avoid redeclaring std::hash and std::less.
    
        These duplicate declarations (in addition to the ones in the standard
        library) caused problems when compiling on macOS.
    
        * Do not build testPcieErrorHandling when PCIe backend is not available.
    
        * Use correct data type when calling NumericAddressedBackend::read.
    
        There are two versions of NumericAddressedBackend::read, and neither of
        them expects values of type size_t for the first two arguments, so
        calling it with such values results in an ambiguity which version should
        be used.
    
        By making sure that we call it with arguments of type uint64_t, we can
        resolve this ambiguity.
    
    - Minor Improvements for new compiler and API versions (#280)
    
        * Include stdexcept for std::out_of_range
    
        with newer standard library or gcc this is not defined otherwise
    
        * Drop hidden const cast
    
        This causes issues with newer libxml++ versions and this fix seems to
        work with libxml++2.6 as well
    
        Fixes #278
    
    - change Utilities class into namespace
  • 03.03.00
    New MINOR release 03.03.00
    
    Changes since 03.02.03:
    Formal code cleaning
    - enable coding style checker as test
    - address linter warnings, manual formatting etc. (#9490, partial only)
    - remove long deprecated compatibility layers (#9490)
    - fix header comment (#9490)
    - correct code formatting (#9490)
    
    Bug fixes:
    - fix wrong type information for unsigned int
        The number of digits reported for signed and unsigned integers was
        partially equal, which is wrong due to the additional sign character.
    
        This introduces a slight behaviour change, which likely will not be
        observed in real applications. ApplicationCore bases its type guessing
        on this information but already uses the correct thresholds.
    
    - add default constructor to VoidRegisterAccessor (#270)
  • 03.02.03
    a4c2aaab · increase patch level ·
    New PATCH release 03.02.03
    
    Changes since 03.02.02:
    
    - fix typo in stringified type name
    - fix userTypeToNumeric throwing exception
  • 03.02.02
    059e8f3c · increase patch level ·
    New PATCH release 03.02.02
    
    Changes since 03.02.01:
    
    - Subdevice: wait for handshake after write (cf. #9959)
    - fix Boolean/string conversions (both directions)
    - fix LNM math plugin push parameters in device recovery (cf. #9961)
  • 03.02.01
    f5b24d7a · fix warnings ·
    New PATCH release 03.02.01
    
    Changes since 03.02.00:
    
    - fix warnings
    - fix potential thread safety issue (interruptDispatcher map in NumericAddressedBackend)
    - fix driver version reported by pcie backend