MIRAenvironment-1.10.0: - Major modernization of the make system: - Updated minimum cmake version to 3.16 - Removed some deprecated and all Windows related parts of the make system - Added option ENABLE_ASAN to build MIRA with address sanitizer (default: off) - Added option USE_CCACHE to build MIRA with ccache as compiler launcher (default: off) - Additional hints to the changes in the make system: - In all mira projects the cmake version should be set in CMakeLists.txt by using a "cmake_minimum_required(VERSION 3.16.0)" - All ${target}_dist targets are now built AFTER the ${target} systems. Therefore some dependencies (e.g. to external projects) of the form "add_dependencies(MyTarget ExternalTarget)" should be replaced by "add_dependencies(MyTarget ExternalTarget_dist)" - The cmake macro MIRA_ADD_PRECOMPILED_HEADER was removed and should be replaced by the cmake built-in macro TARGET_PRECOMPILE_HEADERS MIRABase-1.21.0: - TimeSerializedAsIsoString / DurationSerializedAsIsoString denies deserializing plain numbers to prevent misconfiguration due to confusion with Time/Duration - completed PropertyEditor support (reflection to PropertySerializer) for human-readable time types - updated to compile with boost 1.86 - moved ProcessSpawnManager from framework/src/loader/private to base/include/platform - RasterTransformation: fixed possibly undefined behaviour for area of width or height <= 1 - added IsCheapToCopy trait - marked types as cheap to copy: Circle, Line, Point, Rect/Box, Size, (Signed)Angle/Degree/Radian, RigidTransform(=Pose), Time, Duration, Date/Duration/TimeSerializedAsIsoString, Date/Duration/TimeSerializedAs[Elements], UUID - ThreadMonitor: thread info types refactored, defined a serializable subset (+ query function) - XMLDom processing: - added XMLDom::clone() for explicit copying - added XMLDomAnnotate.h: annotateUri() - removed deprecated XMLDomModifier.h (include XMLDomPreprocessor.h instead) - added tag - added xmlmacros + miraexpand tool - XMLDeserializer: added warning to tags that are ignored during deserialization - extended error message in RPCManager for unknown service - Library registration: - fixed version aliasing in library constructors - added more info to error messages for version mismatches - errors in registerManifest()/registerLibrary() are stored in LibraryRegistry, can be queried later - fromString() accepts any lower/upper case of "true"/"false", throws XIO on any other string - JSONSerializer/Deserializer: improved consistency std::map/std::unordered_map (STRING_MAP_AS_OBJECT) MIRAFramework-1.19.0: - ChannelBuffer::castSlot() changed from public static to protected member method - moved ProcessSpawnManager.h from framework/src/loader/private to base/include/platform - fixed bug: UnitManager::initializeUnits() may re-start stopped units when executed after framework start (e.g. through Framework::load()) - AutoTapeRecorderUnit: added member 'RecordOnStart' - added virtual ChannelBuffer::clone() - ChannelRead: if the Channel type has the IsCheapToCopy trait, the channel's slot is copied instead of locking and referencing it (preventing the possibility of deadlock) - Framework: added service interface 'IThreadMonitor', with method 'getThreadInformation' - fixed possible overload confusion when calling Channel::post() with Stamped type - Authority::checkout() calls Authority::stop() (ensuring the main dispatcher thread is stopped) - documentation: improved documentation of timestamp behaviour when using Channel::write() - updated #includes of deprecated XMLDomModifier.h - added (CLI) option --save-processed-config-annotated to Framework (mira, miracenter etc) - renamed (previously undocumented) tag attribute 'save-processed-config' to 'saveConfig', added attribute 'saveConfigAnnotated', updated documentation - fixed tag to update source info (URI) correctly for manipulated configuration - fixed bug in DipatcherThread spin that the time limit might not apply to immediate handlers - RemoteConnection time synchronization: improved consistency of adapted remote data timestamps - Framework::start() throws an exception if the LibraryRegistry reports lib/manifest load errors GUIFramework-1.15.0: - added widget ServiceSelectorBox (select services for interface) GUIVisualization-1.15.0: - ChannelProperty: fixed interval subscriber potentially missing some initial data GUIWidgets-1.15.0: - PropertyEditor: 'enumeration' combobox shows mapping item names/values in its tooltip MIRACenter-1.13.0: - DefinitionsListView / LibrariesListView use ServiceSelectorBox from GUIFramework 1.15.0, and do data querying in background threads to avoid blocking the GUI - ThreadInfoView uses Framework service IThreadMonitor/getThreadInformation() to enable displaying thread info from any connected frameworks - ChannelView tooltip includes channel's storage duration - LibrariesListView shows library load errors MIRAPackage-1.7.0: - added workaround for failing to read response during indexing of a repo without index file (since MIRABase 1.20.0) - GitLab: Added clientID and clientSecret to repo configuration for supporting GitLab 17.11 CameraParameters-1.3.0: - marked types as cheap to copy: DistortionParameters, Pinhole/PanoramaCameraIntrinsic(Normalized) CommonVisualization-1.6.0: - added PropertyEditor delegates for Time types serialized as human-readable string - Image 2D visualization: added Flip/Flop properties RigidModel-1.12.1: - Updated to compile with boost 1.86 RobotDataTypes-1.5.0: - marked types as cheap to copy: IgnoreInterval, Odometry, RangeScanInfo, Wrench