use a yaml file description instead of json; minor improvements and cleanup

This commit is contained in:
TSC21
2018-09-21 15:55:17 +02:00
committed by Beat Küng
parent 7d40c4f97e
commit bb835382dd
9 changed files with 239 additions and 374 deletions
+11 -3
View File
@@ -19,6 +19,14 @@ from px_generate_uorb_topic_files import MsgScope # this is in Tools/
topic_names = [single_spec.short_name for single_spec in spec]
send_topics = [s.short_name for idx, s in enumerate(spec) if scope[idx] == MsgScope.SEND]
recv_topics = [s.short_name for idx, s in enumerate(spec) if scope[idx] == MsgScope.RECEIVE]
yaml_file = os.path.abspath('uorb_rtps_message_ids.yaml')
try:
msg_ids = parse_yaml_msg_id_file(yaml_file)
except OSError as e:
if e.errno == errno.ENOENT:
raise IOError(errno.ENOENT, os.strerror(errno.ENOENT), yaml_file)
else:
raise
}@
/****************************************************************************
*
@@ -89,7 +97,7 @@ void RtpsTopics::publish(uint8_t topic_ID, char data_buffer[], size_t len)
switch (topic_ID)
{
@[for topic in send_topics]@
case @(rtps_message_id(os.path.abspath('uorb_rtps_message_ids.json'), topic)): // @(topic)
case @(rtps_message_id(msg_ids, topic)): // @(topic)
{
@(topic)_ st;
eprosima::fastcdr::FastBuffer cdrbuffer(data_buffer, len);
@@ -117,7 +125,7 @@ bool RtpsTopics::hasMsg(uint8_t *topic_ID)
switch (_sub_topics[_next_sub_idx])
{
@[for topic in recv_topics]@
case @(rtps_message_id(os.path.abspath('uorb_rtps_message_ids.json'), topic)): if (_@(topic)_sub.hasMsg()) *topic_ID = @(rtps_message_id(os.path.abspath('uorb_rtps_message_ids.json'), topic)); break;
case @(rtps_message_id(msg_ids, topic)): if (_@(topic)_sub.hasMsg()) *topic_ID = @(rtps_message_id(msg_ids, topic)); break;
@[end for]@
default:
printf("Unexpected topic ID to check hasMsg\n");
@@ -141,7 +149,7 @@ bool RtpsTopics::getMsg(const uint8_t topic_ID, eprosima::fastcdr::Cdr &scdr)
switch (topic_ID)
{
@[for topic in recv_topics]@
case @(rtps_message_id(os.path.abspath('uorb_rtps_message_ids.json'), topic)): // @(topic)
case @(rtps_message_id(msg_ids, topic)): // @(topic)
if (_@(topic)_sub.hasMsg())
{
@(topic)_ msg = _@(topic)_sub.getMsg();