From fee32fadcb99eb51ef1c77b442ec1b4b22c2d8cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20=C5=81ukawski?= Date: Thu, 24 Aug 2023 20:25:38 +0200 Subject: [PATCH] Parse `axeNames` property from mapper as fallback --- programs/launchCanBus/LaunchCanBus.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/programs/launchCanBus/LaunchCanBus.cpp b/programs/launchCanBus/LaunchCanBus.cpp index 2ab431ebf..b85f2e93f 100644 --- a/programs/launchCanBus/LaunchCanBus.cpp +++ b/programs/launchCanBus/LaunchCanBus.cpp @@ -163,7 +163,21 @@ bool LaunchCanBus::configure(yarp::os::ResourceFinder &rf) yarp::os::Property calibratorDeviceOptions; calibratorDeviceOptions.fromString(calibratorDeviceGroup.toString()); calibratorDeviceOptions.put("robotConfig", yarp::os::Value::makeBlob(&robotConfigPtr, sizeof(robotConfigPtr))); - calibratorDeviceOptions.put("joints", mapperDeviceOptions.find("joints")); + + if (mapperDeviceOptions.check("joints")) + { + calibratorDeviceOptions.put("joints", mapperDeviceOptions.find("joints")); + } + else if (mapperDeviceOptions.check("axesNames")) + { + const auto & axesNames = mapperDeviceOptions.find("axesNames"); + calibratorDeviceOptions.put("joints", yarp::os::Value((int)axesNames.asList()->size())); + } + else + { + yCError(LCB) << "Missing joints or axesNames property in mapper device" << mapperDeviceLabel; + return false; + } yarp::dev::PolyDriver * calibratorDevice = new yarp::dev::PolyDriver; yarp::dev::PolyDriverDescriptor descriptor(calibratorDevice, "calibrator"); // key name enforced by ControlBoardRemapper::attachAllXxx()