mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-02 03:49:12 +08:00
move parse_yaml_msg_id_file() to uorb_rtps_classifier.py
This commit is contained in:
@@ -196,8 +196,7 @@ if agent and os.path.isdir(os.path.join(agent_out_dir, "idl")):
|
|||||||
uorb_templates_dir = os.path.join(msg_folder, args.uorb_templates)
|
uorb_templates_dir = os.path.join(msg_folder, args.uorb_templates)
|
||||||
urtps_templates_dir = os.path.join(msg_folder, args.urtps_templates)
|
urtps_templates_dir = os.path.join(msg_folder, args.urtps_templates)
|
||||||
# parse yaml file into a map of ids
|
# parse yaml file into a map of ids
|
||||||
classifier = Classifier(px_generate_uorb_topic_helper.parse_yaml_msg_id_file(
|
classifier = Classifier(os.path.join(msg_folder, args.yaml_file), msg_folder)
|
||||||
os.path.join(msg_folder, args.yaml_file)), msg_folder)
|
|
||||||
# check if there are no ID's repeated
|
# check if there are no ID's repeated
|
||||||
check_rtps_id_uniqueness(classifier)
|
check_rtps_id_uniqueness(classifier)
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ precompiled and thus message generation will be much faster
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import errno
|
import errno
|
||||||
import yaml
|
|
||||||
|
|
||||||
import genmsg.msgs
|
import genmsg.msgs
|
||||||
import gencpp
|
import gencpp
|
||||||
@@ -365,20 +364,6 @@ def get_absolute_path(arg_parse_dir):
|
|||||||
return dir
|
return dir
|
||||||
|
|
||||||
|
|
||||||
def parse_yaml_msg_id_file(yaml_file):
|
|
||||||
"""
|
|
||||||
Parses a yaml file into a dict
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
with open(yaml_file, 'r') as f:
|
|
||||||
return yaml.load(f)
|
|
||||||
except OSError as e:
|
|
||||||
if e.errno == errno.ENOENT:
|
|
||||||
raise IOError(errno.ENOENT, os.strerror(errno.ENOENT), yaml_file)
|
|
||||||
else:
|
|
||||||
raise
|
|
||||||
|
|
||||||
|
|
||||||
def check_available_ids(used_msg_ids_list):
|
def check_available_ids(used_msg_ids_list):
|
||||||
"""
|
"""
|
||||||
Checks the available RTPS ID's
|
Checks the available RTPS ID's
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import argparse
|
import argparse
|
||||||
import px_generate_uorb_topic_helper
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
class Classifier():
|
class Classifier():
|
||||||
@@ -44,8 +44,8 @@ class Classifier():
|
|||||||
Class to classify RTPS msgs as senders, receivers or to be ignored
|
Class to classify RTPS msgs as senders, receivers or to be ignored
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, msg_id_map, msg_folder):
|
def __init__(self, yaml_file, msg_folder):
|
||||||
self.msg_id_map = msg_id_map
|
self.msg_id_map = self.parse_yaml_msg_id_file(yaml_file)
|
||||||
self.msg_folder = msg_folder
|
self.msg_folder = msg_folder
|
||||||
self.msgs_to_send = {}
|
self.msgs_to_send = {}
|
||||||
self.msgs_to_receive = {}
|
self.msgs_to_receive = {}
|
||||||
@@ -109,17 +109,32 @@ class Classifier():
|
|||||||
self.msgs_to_ignore.update({dict['msg']: dict['id']})
|
self.msgs_to_ignore.update({dict['msg']: dict['id']})
|
||||||
|
|
||||||
def set_msg_files_send(self):
|
def set_msg_files_send(self):
|
||||||
self.msgs_files_send = [px_generate_uorb_topic_helper.get_absolute_path(os.path.join(self.msg_folder, msg + ".msg"))
|
self.msgs_files_send = [os.path.dirname(os.path.dirname(os.path.join(self.msg_folder, msg + ".msg")))
|
||||||
for msg in self.msgs_to_send.keys()]
|
for msg in self.msgs_to_send.keys()]
|
||||||
|
|
||||||
def set_msg_files_receive(self):
|
def set_msg_files_receive(self):
|
||||||
self.msgs_files_receive = [px_generate_uorb_topic_helper.get_absolute_path(os.path.join(self.msg_folder, msg + ".msg"))
|
self.msgs_files_receive = [os.path.dirname(os.path.dirname(os.path.join(self.msg_folder, msg + ".msg")))
|
||||||
for msg in self.msgs_to_receive.keys()]
|
for msg in self.msgs_to_receive.keys()]
|
||||||
|
|
||||||
def set_msg_files_ignore(self):
|
def set_msg_files_ignore(self):
|
||||||
self.msgs_files_ignore = [px_generate_uorb_topic_helper.get_absolute_path(os.path.join(self.msg_folder, msg + ".msg"))
|
self.msgs_files_ignore = [os.path.dirname(os.path.dirname(os.path.join(self.msg_folder, msg + ".msg")))
|
||||||
for msg in self.msgs_to_ignore.keys()]
|
for msg in self.msgs_to_ignore.keys()]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def parse_yaml_msg_id_file(yaml_file):
|
||||||
|
"""
|
||||||
|
Parses a yaml file into a dict
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
with open(yaml_file, 'r') as f:
|
||||||
|
return yaml.load(f)
|
||||||
|
except OSError as e:
|
||||||
|
if e.errno == errno.ENOENT:
|
||||||
|
raise IOError(errno.ENOENT, os.strerror(
|
||||||
|
errno.ENOENT), yaml_file)
|
||||||
|
else:
|
||||||
|
raise
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
@@ -142,8 +157,7 @@ if __name__ == "__main__":
|
|||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
msg_folder = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
msg_folder = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||||
classifier = Classifier(px_generate_uorb_topic_helper.parse_yaml_msg_id_file(
|
classifier = Classifier(os.path.join(msg_folder, args.yaml_file), msg_folder)
|
||||||
os.path.join(msg_folder, args.yaml_file)), msg_folder)
|
|
||||||
|
|
||||||
if args.send:
|
if args.send:
|
||||||
if args.path:
|
if args.path:
|
||||||
|
|||||||
Reference in New Issue
Block a user