From 6cae3f8f387d2f5ee424f846513617904e57a0d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Sowa?= Date: Fri, 29 Aug 2025 15:36:46 +0200 Subject: [PATCH 1/3] Handle rosapi param responses --- src/core/Param.js | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/core/Param.js b/src/core/Param.js index 2ba6a143f..056ba9d78 100644 --- a/src/core/Param.js +++ b/src/core/Param.js @@ -45,6 +45,12 @@ export default class Param { paramClient.callService( request, function (result) { + if (result.successful !== undefined && result.successful === false) { + if (failedCallback) { + failedCallback(result.reason); + } + return; + } var value = JSON.parse(result.value); callback(value); }, @@ -78,7 +84,21 @@ export default class Param { value: JSON.stringify(value) }; - paramClient.callService(request, callback, failedCallback); + paramClient.callService( + request, + function (result) { + if (result.successful !== undefined && result.successful === false) { + if (failedCallback) { + failedCallback(result.reason); + } + return; + } + if (callback) { + callback(result); + } + }, + failedCallback + ); } /** * Delete this parameter on the ROS server. @@ -97,6 +117,20 @@ export default class Param { name: this.name }; - paramClient.callService(request, callback, failedCallback); + paramClient.callService( + request, + function (result) { + if (result.successful !== undefined && result.successful === false) { + if (failedCallback) { + failedCallback(result.reason); + } + return; + } + if (callback) { + callback(result); + } + }, + failedCallback + ); } } From 9af1fe1b33b4ebd09dff359b4714908193501740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Sowa?= Date: Tue, 9 Sep 2025 03:40:58 +0200 Subject: [PATCH 2/3] Simplify checking result, call normal callback when failedCallback not provided --- src/core/Param.js | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/src/core/Param.js b/src/core/Param.js index 056ba9d78..21bbf8440 100644 --- a/src/core/Param.js +++ b/src/core/Param.js @@ -40,19 +40,17 @@ export default class Param { serviceType: 'rosapi/GetParam' }); - var request = {name: this.name}; + var request = { name: this.name }; paramClient.callService( request, function (result) { - if (result.successful !== undefined && result.successful === false) { - if (failedCallback) { - failedCallback(result.reason); - } - return; + if (result.successful === false && failedCallback) { + failedCallback(result.reason); + } else { + var value = JSON.parse(result.value); + callback(value); } - var value = JSON.parse(result.value); - callback(value); }, failedCallback ); @@ -87,13 +85,9 @@ export default class Param { paramClient.callService( request, function (result) { - if (result.successful !== undefined && result.successful === false) { - if (failedCallback) { - failedCallback(result.reason); - } - return; - } - if (callback) { + if (result.successful === false && failedCallback) { + failedCallback(result.reason); + } else if (callback) { callback(result); } }, @@ -120,13 +114,9 @@ export default class Param { paramClient.callService( request, function (result) { - if (result.successful !== undefined && result.successful === false) { - if (failedCallback) { - failedCallback(result.reason); - } - return; - } - if (callback) { + if (result.successful === false && failedCallback) { + failedCallback(result.reason); + } else if (callback) { callback(result); } }, From de31a7fafedfc2372a1f22dbd9debb27e4da6136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82a=C5=BCej=20Sowa?= Date: Tue, 9 Sep 2025 03:42:09 +0200 Subject: [PATCH 3/3] Update failedCallback description --- src/core/Param.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/Param.js b/src/core/Param.js index 21bbf8440..ff4e65ae2 100644 --- a/src/core/Param.js +++ b/src/core/Param.js @@ -31,7 +31,7 @@ export default class Param { * Fetch the value of the param. * * @param {getCallback} callback - The callback function. - * @param {getFailedCallback} [failedCallback] - The callback function when the service call failed. + * @param {getFailedCallback} [failedCallback] - The callback function when the service call failed or the parameter retrieval was unsuccessful. */ get(callback, failedCallback) { var paramClient = new Service({ @@ -68,7 +68,7 @@ export default class Param { * * @param {Object} value - The value to set param to. * @param {setParamCallback} [callback] - The callback function. - * @param {setParamFailedCallback} [failedCallback] - The callback function when the service call failed. + * @param {setParamFailedCallback} [failedCallback] - The callback function when the service call failed or the parameter setting was unsuccessful. */ set(value, callback, failedCallback) { var paramClient = new Service({ @@ -98,7 +98,7 @@ export default class Param { * Delete this parameter on the ROS server. * * @param {setParamCallback} callback - The callback function. - * @param {setParamFailedCallback} [failedCallback] - The callback function when the service call failed. + * @param {setParamFailedCallback} [failedCallback] - The callback function when the service call failed or the parameter deletion was unsuccessful. */ delete(callback, failedCallback) { var paramClient = new Service({