Releases: robotology/yarp
YARP 3.5.0
YARP is a library and toolkit for communication and device interfaces, used on
everything from humanoids to embedded devices.
YARP 3.5.0 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Important Changes
Dependencies
- YCM 0.13 is now required.
- OpenCV 2 is no longer supported.
- Added optional Zlib dependency.
- Qt 5.4 or later is now requred to build YARP GUIs.
Libraries
sig
Image
- Bottom to top images are no longer flipped when sent through the network. This
means that the image needs to be manually flipped after it is received. - Bottom to top images might cause issues when received by YARP 3.4.5 or
earlier.
Devices
- The
ovrheadset
device driver was moved to
https://github.com/robotology/yarp-device-ovrheadset - The
realsense2
,realsense2withIMU
andrealsense2Tracking
device drivers
were moved to https://github.com/robotology/yarp-device-realsense2 - This release introduces the Network Wrapper Server/Client Architecture
as described in #2441. This architecture enables ROS2 compatibility
which is currently developed in the
yarp-ros2 repository.
Deprecation and Behaviour Changes
- A few default values for the environment variables used by yarp are now
different:- Linux:
YARP_CONFIG_DIRS
defaults to/etc/xdg/yarp
to be compliant with the
XDG Base Directory Specification
- Windows:
YARP_DATA_DIRS
defaults to%%ALLUSERSPROFILE%%\yarp
YARP_CONFIG_DIRS
defaults to%%ALLUSERSPROFILE%%\yarp\config
- Linux:
Libraries
conf
filesystem::path_separator
is deprecated in favour of
environment::path_separator
yarp::conf::environment::getEnvironment
is deprecated in favour of
yarp::conf::environment::get_string
yarp::conf::environment::setEnvironment
is deprecated in favour of
yarp::conf::environment::set_string
yarp::conf::environment::unsetEnvironment
is deprecated in favour of
yarp::conf::environment::unset
- The
YARP_DEPRECATED_API
andYARP_DEPRECATED_API_MSG
defines are now
deprecated in favour ofYARP_DEPRECATED_EXPORT
,YARP_DEPRECATED_IMPORT
,
YARP_DEPRECATED_MSG_EXPORT
, andYARP_DEPRECATED_MSG_IMPORT
.
os
Bottle
BOTTLE_TAG_INT
is deprecated in favour ofBOTTLE_TAG_INT32
BOTTLE_TAG_DOUBLE
is deprecated in favour ofBOTTLE_TAG_FLOAT64
BOTTLE_TAG_VOCAB
is deprecated in favour ofBOTTLE_TAG_VOCAB32
addInt
is deprecated in favour ofaddInt32
addDouble
is deprecated in favour ofaddFloat64
yarp::os::Bottle::addVocab()
is deprecated in favour of
yarp::os::Bottle::addVocab32()
ConnectionReader
expectInt
is deprecated in favour ofexpectInt32
expectDouble
is deprecated in favour ofexpectFloat64
ConnectionWriter
appendInt
is deprecated in favour ofappendInt32
appendDouble
is deprecated in favour ofappendFloat64
LogStream
- The
operator<<
forstd::ostream
andstd::vector
which caused conflicts
with Casadi was removed (#2067).
NetType
toHexString
is deprecated in favour ofyarp::conf::numeric::to_hex_string
toString
is deprecated in favour ofyarp::conf::numeric::to_string
toInt
,toFloat32
andtoFloat64
are deprecated in favour of
yarp::conf::numeric::from_string
ResourceFinder
- Deprecated methods with alternatives in
yarp::conf::dirs
.
The following methods are now deprecated:yarp::os::ResourceFinder::getDataHome()
yarp::os::ResourceFinder::getDataHomeNoCreate()
yarp::os::ResourceFinder::getConfigHome()
yarp::os::ResourceFinder::getConfigHomeNoCreate()
yarp::os::ResourceFinder::getDataDirs()
yarp::os::ResourceFinder::getConfigDirs()
in favour of:yarp::conf::dirs::yarpdatahome()
yarp::conf::dirs::yarpconfighome()
yarp::conf::dirs::yarpdatadirs()
Warnings:- The return value of
yarpdatadirs()
is different
(std::vector<std::string>
instead ofstd::string
). - The
yarpdatahome()
andyarpconfighome()
do not create the directory,
it must be created manually (for example withyarp::os::mkdir_p()
) if
required.
Stamp
- Using
Header
instead ofStamp
is now recommended.
Value
isInt()
is deprecated in favour ofisInt32()
isDouble()
is deprecated in favour ofisFloat64()
asInt()
is deprecated in favour ofasInt32()
asDouble()
is deprecated in favour ofasFloat64()
makeInt()
is deprecated in favour ofmakeInt32()
makeDouble()
is deprecated in favour ofmakeFloat64()
isVocab()
is deprecated in favour ofisVocab32()
asVocab()
is deprecated in favour ofasVocab32()
makeVocab()
is deprecated in favour ofmakeVocab32()
Vocab
yarp::os::createVocab()
is deprecated in favour of
yarp::os::createVocab32()
yarp::os::Vocab::encode()
is deprecated in favour of
yarp::os::Vocab32::encode()
yarp::os::Vocab::decode()
is deprecated in favour of
yarp::os::Vocab32::decode()
WireReader
getIsVocab()
is deprecated in favour ofgetIsVocab32()
readVocab()
is now deprecated in favour ofreadVocab32()
WireWriter
writeVocab()
is now deprecated in favour ofwriteVocab32()
sig
IntrinsicParams
YARP_PLUM_BOB
is deprecated in favour ofYARP_PLUMB_BOB
.
dev
- The
yarp/dev/FrameGrabberControl2.h
header file was properly marked as
deprecated (it should have been deprecated in YARP 3.0) - The
yarp/dev/FrameGrabberInterfaces.h
header file was deprecated.
All interfaces were moved in the corresponding header. - All classes and vocabs moved in
framegrabber_protocol
library were removed.
This is an API break, but nobody should be using these outside of YARP. - The flag
VOCAB_NAV_CLEAR_X
, defined in fileILocalization2D.h
has been
renamed toVOCAB_NAV_CLEARALL_X
to avoid confusion with flag
VOCAB_NAV_DELETE_X
.
VOCAB_NAV_CLEARALL_X
clears all data belonging to the same category (all
maps, all locations, all areas, etc), whileVOCAB_NAV_DELETE_X
, deletes a
single entity (a map with name x, a location with name x etc). - The
IVisualParams.h
file was deprecated in favour ofIRgbVisualParams.h
andIDepthVisualParams
. - All headers for the deprecated interfaces are now properly deprecated.
- The interfaces
IFrameGrabber
andIFrameGrabberRgb
are now deprecated.
IDepthVisualParams
- The
retificationMatrix
parameter was renamedrectificationMatrix
IRgbVisualParams
- The
retificationMatrix
parameter was renamedrectificationMatrix
robotinterface
- The
robotinterface
library is no longer considered experimental, all
files in theexperimental
folder and classes in theexperimental
namespace
are now deprecated and will be removed in the next release.
Port Monitors
- Port monitors were reorganized and renamed without keeping the back
compatibility with the old name.
The new names are:depthimage_compression_zfp
(zfp
)depthimage_to_mono
(depthimage
)depthimage_to_rgb
(depthimage2
)segmentationimage_to_rgb
(segmentationimage
)
Devices
-
The following devices are now deprecated:
test_grabber
in favour offakeFrameGrabber
fakeMotor
in favour offakeMotionControl
test_motor
in favour offakeMotionControl
fakebot
-
The following devices will be replaced by NWS/NWC in the next release, and
print a warning when opened:controlboardwrapper2
(replaced bycontrolboardremapper
+controlBoard_nws_yarp
)RGBDSensorWrapper
(replaced byrgbdSensor_nws_yarp
)Rangefinder2DWrapper
(replaced byrangefinder2D_nws_yarp
)grabberDual
(replaced byframeGrabber_nws_yarp
, and eventuallyframeGrabberCropper
)inertial
(replaced bymultipleanalogsensorsremapper
+multipleanalogsensorsserver
+IMURosPublisher
)localization2DServer
(replaced bylocalization2D_nws_yarp
)map2DServer
(replaced bymap2D_nws_yarp
)transformClient
(replaced byframeTransformClient
)transformServer
(replaced byframeTransformServer
)
New Features
Libraries
conf
- Added the following functions in
<yarp/conf/numeric.h>
:yarp::conf::numeric::from_string
yarp::conf::numeric::to_string
yarp::conf::numeric::to_hex_string
- Added the header
<yarp/conf/string.h>
containing the following functions:yarp::conf::string::split
yarp::conf::string::join
- Added
environment::path_separator
- Added the following functions in
<yarp/conf/environment.h>
:yarp::conf::environment::get_string
yarp::conf::environment::set_string
yarp::conf::environment::get_bool
yarp::conf::environment::set_bool
yarp::conf::environment::get_numeric
yarp::conf::environment::set_numeric
yarp::conf::environment::split_path
yarp::conf::environment::join_path
yarp::conf::environment::get_path
yarp::conf::environment::set_path
yarp::conf::environment::unset
yarp::conf::environment::is_set
- Added the new
dirs.h
file with methods to retrieve the important folders - Added the following methods:
std::string yarp::conf::dirs::home()
std::string yarp::conf::dirs::tempdir()
...
YARP 3.4.6
YARP 3.4.6 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found here.
Bug Fixes
Build System
- The
yarpros
tool is no longer compiled whenYARP_COMPILE_EXECUTABLES
is disabled. (#2598)
Libraries
sig
Image
- Fixed compatibility with images with topIsLow==false sent by YARP 3.5 (#2612).
dev
DeviceResponder
GUIs
yarpview
- Fixed upside down image when topIsLow is false (Qt >= 5.3.2 only) (#2612).
Devices
localization2DClient
- Implemented missing method
getEstimatedOdometry()
.
navigation2DClient
- Implemented missing method
getEstimatedOdometry()
,
localization2DServer
- Implemented RPC.
Contributors
This is a list of people that contributed to this release (generated from the git history using git shortlog -ens --no-merges v3.4.5..v3.4.6
):
15 Daniele E. Domenichelli <[email protected]>
2 Marco Randazzo <[email protected]>
1 Silvio Traversaro <[email protected]>
YARP 3.4.5
YARP 3.4.5 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Bug Fixes
Libraries
sig
Image
- Allocate the right amount of bytes for YUV422 images
- Decode vocabs when printing
Devices
BatteryWrapper
- Data is now published on the yarp port even if some of the methods belonging
toIBattery
interface are not implemented (returning false).
The only mandatory method isgetBatteryStatus()
.
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.4..v3.4.5
):
6 Daniele E. Domenichelli <[email protected]>
1 Marco Randazzo <[email protected]>
YARP 3.4.4
YARP 3.4.4 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Bug Fixes
Build System
- Fixed use of
CMAKE_INSTALL_PYTHON3DIR
CMake variable to specify the
installation path of Python bindings, as in previous versions the variable
was defined but ignored (#2523). - Fixed the build of Python bindings on Windows (#2525, #2527).
Libraries
conf
- Fixed float128_t where long double is 64 bit (#2510).
os
- If in a
yarp::os::NetworkClock
a clock reset is detected, fill the gap
between the waiter and the time published by the network clock port.
A network clock reset is defined as a jump in the past of the time published
by the network clock port.
This fix avoids that all the threads that are waiting a
yarp::os::NetworkClock::delay
call on that network clock remain blocked when
a time reset occurs (#800, #2494). - Fixed error in race condition during the scan of plugins in
YarpPluginSelector
, avoided concurrent access to variables (#2538).
Tools
yarplogger
- Fixed crash when attempting to clear a selected log with its log tab opened
(#2554).
Bindings
Python
- Added
example_callback.py
, which showcases aBufferedPort
with an attached
callback handler for logging incoming bottles (#2555).
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.3..v3.4.4
):
25 Daniele E. Domenichelli <[email protected]>
4 Bartek Łukawski <[email protected]>
4 Silvio Traversaro <[email protected]>
3 Stefano Bernagozzi <[email protected]>
1 Ettore Landini <[email protected]>
1 Giuseppe L'Erario <[email protected]>
1 Nicolò Genesio <[email protected]>
1 Silvio Traversaro <[email protected]>
YARP 3.4.3
YARP 3.4.3 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Libraries
robotinterface
- Fixed handling of
attach
action forIWrapper
devices.
Devices
controlboardwrapper2
getTorque
is no longer called twice.
fakeFrameGrabber
- The
rand
mode was fixed. - The timestamp is now correct.
- The image is no longer initialized when all the pixels are overwritten.
virtualAnalogWrapper
- Fixed favor the use of parentheses with the keyword
networks
in the XML
files. The old style is deprecated but still accepted.
This is a fix in the sense thatvirtualAnalogWrapper
was behaving
differently fromControlBoardWrapper
.
GUI
yarpmotorgui
- Fixed colors on dark mode desktop (#2466).
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.2..v3.4.3
):
30 Daniele E. Domenichelli <[email protected]>
1 Ugo Pattacini <[email protected]>
YARP 3.4.2
YARP 3.4.2 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Build System
- YCM is now searched when compiling bindings externally.
- Fixed dependency on
YARP_math
for several devices (laserFromExternalPort
,
laserFromPointCloud
,laserFromRosTopic
). rpLidar2
device is now disabled when building with Clang.- Fixed
upowerBattery
device in static builds. - Fixed include directories for PortAudio on Windows (#2387).
- Fixed toggling the value of
SKIP_ACE
fromON
toOFF
- Dependencies for the
INTERFACE
libraries (YARP_cv, YARP_pcl)
are now properly set (#2438). - PCL is now required to build the YARP_pcl library.
- OpenCV is now required to build the YARP_cv library.
Libraries
os
LogComponent
- Log components are now printed in colors when
YARP_COLORED_OUTPUT
is
enabled.
NameSpace
- Fix
checkNetwork
timeout variant not working ascheckNetwork
whenNetworkBase::setLocalMode(true)
is called.---
sig
PointCloudTypes
- Fixed logging of RGBA values via
toString()
for typesDataRGBA
,
DataXYZRGBA
andDataXYZNormalRGBA
.
utils
- Fixed ROI bug in
depthToPC()
, values are now correctly clipped.
Devices
controlboardwrapper2
- Fixed access to the timestamp not protected by mutex (#2396).
- Deprecated old format of
networks
keyword in the XML files to favor the use
of parentheses.
ffmpeg
- Corrected a minor error in
FfmpegGrabber.cpp
that caused a segmentation
fault when using a video with audio track as asource
for the device.
realsense2
- Avoid dereferencing nullptr on optional argument.
Tools
yarpmotorgui
- Fixed UI file (slider options). Some text was truncated.
yarpmobilebasegui
- Fixed gui buttons when the value of max linear/angular velocity is < 0
GUIs
yarpviz
- Added a new menu voice
View
->Render options
.
This checkable option labbelledBackground grid
allows to enable/disable the
background grid. - Labels are now fully readable regardless of their length.
yarpbatterygui
- The window can no longer be resized.
- The window background can no longer be moved around.
- The window no longer stays on top automatically. A new
--keep-above
switch
is provided to restore this behavior.
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.1..v3.4.2
):
66 Daniele E. Domenichelli <[email protected]>
5 Bartek Łukawski <[email protected]>
3 Ettore Landini <[email protected]>
3 Silvio Traversaro <[email protected]>
3 Ugo Pattacini <[email protected]>
2 Marco Randazzo <[email protected]>
YARP 3.4.1
YARP 3.4.1 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
- Fixed Ruby bindings with CMake 3.18
Bug Fixes
Build System
- The license check is now disabled for non-git checkouts.
- The check on the bindings folder in
YARPConfig.cmake
was removed. - User defined build flags are no longer overridden in subfolders.
- The
-f(debug|macro|file)-prefix-map
compile options are no longer exported
in theYARPConfig.cmake
file. - Fixed build when the
-fsanitize
compile options is passed by the user.
Libraries
os
Stamp
- Fixed the max count using std::numeric_limits.
sig
PointCloudUtils
- Fixed
yarp::sig::utils::depthRgbToPC
for types without alpha channel
(#1959). - Fixed bug in method
utils::depthToPC()
which was not properly decimating the
pointcloud given in input.
Devices
FakeFrameGrabber
- The ball test is now displayed in the center of the image instead of the
right-bottom corner. The bug was affecting windows only.
multipleanalogsensorsserver
- Fixed missing timestamp and and sequence number in messages streamed by
measures:o
port.
realsense2Tracking
- Fixed missing timestamp for device
realsense2Tracking
- added option
--timestamp yarp
: yarp timestamp will be used - added option
--timestamp realsense
: realsense timestamp will be used - default value is
yarp timestamp
.
ovrheadset
- Fixed a typo in
TextureBuffer.cpp
Tools
yarpdatadumper
- Fixed a regression that broke support for OpenCV 2.x.
yarpmanager
- Fixed issue that disables side menubar buttons when changing tab (#2355).
yarprobotinterface
- Fixed build on i386.
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.0..v3.4.1
):
43 Daniele E. Domenichelli <[email protected]>
7 Nicolò Genesio <[email protected]>
5 Marco Randazzo <[email protected]>
2 Bartek Łukawski <[email protected]>
2 Stefano Dafarra <[email protected]>
1 Silvio Traversaro <[email protected]>
YARP 3.4.0
YARP 3.4.0 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Important Changes
- YCM 0.11 or later is now a hard
dependency and must be installed on the system before installing YARP. - Python 2 is no longer supported.
Deprecation and Behaviour Changes
- The
scripts/WindowsPowerShell
files are now indata/WindowsPowerShell
. - The
scripts/yarp_completion
file is now indata/bash-completion/yarp
.
Build System
yarp_prepare_plugin
INCLUDE
must now be an existing file, either using a path relative to
current directory, or an absolute path. Using a path relative to one of the
include directories is deprecated.
os
- The method
yarp::os::getenv()
is deprecated in favour ofstd::getenv()
yarp::os::ConnectionState
- The
yarp::os::ConnectionState::getLog()
method was removed without
deprecation, due to the changes to the logging system, that made it impossible
to preserve this method.
yarp::os::NetworkBase
- The
yarp::os::NetworkBase::setVerbosity
method is deprecated in favor of Log
Components. - The
yarp::os::NetworkBase::getEnvironment()
method is deprecated in favour
ofyarp::conf::environment::getEnvironment()
- The
yarp::os::NetworkBase::setEnvironment()
method is deprecated in favour
ofyarp::conf::environment::setEnvironment()
- The
yarp::os::NetworkBase::unsetEnvironment()
method is deprecated in favour
ofyarp::conf::environment::unsetEnvironment()
yarp::os::Port
- The
yarp::os::Port::setVerbosity
method is deprecated in favour of Log
Components. - The
yarp::os::Port::getVerbosity
method is deprecated in favour of Log
Components.
yarp::os::ResourceFinder
- The
yarp::os::ResourceFinder::setVerbose()
method is deprecated in favour of
Log Components. - The
yarp::os::ResourceFinder::setQuiet()
method is deprecated in favour of
Log Components.
yarp::os::YarpPluginSettings
- The
yarp::os::YarpPluginSettings::setVerboseMode()
method is deprecated in
favour of Log Components.
yarp::os::Log
- The
yarp::os::Log::setLogCallback()
method is deprecated in favour of
setPrintCallback()
dev
- The following classes were moved from the
yarp::dev
namespace to the
yarp::dev::Nav2D
namespaceyarp::dev::Nav2D::Map2DArea
yarp::dev::Nav2D::Map2DPath
yarp::dev::Nav2D::Map2DLocation
yarp::dev::Nav2D::MapGrid2D
yarp::dev::Nav2D::MapGrid2DInfo
yarp::dev::Nav2D::Map2DPath
is now replacingstd::vector<yarp::dev::Nav2D::Map2DLocation>
in all
APIs.- The following functions have been moved from
yarp::dev::Nav2D::MapGrid2D
intoyarp::dev::Nav2D::MapGrid2DInfo
:yarp::dev::Nav2D::XYWorld yarp::dev::Nav2D::MapGrid2DInfo::cell2World(yarp::dev::Nav2D::XYCell cell) const;
yarp::dev::Nav2D::Map2DLocation yarp::dev::Nav2D::MapGrid2DInfo::toLocation(yarp::dev::Nav2D::XYCell cell) const;
yarp::dev::Nav2D::XYCell yarp::dev::Nav2D::MapGrid2DInfo::toXYCell(yarp::dev::Nav2D::Nav2D::Map2DLocation loc) const;
yarp::dev::Nav2D::XYCell yarp::dev::Nav2D::MapGrid2DInfo::world2Cell(yarp::dev::Nav2D::XYWorld world) const;
yarp::dev::Nav2D::Nav2D::Map2DLocation yarp::dev::Nav2D::MapGrid2DInfo::toLocation(yarp::dev::Nav2D::XYWorld cell) const;
yarp::dev::Nav2D::XYWorld yarp::dev::Nav2D::MapGrid2DInfo::toXYWorld(yarp::dev::Nav2D::Map2DLocation loc) const;
- modified signature of the
yarp::dev::Nav2D::INavigation2D::getAllNavigationWaypoints
method. - The format of .map file loaded by
yarp::dev::Nav2D::MapGrid2D
has been
changed. It can now include the parametersresolution <double>
and
orientation <bottle>
to adjust the map reference frame.
Devices
- The
test_grabber
device was renamedfakeFrameGrabber
.
The old name is kept for compatibility, but it will be deprecated and removed
in a future release. - The
test_motor
was renamedfakeMotor
.
The old name is kept for compatibility, but it will be deprecated and removed
in a future release.
Tools
yarp
- The
regression
subcommand was removed.
New Features
Build System
- The
bash-completion
file is now installed automatically (#1101). - It is now possible to build some of the examples in the main build using the
YARP_COMPILE_EXAMPLES
CMake Option - It is now possible to build some of the YARP examples as test using the
YARP_ENABLE_EXAMPLES_AS_TESTS
CMake Option
yarp_add_idl
- It's now possible to pass options to the commands using CMake variables (for
exampleYARP_ADD_IDL_THRIFT_INCLUDE_PREFIX
and
YARP_ADD_IDL_THRIFT_NO_NAMESPACE_PREFIX
.
yarp_prepare_plugin
- Including current directory (either explicitly, or using
CMAKE_INCLUDE_CURRENT_DIR
) is no longer required by the generated files.
Libraries
conf
- Added
yarp::conf::clamp
. Will be replaced bystd::clamp
as soon as c++17
is required in YARP. - Added the
yarp/conf/environment.h
header. - Added the following functions:
yarp::conf::environment::getEnvironment()
yarp::conf::environment::setEnvironment()
yarp::conf::environment::unsetEnvironment()
os
- Add
yarp::os::gethostname()
overload to return astd::string
yarp::os::NetworkBase
- Added
bool yarp::os::NetworkBase::isNetworkInitialized()
method.
yarp::os::NetType
- The following methods were added:
static std::string yarp::os::NetType::toString(yarp::conf::float32_t)
static std::string yarp::os::NetType::toString(yarp::conf::float64_t)
static yarp::conf::float32_t yarp::os::NetType::toFloat32(const std::string&)
static yarp::conf::float64_t yarp::os::NetType::toFloat64(const std::string&)
static yarp::conf::float32_t yarp::os::NetType::toFloat32(std::string&&)
static yarp::conf::float64_t yarp::os::NetType::toFloat64(std::string&&)
static std::string yarp::os::NetType::toHexString(long)
static std::string yarp::os::NetType::toHexString(unsigned int)
yarp::os::Time
- Added
bool yarp::os::Time::isClockInitialized()
method.
yarp::os::Log
- The yarp logging system was heavily refactored, please check out the
[documentation](\ref yarp_logging). - The name of the port used to forward the output no longer contains the full
path, but only the executable name. - Added
yarp::os::LogComponent
to define log components:- A log component can be declared using the
YARP_LOG_COMPONENT()
macro (in
a.cpp
file) and eventually forward declared using
YARP_DECLARE_LOG_COMPONENT()
. - It is possible to set custom printing and forwarding macros for each
component, and it is possible to enable and disable specific levels for each
component. - At the moment it is not yet possible to change the defaults set in the code,
but this will be enabled in the future.
- A log component can be declared using the
- The output forwarded is now a property and contains several useful
information including component and system/network time, file, line,
function. - The logger is now able to detect if it is running in yarprun and
eventually change the output format. - Logging is now protected by a mutex to avoid garbled output.
- The
YARP_DEBUG_LOG_ENABLE
environment variable can be set to debug
the log of the application. - When color is enabled, the loglevel can be represented by a single colored
character by setting theYARP_COMPACT_OUTPUT
environment variable to1
. - The limit of 1024 characters for the c-style
yDebug()
macro family was
removed. A dynamic allocation is now used, but only when the size of the
output exceeds this size. - Trace should no longer generate code when building in release mode.
When building with-DYARP_NO_DEBUG_OUTPUT
debug should not generate any code
as well. See https://godbolt.org/z/hSAC56 - Added the
yCDebug
macro family to pass a component to the logger (This
macro is also available for all log levels, and assert). - Added the following new debug macro families limiting the log output (all
these macros are available for all log levels, except for[FATAL]
, and in
the component version):yDebugOnce()
: Printed only once in the execution of the program.yDebugThreadOnce()
: Printed at most once by every thread during the
execution of the program.yDebugThrottle()
: Printed at most once everyperiod
seconds.yDebugThreadThrottle()
: Printed at most once by every thread everyperiod
seconds.
- Added the
yDebugExternalTime()
macro family to pass a timestamp generated by
an external source (This macros is also available for all log levels, in the
component version, and in the limited version):
yarp::os::ManagedBytes
- Added move semantics.
yarp::os::Portable
- The first argument of
yarp::os::Portable::copyPortable()
is nowconst
.
The new signature is:bool yarp::os::Portable::copyPortable(const PortWriter& writer, PortReader& reader)
yarp::os::Port
- It's now possible to try to fix any issues by entrusting a Superior Entity.
sig
yarp::sig::ImageOf
- Added support to load a PNG file into a
yarp::sig::ImageOf<yarp::sig::PixelRgb>
yarp::sig::VectorOf
- Added
const_iterator yarp::sig::VectorOf::begin() const
and
const_iterator yarp::sig::VectorOf::end() const
inyarp::sig::VectorOf
class. - Added move semantics.
math
- Added `yarp::math::Vec2D<size_t...
YARP 3.3.3
YARP 3.3.3 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Bug Fixes
Build System
- Bison and flex are no longer run when crosscompiling.
Libraries
os
Bottle
- Fixed precision for floating point numbers, to ensure that they are read as
the original floating point written. - Fixed
toString
andfromString
when writing or reading infinity, negative
infinity or nan. - Fixed
fromString
when reading a 64 bit integer.
WireReader
- Fixed reading a
Float32
from aFloat64
(#2227).
This is not a common use case, but it can happen when aFloat32
is written
on a file, and then read again into YARP (as aFloat64
), and then restored
in the original type usingcopyPortable()
.
Timer
- Fixed
Timer
in monothread mode taking 100% of the CPU. - Fixed
Timer
s in separate threads not updating their settings.
dev
- Fixed dependency from
YARP_math
that should bePUBLIC
. A few headers
includeYARP_math
headers.
Devices
batteryClient
- Fixed methods returning int instead of double:
getVoltage()
getCurrent()
getCharge()
getTemperature()
batteryWraper
- Fixed parameters accepted by subdevice not printed with --verbose.
Navigation2DClient
- The method
checkNearToLocation
now correctly checks if two orientations are
similar (below a certain threshold), also considering the critical points
0, 180, 360, -180, -180, etc.
controlboardwrapper2
- Exposed missing
yarp::dev::IMotor::setGearboxRatio
method via RPC.
remote_controlboard
- Implemented missing
yarp::dev::IMotor::setGearboxRatio
method. - Fixed group command
yarp::dev::IInteractionMode::getInteractionModes
.
fakeBattery
- Fixed
PeriodicThread
using 100% CPU.
GUIs
yarpview
- Now the "checked" state of the two checkable elements in the File menu of
yarpview
(i.e. "Save single image..." and "Save a set of images...") turns
to false when the corresponding dialogs are closed.
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.3.2..v3.3.3
):
28 Daniele E. Domenichelli <[email protected]>
2 Andrea Ruzzenenti <[email protected]>
2 Bartek Łukawski <[email protected]>
1 Ettore Landini <[email protected]>
1 Marco Randazzo <[email protected]>
1 Silvio Traversaro <[email protected]>
YARP 3.3.2
YARP 3.3.2 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Tools
yarpdatadumper
- Fixed generation of video when invoked with the command line option
--type video
Devices
usbCamera
- Fixed build with OpenCV 4
ovrheadset
- Fixed race condition causing randomly frame drops.
- Fixed behaviour of the
CTRL
button. BothCTRL
buttons can now be pressed,
onlySHIFT
will decide which eye offsets should be modified. - Fixed
--no-logo
option. - Fixed
--userpose
option.
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.3.1..v3.3.2
):
16 Daniele E. Domenichelli <[email protected]>
1 Ugo Pattacini <[email protected]>