From fb43013a5969bc14a506db3a1dbcc487ecc501c0 Mon Sep 17 00:00:00 2001 From: SejalBehere <123218506+SejalBehere@users.noreply.github.com> Date: Mon, 10 Jul 2023 16:06:38 -0400 Subject: [PATCH 1/7] Insert Ros_ConfigFile_PrintActiveConfiguration() to obtain complete dump of g_nodeConfigSettings --- src/ConfigFile.c | 78 +++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/src/ConfigFile.c b/src/ConfigFile.c index 294bd340..e7f450ba 100644 --- a/src/ConfigFile.c +++ b/src/ConfigFile.c @@ -678,6 +678,45 @@ void Ros_ConfigFile_ValidateNonCriticalSettings() } } +void Ros_ConfigFile_PrintActiveConfiguration() +{ + Ros_Debug_BroadcastMsg("Config: ros_domain_id = %d", g_nodeConfigSettings.ros_domain_id); + Ros_Debug_BroadcastMsg("Config: node_name = %s", g_nodeConfigSettings.node_name); + Ros_Debug_BroadcastMsg("Config: node_namespace = %s", g_nodeConfigSettings.node_namespace); + Ros_Debug_BroadcastMsg("Config: remap_rules = %s", g_nodeConfigSettings.remap_rules); + Ros_Debug_BroadcastMsg("Config: agent_ip_address = %s", g_nodeConfigSettings.agent_ip_address); + Ros_Debug_BroadcastMsg("Config: agent_port_number = %s", g_nodeConfigSettings.agent_port_number); + Ros_Debug_BroadcastMsg("Config: sync_timeclock_with_agent = %d", g_nodeConfigSettings.sync_timeclock_with_agent); + Ros_Debug_BroadcastMsg("Config: namespace_tf = %d", g_nodeConfigSettings.namespace_tf); + Ros_Debug_BroadcastMsg("Config: publish_tf = %d", g_nodeConfigSettings.publish_tf); + Ros_Debug_BroadcastMsg("List of configured joint names:"); + for (int i = 0; i < MAX_CONTROLLABLE_GROUPS; i += 1) + { + Ros_Debug_BroadcastMsg("---"); + for (int j = 0; j < MP_GRP_AXES_NUM; j += 1) + { + if (strlen(g_nodeConfigSettings.joint_names[(i * MP_GRP_AXES_NUM) + j]) > 0) + Ros_Debug_BroadcastMsg(g_nodeConfigSettings.joint_names[(i * MP_GRP_AXES_NUM) + j]); + else + Ros_Debug_BroadcastMsg("x"); + } + } + Ros_Debug_BroadcastMsg("---"); + Ros_Debug_BroadcastMsg("Config: log_to_stdout = %d", g_nodeConfigSettings.log_to_stdout); + Ros_Debug_BroadcastMsg("Config: executor_sleep_period = %d", g_nodeConfigSettings.executor_sleep_period); + Ros_Debug_BroadcastMsg("Config: action_feedback_publisher_period = %d", g_nodeConfigSettings.action_feedback_publisher_period); + Ros_Debug_BroadcastMsg("Config: controller_status_monitor_period = %d", g_nodeConfigSettings.controller_status_monitor_period); + Ros_Debug_BroadcastMsg("Config: robot_status = %d", g_nodeConfigSettings.qos_robot_status); + Ros_Debug_BroadcastMsg("Config: joint_states = %d", g_nodeConfigSettings.qos_joint_states); + Ros_Debug_BroadcastMsg("Config: tf = %d", g_nodeConfigSettings.qos_tf); + Ros_Debug_BroadcastMsg("Config: tf_frame_prefix = %s", g_nodeConfigSettings.tf_frame_prefix); + Ros_Debug_BroadcastMsg("Config: stop_motion_on_disconnect = %d", g_nodeConfigSettings.stop_motion_on_disconnect); + Ros_Debug_BroadcastMsg("Config: inform_job_name = %s", g_nodeConfigSettings.inform_job_name); + Ros_Debug_BroadcastMsg("Config: allow_custom_inform_job = %d", g_nodeConfigSettings.allow_custom_inform_job); + Ros_Debug_BroadcastMsg("Config: userlan_monitor_enabled = %d", g_nodeConfigSettings.userlan_monitor_enabled); + Ros_Debug_BroadcastMsg("Config: userlan_monitor_port = %d", g_nodeConfigSettings.userlan_monitor_port); +} + void Ros_ConfigFile_Parse() { BOOL bAlarmOnce = TRUE; @@ -753,46 +792,11 @@ void Ros_ConfigFile_Parse() continue; } - } while (!bOkToInit); + } while (!bOkToInit); Ros_ConfigFile_ValidateCriticalSettings(); Ros_ConfigFile_ValidateNonCriticalSettings(); - - Ros_Debug_BroadcastMsg("Config: ros_domain_id = %d", g_nodeConfigSettings.ros_domain_id); - Ros_Debug_BroadcastMsg("Config: node_name = %s", g_nodeConfigSettings.node_name); - Ros_Debug_BroadcastMsg("Config: node_namespace = %s", g_nodeConfigSettings.node_namespace); - Ros_Debug_BroadcastMsg("Config: remap_rules = %s", g_nodeConfigSettings.remap_rules); - Ros_Debug_BroadcastMsg("Config: agent_ip_address = %s", g_nodeConfigSettings.agent_ip_address); - Ros_Debug_BroadcastMsg("Config: agent_port_number = %s", g_nodeConfigSettings.agent_port_number); - Ros_Debug_BroadcastMsg("Config: sync_timeclock_with_agent = %d", g_nodeConfigSettings.sync_timeclock_with_agent); - Ros_Debug_BroadcastMsg("Config: namespace_tf = %d", g_nodeConfigSettings.namespace_tf); - Ros_Debug_BroadcastMsg("Config: publish_tf = %d", g_nodeConfigSettings.publish_tf); - Ros_Debug_BroadcastMsg("List of configured joint names:"); - for (int i = 0; i < MAX_CONTROLLABLE_GROUPS; i += 1) - { - Ros_Debug_BroadcastMsg("---"); - for (int j = 0; j < MP_GRP_AXES_NUM; j += 1) - { - if (strlen(g_nodeConfigSettings.joint_names[(i * MP_GRP_AXES_NUM) + j]) > 0) - Ros_Debug_BroadcastMsg(g_nodeConfigSettings.joint_names[(i * MP_GRP_AXES_NUM) + j]); - else - Ros_Debug_BroadcastMsg("x"); - } - } - Ros_Debug_BroadcastMsg("---"); - Ros_Debug_BroadcastMsg("Config: log_to_stdout = %d", g_nodeConfigSettings.log_to_stdout); - Ros_Debug_BroadcastMsg("Config: executor_sleep_period = %d", g_nodeConfigSettings.executor_sleep_period); - Ros_Debug_BroadcastMsg("Config: action_feedback_publisher_period = %d", g_nodeConfigSettings.action_feedback_publisher_period); - Ros_Debug_BroadcastMsg("Config: controller_status_monitor_period = %d", g_nodeConfigSettings.controller_status_monitor_period); - Ros_Debug_BroadcastMsg("Config: robot_status = %d", g_nodeConfigSettings.qos_robot_status); - Ros_Debug_BroadcastMsg("Config: joint_states = %d", g_nodeConfigSettings.qos_joint_states); - Ros_Debug_BroadcastMsg("Config: tf = %d", g_nodeConfigSettings.qos_tf); - Ros_Debug_BroadcastMsg("Config: tf_frame_prefix = %s", g_nodeConfigSettings.tf_frame_prefix); - Ros_Debug_BroadcastMsg("Config: stop_motion_on_disconnect = %d", g_nodeConfigSettings.stop_motion_on_disconnect); - Ros_Debug_BroadcastMsg("Config: inform_job_name = %s", g_nodeConfigSettings.inform_job_name); - Ros_Debug_BroadcastMsg("Config: allow_custom_inform_job = %d", g_nodeConfigSettings.allow_custom_inform_job); - Ros_Debug_BroadcastMsg("Config: userlan_monitor_enabled = %d", g_nodeConfigSettings.userlan_monitor_enabled); - Ros_Debug_BroadcastMsg("Config: userlan_monitor_port = %d", g_nodeConfigSettings.userlan_monitor_port); + Ros_ConfigFile_PrintActiveConfiguration(); } rmw_qos_profile_t const* const Ros_ConfigFile_To_Rmw_Qos_Profile(Ros_QoS_Profile_Setting val) From 9a49f6f52528c2aca8b6904223286eedc169a5e5 Mon Sep 17 00:00:00 2001 From: SejalBehere <123218506+SejalBehere@users.noreply.github.com> Date: Mon, 17 Jul 2023 11:58:12 -0400 Subject: [PATCH 2/7] Prefixing keys with enclosing namespaces --- src/ConfigFile.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/ConfigFile.c b/src/ConfigFile.c index e7f450ba..111ad63a 100644 --- a/src/ConfigFile.c +++ b/src/ConfigFile.c @@ -681,11 +681,11 @@ void Ros_ConfigFile_ValidateNonCriticalSettings() void Ros_ConfigFile_PrintActiveConfiguration() { Ros_Debug_BroadcastMsg("Config: ros_domain_id = %d", g_nodeConfigSettings.ros_domain_id); - Ros_Debug_BroadcastMsg("Config: node_name = %s", g_nodeConfigSettings.node_name); - Ros_Debug_BroadcastMsg("Config: node_namespace = %s", g_nodeConfigSettings.node_namespace); - Ros_Debug_BroadcastMsg("Config: remap_rules = %s", g_nodeConfigSettings.remap_rules); - Ros_Debug_BroadcastMsg("Config: agent_ip_address = %s", g_nodeConfigSettings.agent_ip_address); - Ros_Debug_BroadcastMsg("Config: agent_port_number = %s", g_nodeConfigSettings.agent_port_number); + Ros_Debug_BroadcastMsg("Config: node_name = '%s'", g_nodeConfigSettings.node_name); + Ros_Debug_BroadcastMsg("Config: node_namespace = '%s'", g_nodeConfigSettings.node_namespace); + Ros_Debug_BroadcastMsg("Config: remap_rules = '%s'", g_nodeConfigSettings.remap_rules); + Ros_Debug_BroadcastMsg("Config: agent_ip_address = '%s'", g_nodeConfigSettings.agent_ip_address); + Ros_Debug_BroadcastMsg("Config: agent_port_number = '%s'", g_nodeConfigSettings.agent_port_number); Ros_Debug_BroadcastMsg("Config: sync_timeclock_with_agent = %d", g_nodeConfigSettings.sync_timeclock_with_agent); Ros_Debug_BroadcastMsg("Config: namespace_tf = %d", g_nodeConfigSettings.namespace_tf); Ros_Debug_BroadcastMsg("Config: publish_tf = %d", g_nodeConfigSettings.publish_tf); @@ -702,16 +702,16 @@ void Ros_ConfigFile_PrintActiveConfiguration() } } Ros_Debug_BroadcastMsg("---"); - Ros_Debug_BroadcastMsg("Config: log_to_stdout = %d", g_nodeConfigSettings.log_to_stdout); - Ros_Debug_BroadcastMsg("Config: executor_sleep_period = %d", g_nodeConfigSettings.executor_sleep_period); - Ros_Debug_BroadcastMsg("Config: action_feedback_publisher_period = %d", g_nodeConfigSettings.action_feedback_publisher_period); - Ros_Debug_BroadcastMsg("Config: controller_status_monitor_period = %d", g_nodeConfigSettings.controller_status_monitor_period); - Ros_Debug_BroadcastMsg("Config: robot_status = %d", g_nodeConfigSettings.qos_robot_status); - Ros_Debug_BroadcastMsg("Config: joint_states = %d", g_nodeConfigSettings.qos_joint_states); - Ros_Debug_BroadcastMsg("Config: tf = %d", g_nodeConfigSettings.qos_tf); - Ros_Debug_BroadcastMsg("Config: tf_frame_prefix = %s", g_nodeConfigSettings.tf_frame_prefix); + Ros_Debug_BroadcastMsg("Config: logging.log_to_stdout = %d", g_nodeConfigSettings.log_to_stdout); + Ros_Debug_BroadcastMsg("Config: update_periods.executor_sleep_period = %d", g_nodeConfigSettings.executor_sleep_period); + Ros_Debug_BroadcastMsg("Config: update_periods.action_feedback_publisher_period = %d", g_nodeConfigSettings.action_feedback_publisher_period); + Ros_Debug_BroadcastMsg("Config: update_periods.controller_status_monitor_period = %d", g_nodeConfigSettings.controller_status_monitor_period); + Ros_Debug_BroadcastMsg("Config: publisher_qos.robot_status = %d", g_nodeConfigSettings.qos_robot_status); + Ros_Debug_BroadcastMsg("Config: publisher_qos.joint_states = %d", g_nodeConfigSettings.qos_joint_states); + Ros_Debug_BroadcastMsg("Config: publisher_qos.tf = %d", g_nodeConfigSettings.qos_tf); + Ros_Debug_BroadcastMsg("Config: tf_frame_prefix = '%s'", g_nodeConfigSettings.tf_frame_prefix); Ros_Debug_BroadcastMsg("Config: stop_motion_on_disconnect = %d", g_nodeConfigSettings.stop_motion_on_disconnect); - Ros_Debug_BroadcastMsg("Config: inform_job_name = %s", g_nodeConfigSettings.inform_job_name); + Ros_Debug_BroadcastMsg("Config: inform_job_name = '%s'", g_nodeConfigSettings.inform_job_name); Ros_Debug_BroadcastMsg("Config: allow_custom_inform_job = %d", g_nodeConfigSettings.allow_custom_inform_job); Ros_Debug_BroadcastMsg("Config: userlan_monitor_enabled = %d", g_nodeConfigSettings.userlan_monitor_enabled); Ros_Debug_BroadcastMsg("Config: userlan_monitor_port = %d", g_nodeConfigSettings.userlan_monitor_port); From 2cc92a96cdde8c5ce1cb4e208fb2e398a5aeb9d1 Mon Sep 17 00:00:00 2001 From: SejalBehere <123218506+SejalBehere@users.noreply.github.com> Date: Tue, 18 Jul 2023 08:49:44 -0400 Subject: [PATCH 3/7] Removal of trailing whitespaces --- src/ConfigFile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ConfigFile.c b/src/ConfigFile.c index 048deb95..2da44b8c 100644 --- a/src/ConfigFile.c +++ b/src/ConfigFile.c @@ -811,8 +811,8 @@ void Ros_ConfigFile_Parse() continue; } - } while (!bOkToInit); - + } while (!bOkToInit); + Ros_ConfigFile_ValidateCriticalSettings(); Ros_ConfigFile_ValidateNonCriticalSettings(); Ros_ConfigFile_PrintActiveConfiguration(); From acc865f72a7611dfcf7a08a5fb6a5829a6df4715 Mon Sep 17 00:00:00 2001 From: SejalBehere <123218506+SejalBehere@users.noreply.github.com> Date: Tue, 18 Jul 2023 10:23:32 -0400 Subject: [PATCH 4/7] Removal of whitespaces --- src/ConfigFile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ConfigFile.c b/src/ConfigFile.c index 2da44b8c..3584b22f 100644 --- a/src/ConfigFile.c +++ b/src/ConfigFile.c @@ -812,7 +812,7 @@ void Ros_ConfigFile_Parse() } } while (!bOkToInit); - + Ros_ConfigFile_ValidateCriticalSettings(); Ros_ConfigFile_ValidateNonCriticalSettings(); Ros_ConfigFile_PrintActiveConfiguration(); From ba26c3e7e62f50bd219fed99e797b84d442280cf Mon Sep 17 00:00:00 2001 From: SejalBehere <123218506+SejalBehere@users.noreply.github.com> Date: Wed, 19 Jul 2023 16:09:23 -0400 Subject: [PATCH 5/7] Mapping enum integers to strings --- src/ConfigFile.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/ConfigFile.c b/src/ConfigFile.c index 3584b22f..b728830d 100644 --- a/src/ConfigFile.c +++ b/src/ConfigFile.c @@ -122,6 +122,27 @@ Configuration_Item Ros_ConfigFile_Items[] = { "userlan_monitor_port", &g_nodeConfigSettings.userlan_monitor_port, Value_UserLanPort }, }; +const char* Ros_QosProfiledescription(Ros_QoS_Profile_Setting profile) +{ + switch (profile) + { + case ROS_QOS_PROFILE_SENSOR_DATA: + return "ROS_QOS_PROFILE_SENSOR_DATA"; + case ROS_QOS_PROFILE_PARAMETERS: + return "ROS_QOS_PROFILE_PARAMETERS"; + case ROS_QOS_PROFILE_DEFAULT: + return "ROS_QOS_PROFILE_DEFAULT"; + case ROS_QOS_PROFILE_SERVICES: + return "ROS_QOS_PROFILE_SERVICES"; + case ROS_QOS_PROFILE_PARAMETER_EVENTS: + return "ROS_QOS_PROFILE_PARAMETER_EVENTS"; + case ROS_QOS_PROFILE_SYSTEM_DEFAULT: + return "ROS_QOS_PROFILE_SYSTEM_DEFAULT"; + default: + return "Unknown"; + } +} + void Ros_ConfigFile_SetAllDefaultValues() { //========= @@ -725,9 +746,9 @@ void Ros_ConfigFile_PrintActiveConfiguration() Ros_Debug_BroadcastMsg("Config: update_periods.executor_sleep_period = %d", g_nodeConfigSettings.executor_sleep_period); Ros_Debug_BroadcastMsg("Config: update_periods.action_feedback_publisher_period = %d", g_nodeConfigSettings.action_feedback_publisher_period); Ros_Debug_BroadcastMsg("Config: update_periods.controller_status_monitor_period = %d", g_nodeConfigSettings.controller_status_monitor_period); - Ros_Debug_BroadcastMsg("Config: publisher_qos.robot_status = %d", g_nodeConfigSettings.qos_robot_status); - Ros_Debug_BroadcastMsg("Config: publisher_qos.joint_states = %d", g_nodeConfigSettings.qos_joint_states); - Ros_Debug_BroadcastMsg("Config: publisher_qos.tf = %d", g_nodeConfigSettings.qos_tf); + Ros_Debug_BroadcastMsg("Config: publisher_qos.robot_status = %s", Ros_QosProfiledescription(g_nodeConfigSettings.qos_robot_status)); + Ros_Debug_BroadcastMsg("Config: publisher_qos.joint_states = %s", Ros_QosProfiledescription(g_nodeConfigSettings.qos_joint_states)); + Ros_Debug_BroadcastMsg("Config: publisher_qos.tf = %s", Ros_QosProfiledescription(g_nodeConfigSettings.qos_tf)); Ros_Debug_BroadcastMsg("Config: tf_frame_prefix = '%s'", g_nodeConfigSettings.tf_frame_prefix); Ros_Debug_BroadcastMsg("Config: stop_motion_on_disconnect = %d", g_nodeConfigSettings.stop_motion_on_disconnect); Ros_Debug_BroadcastMsg("Config: inform_job_name = '%s'", g_nodeConfigSettings.inform_job_name); From bd676f7b205fafc1ed63f7abd56786765ebe349b Mon Sep 17 00:00:00 2001 From: SejalBehere <123218506+SejalBehere@users.noreply.github.com> Date: Thu, 20 Jul 2023 14:00:43 -0400 Subject: [PATCH 6/7] Refactoring Ros_ConfigFile_CheckYamlEvent and Mapping enum values to strings --- src/ConfigFile.c | 71 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 21 deletions(-) diff --git a/src/ConfigFile.c b/src/ConfigFile.c index b728830d..85da41ce 100644 --- a/src/ConfigFile.c +++ b/src/ConfigFile.c @@ -95,6 +95,12 @@ typedef struct Value_Type typeOfValue; } Configuration_Item; +typedef struct +{ + const char* QosString; + Ros_QoS_Profile_Setting QosValue; +} QoSMapping; + Configuration_Item Ros_ConfigFile_Items[] = { { "ros_domain_id", &g_nodeConfigSettings.ros_domain_id, Value_Int }, @@ -122,22 +128,32 @@ Configuration_Item Ros_ConfigFile_Items[] = { "userlan_monitor_port", &g_nodeConfigSettings.userlan_monitor_port, Value_UserLanPort }, }; -const char* Ros_QosProfiledescription(Ros_QoS_Profile_Setting profile) +const QoSMapping QosMappings[] = +{ + { "sensor_data", ROS_QOS_PROFILE_SENSOR_DATA }, + { "parameters", ROS_QOS_PROFILE_PARAMETERS }, + { "default", ROS_QOS_PROFILE_DEFAULT }, + { "services", ROS_QOS_PROFILE_SERVICES}, + { "parameter events", ROS_QOS_PROFILE_PARAMETER_EVENTS}, + { "system Default", ROS_QOS_PROFILE_SYSTEM_DEFAULT}, +}; + +const char* QosString(Ros_QoS_Profile_Setting profile) { - switch (profile) + switch (profile) { case ROS_QOS_PROFILE_SENSOR_DATA: - return "ROS_QOS_PROFILE_SENSOR_DATA"; + return "sensor_data"; case ROS_QOS_PROFILE_PARAMETERS: - return "ROS_QOS_PROFILE_PARAMETERS"; + return "parameters"; case ROS_QOS_PROFILE_DEFAULT: - return "ROS_QOS_PROFILE_DEFAULT"; + return "default"; case ROS_QOS_PROFILE_SERVICES: - return "ROS_QOS_PROFILE_SERVICES"; + return "services"; case ROS_QOS_PROFILE_PARAMETER_EVENTS: - return "ROS_QOS_PROFILE_PARAMETER_EVENTS"; + return "parameter events"; case ROS_QOS_PROFILE_SYSTEM_DEFAULT: - return "ROS_QOS_PROFILE_SYSTEM_DEFAULT"; + return "system Default"; default: return "Unknown"; } @@ -324,22 +340,35 @@ void Ros_ConfigFile_CheckYamlEvent(yaml_event_t* event) break; case Value_Qos: - if (strcmp((char*)event->data.scalar.value, "sensor_data") == 0) - *(Ros_QoS_Profile_Setting*)activeItem->valueToSet = ROS_QOS_PROFILE_SENSOR_DATA; - else if (strcmp((char*)event->data.scalar.value, "default") == 0) - *(Ros_QoS_Profile_Setting*)activeItem->valueToSet = ROS_QOS_PROFILE_DEFAULT; - else + { + const char* QosProfileValue = (char*)event->data.scalar.value; + Ros_QoS_Profile_Setting enumValue = ROS_QOS_PROFILE_SENSOR_DATA; + bool valueFound = false; + + // Finds enum value in the lookup table + for (size_t i = 0; i < sizeof(QosMappings) / sizeof(QosMappings[0]); i++) { - mpSetAlarm(ALARM_CONFIGURATION_FAIL, "Invalid QOS in motoros2_config", SUBCODE_CONFIGURATION_INVALID_QOS_VALUE); + if (strcmp(QosMappings[i].QosString, QosProfileValue) == 0) + { + enumValue = QosMappings[i].QosValue; + valueFound = true; + break; + } + } - *(Ros_QoS_Profile_Setting*)activeItem->valueToSet = ROS_QOS_PROFILE_DEFAULT; + // In case the value is not found in the lookup table or is invalid + if (!valueFound) + { + mpSetAlarm(ALARM_CONFIGURATION_FAIL, "Invalid QOS in motoros2_config", SUBCODE_CONFIGURATION_INVALID_QOS_VALUE); + enumValue = ROS_QOS_PROFILE_DEFAULT; + *(Ros_QoS_Profile_Setting*)activeItem->valueToSet = enumValue; Ros_Debug_BroadcastMsg( - "Falling back to '%s' profile for '%s': unrecognised profile: '%s'", - "default", + "Falling back to 'default' profile for '%s': unrecognised profile: '%s'", (char*)activeItem->yamlKey, - (char*)event->data.scalar.value); + QosProfileValue); } break; + } case Value_UserLanPort: #if defined (DX200) || defined (FS100) @@ -746,9 +775,9 @@ void Ros_ConfigFile_PrintActiveConfiguration() Ros_Debug_BroadcastMsg("Config: update_periods.executor_sleep_period = %d", g_nodeConfigSettings.executor_sleep_period); Ros_Debug_BroadcastMsg("Config: update_periods.action_feedback_publisher_period = %d", g_nodeConfigSettings.action_feedback_publisher_period); Ros_Debug_BroadcastMsg("Config: update_periods.controller_status_monitor_period = %d", g_nodeConfigSettings.controller_status_monitor_period); - Ros_Debug_BroadcastMsg("Config: publisher_qos.robot_status = %s", Ros_QosProfiledescription(g_nodeConfigSettings.qos_robot_status)); - Ros_Debug_BroadcastMsg("Config: publisher_qos.joint_states = %s", Ros_QosProfiledescription(g_nodeConfigSettings.qos_joint_states)); - Ros_Debug_BroadcastMsg("Config: publisher_qos.tf = %s", Ros_QosProfiledescription(g_nodeConfigSettings.qos_tf)); + Ros_Debug_BroadcastMsg("Config: publisher_qos.robot_status = %s", QosString(g_nodeConfigSettings.qos_robot_status)); + Ros_Debug_BroadcastMsg("Config: publisher_qos.joint_states = %s", QosString(g_nodeConfigSettings.qos_joint_states)); + Ros_Debug_BroadcastMsg("Config: publisher_qos.tf = %s", QosString(g_nodeConfigSettings.qos_tf)); Ros_Debug_BroadcastMsg("Config: tf_frame_prefix = '%s'", g_nodeConfigSettings.tf_frame_prefix); Ros_Debug_BroadcastMsg("Config: stop_motion_on_disconnect = %d", g_nodeConfigSettings.stop_motion_on_disconnect); Ros_Debug_BroadcastMsg("Config: inform_job_name = '%s'", g_nodeConfigSettings.inform_job_name); From a2d2b299a03c5dd483db6d7a584035815f1bfa4e Mon Sep 17 00:00:00 2001 From: SejalBehere <123218506+SejalBehere@users.noreply.github.com> Date: Thu, 20 Jul 2023 16:08:56 -0400 Subject: [PATCH 7/7] Prefixing "Ros_" before QosString and QosMappings, Replaced strcmp with strncmp --- src/ConfigFile.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/ConfigFile.c b/src/ConfigFile.c index 85da41ce..cbd0ed8d 100644 --- a/src/ConfigFile.c +++ b/src/ConfigFile.c @@ -128,7 +128,7 @@ Configuration_Item Ros_ConfigFile_Items[] = { "userlan_monitor_port", &g_nodeConfigSettings.userlan_monitor_port, Value_UserLanPort }, }; -const QoSMapping QosMappings[] = +const QoSMapping Ros_QosMappings[] = { { "sensor_data", ROS_QOS_PROFILE_SENSOR_DATA }, { "parameters", ROS_QOS_PROFILE_PARAMETERS }, @@ -138,7 +138,7 @@ const QoSMapping QosMappings[] = { "system Default", ROS_QOS_PROFILE_SYSTEM_DEFAULT}, }; -const char* QosString(Ros_QoS_Profile_Setting profile) +const char* Ros_QosString(Ros_QoS_Profile_Setting profile) { switch (profile) { @@ -154,8 +154,6 @@ const char* QosString(Ros_QoS_Profile_Setting profile) return "parameter events"; case ROS_QOS_PROFILE_SYSTEM_DEFAULT: return "system Default"; - default: - return "Unknown"; } } @@ -346,11 +344,11 @@ void Ros_ConfigFile_CheckYamlEvent(yaml_event_t* event) bool valueFound = false; // Finds enum value in the lookup table - for (size_t i = 0; i < sizeof(QosMappings) / sizeof(QosMappings[0]); i++) + for (size_t i = 0; i < sizeof(Ros_QosMappings) / sizeof(Ros_QosMappings[0]); i++) { - if (strcmp(QosMappings[i].QosString, QosProfileValue) == 0) + if (strncmp(Ros_QosMappings[i].Ros_QosString, QosProfileValue, strnlen(QosProfileValue)) == 0) { - enumValue = QosMappings[i].QosValue; + enumValue = Ros_QosMappings[i].QosValue; valueFound = true; break; } @@ -775,9 +773,9 @@ void Ros_ConfigFile_PrintActiveConfiguration() Ros_Debug_BroadcastMsg("Config: update_periods.executor_sleep_period = %d", g_nodeConfigSettings.executor_sleep_period); Ros_Debug_BroadcastMsg("Config: update_periods.action_feedback_publisher_period = %d", g_nodeConfigSettings.action_feedback_publisher_period); Ros_Debug_BroadcastMsg("Config: update_periods.controller_status_monitor_period = %d", g_nodeConfigSettings.controller_status_monitor_period); - Ros_Debug_BroadcastMsg("Config: publisher_qos.robot_status = %s", QosString(g_nodeConfigSettings.qos_robot_status)); - Ros_Debug_BroadcastMsg("Config: publisher_qos.joint_states = %s", QosString(g_nodeConfigSettings.qos_joint_states)); - Ros_Debug_BroadcastMsg("Config: publisher_qos.tf = %s", QosString(g_nodeConfigSettings.qos_tf)); + Ros_Debug_BroadcastMsg("Config: publisher_qos.robot_status = '%s'", Ros_QosString(g_nodeConfigSettings.qos_robot_status)); + Ros_Debug_BroadcastMsg("Config: publisher_qos.joint_states = '%s'", Ros_QosString(g_nodeConfigSettings.qos_joint_states)); + Ros_Debug_BroadcastMsg("Config: publisher_qos.tf = '%s'", Ros_QosString(g_nodeConfigSettings.qos_tf)); Ros_Debug_BroadcastMsg("Config: tf_frame_prefix = '%s'", g_nodeConfigSettings.tf_frame_prefix); Ros_Debug_BroadcastMsg("Config: stop_motion_on_disconnect = %d", g_nodeConfigSettings.stop_motion_on_disconnect); Ros_Debug_BroadcastMsg("Config: inform_job_name = '%s'", g_nodeConfigSettings.inform_job_name);