RTPS: add check for ID space

This commit is contained in:
TSC21
2019-08-25 22:45:43 +01:00
committed by Nuno Marques
parent 1fa43a707f
commit 693d89583d
2 changed files with 24 additions and 2 deletions
+23 -1
View File
@@ -49,10 +49,12 @@ class Classifier():
self.msg_folder = msg_folder
self.all_msgs_list = self.set_all_msgs()
self.msg_id_map = self.parse_yaml_msg_id_file(yaml_file)
self.alias_space_init_id = 150
# Checkers
self.check_if_listed(yaml_file)
self.check_base_type()
self.check_id_space()
self.msgs_to_send, self.alias_msgs_to_send = self.set_msgs_to_send()
self.msgs_to_receive, self.alias_msgs_to_receive = self.set_msgs_to_receive()
@@ -162,7 +164,27 @@ class Classifier():
if len(base_types_suggestion) > 0:
raise AssertionError(
('\n' + '\n'.join('\t- The multi-topic message base type {} does not exist.{}'.format(k, (' Did you mean \'' + v[0] + '\'?' if v else '')) for k, v in base_types_suggestion.items())))
('\n' + '\n'.join('\t- The multi-topic message base type \'{}\' does not exist.{}'.format(k, (' Did you mean \'' + v[0] + '\'?' if v else '')) for k, v in base_types_suggestion.items())))
def check_id_space(self):
"""
Check if msg ID is in the correct ID space
"""
incorrect_base_ids = {}
incorrect_alias_ids = {}
for dict in self.msg_id_map['rtps']:
if 'alias' not in dict.keys() and dict['id'] >= self.alias_space_init_id:
incorrect_base_ids.update({dict['msg']: dict['id']})
elif 'alias' in dict.keys() and dict['id'] < self.alias_space_init_id:
incorrect_alias_ids.update({dict['msg']: dict['id']})
if len(incorrect_base_ids) > 0:
raise AssertionError(
('\n' + '\n'.join('\t- The message \'{} with ID \'{}\' is in the wrong ID space. Please use any of the available IDs from 0 to 149'.format(k, v) for k, v in incorrect_base_ids.items())))
if len(incorrect_alias_ids) > 0:
raise AssertionError(
('\n' + '\n'.join('\t- The alias message \'{}\' with ID \'{}\' is in the wrong ID space. Please use any of the available IDs from 149 to 255'.format(k, v) for k, v in incorrect_alias_ids.items())))
@staticmethod
def parse_yaml_msg_id_file(yaml_file):
+1 -1
View File
@@ -311,7 +311,7 @@ rtps:
id: 164
alias: obstacle_distance
- msg: vehicle_vision_attitude
id: 145
id: 165
alias: vehicle_attitude
- msg: trajectory_setpoint
id: 166