RMM API 2.0.0
Loading...
Searching...
No Matches
Changelog

All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[4.0.0]

Added

  • Add mutexes to protect register writes (mainly fieldWrite and rawWrite).
  • Add LICENSE.

Changed

  • Order of arguments in FrontEndFactory. Variadic arguments are at the end of it.

Fixed

  • Pass FORMAT_ARGS to RMMLog.cpp, forcing implementation to be compiled.

[3.3.0]

Added

  • MRF EventCode method and default value (0x10 -> Event16) on the config method.
  • Check reading status before write action on userFieldWrite method.

Changed

  • Improve the logs messages.

3.2.0

Added

  • Verification step to check if ringCheck fails before running the FEN configuration.
  • DetectorConfig struct to hold detector configuration provided from the JSON file (useful for testing).

Changed

  • Improved reply request verification and logging.
  • Simplified the teardownRing method.
  • Use -Wall warning flag for check sanity
  • Remove calcAndUpdateTimestamp from ringSetup.

3.1.0 - 2025-07-17

Added

  • FEA type registers and getFeType method to retrieve the front-end firmware type as an ASCII string.
  • Option to change the estimated lock time per FEN type.

3.0.0 - 2025-06-11

Added

  • Support for legacy non-UDP firmware.

2.0.1 - 2025-05-20

Fixed

  • Missing initial SET_TIME to correctly populate the DLY_RX_TIME_SLV register.

2.0.0 - 2025-05-08

Added

  • Verification in timing configuration to avoid re-running if already completed.

Changed

  • Removed the need to pass regMap as an argument in FENBase-derived class constructors.

1.3.0 - 2025-04-14

Added

  • Concurrent/sequential options for bringUp.
    BringUpMode enum values: CONCURRENT, SEQUENTIAL.

1.2.1 - 2025-03-27

Fixed

  • Set Rx engines to IDLE before Tx engines.
    This prevents random junk from being interpreted as a slow control reply or ring data packet.

1.2.0 - 2025-03-06

Added

  • Doxygen documentation.
  • Polling timeout on node lock action.
  • Mechanism to stop config.

Changed

  • Improved bringUp parallelism.
  • Exported read/write methods to the RMMAPI level, with the option to use register address or register name.

Fixed

  • Removed unnecessary dynamic loads on FEA registers.

1.1.0 - 2025-02-05

Added

  • LogTopic enum class to categorize logging topics: GENERAL, REGISTER_ACCESS, CLOCK, OUTPUT_QUEUES, RAILS, RINGS, UDP_CORE.
  • getLogMsg method in RMMAPI class to retrieve log messages for a given LogTopic.
  • TOPIC_RMM_* macros for individual logging topics:
    TOPIC_RMM_REGISTER_ACCESS, TOPIC_RMM_RAILS, TOPIC_RMM_RINGS, TOPIC_RMM_CLOCKS, TOPIC_RMM_OUTPUT_QUEUES, TOPIC_RMM_INFOS, TOPIC_RMM_UDP_CORE.
  • TimingMode argument in the config method. Values: MRF, LCL, EXT.
  • RMMResult struct to store value and status for R/W methods.
  • OutputQueueData and UDPCoreData structs.
  • Variadic arguments for FrontEndFactory.
  • Log mask support in FENBase.
  • Socket timeout handling.
  • Side channels.
  • fieldRead and fieldWrite methods.
  • Protocol reply checking.
  • Support for different versions of register maps.

Changed

  • Renamed setAllLogMasks method in RMMAPI to setLogMasks. Now accepts a topic parameter to apply logging for a specific topic.
  • Moved topology methods from Ring class to Topology class.
  • Improved PacketCount map.

Fixed

  • Source MAC address byte order (upper/lower).
  • Log mutex handling.