Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding logic for rqt_action #4

Merged
merged 2 commits into from
Jan 31, 2019
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 39 additions & 14 deletions src/rqt_msg/messages_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,9 @@
from rqt_py_common import message_helpers
from rqt_py_common.rqt_roscomm_util import RqtRoscommUtil
from rqt_py_common.topic_helpers import is_primitive_type
from rqt_py_common.message_helpers import get_message_class, get_service_class
from rqt_py_common.message_helpers import get_message_text_from_class, get_service_text_from_class
from rqt_py_common.message_helpers import get_action_class, get_message_class, get_service_class
from rqt_py_common.message_helpers import \
get_action_text_from_class, get_message_text_from_class, get_service_text_from_class


class MessagesWidget(QWidget):
Expand Down Expand Up @@ -107,23 +108,28 @@ def _refresh_msgs(self, package=None):
if package is None or len(package) == 0:
return
self._msgs = []
if self._mode == message_helpers.MSG_MODE or self._mode == message_helpers.ACTION_MODE:
if self._mode == message_helpers.MSG_MODE:
msg_list = [
''.join([package, '/', msg])
for msg in message_helpers.get_message_types(package)]
elif self._mode == message_helpers.SRV_MODE:
msg_list = [
''.join([package, '/', srv])
for srv in message_helpers.get_service_types(package)]
elif self._mode == message_helpers.ACTION_MODE:
msg_list = [
''.join([package, '/', action])
for action in message_helpers.get_action_types(package)]

self._logger.debug(
'_refresh_msgs package={} msg_list={}'.format(package, msg_list))
for msg in msg_list:
if (self._mode == message_helpers.MSG_MODE or
self._mode == message_helpers.ACTION_MODE):
if (self._mode == message_helpers.MSG_MODE):
msg_class = get_message_class(msg)
elif self._mode == message_helpers.SRV_MODE:
msg_class = get_service_class(msg)
elif self._mode == message_helpers.ACTION_MODE:
msg_class = get_action_class(msg)

self._logger.debug('_refresh_msgs msg_class={}'.format(msg_class))

Expand All @@ -143,16 +149,11 @@ def _add_message(self):

self._logger.debug('_add_message msg={}'.format(msg))

if (self._mode == message_helpers.MSG_MODE or
self._mode == message_helpers.ACTION_MODE):
if self._mode == message_helpers.MSG_MODE:
msg_class = get_message_class(msg)()
if self._mode == message_helpers.MSG_MODE:
text_tree_root = 'Msg Root'
elif self._mode == message_helpers.ACTION_MODE:
text_tree_root = 'Action Root'
text_tree_root = 'Msg Root'
self._messages_tree.model().add_message(msg_class,
self.tr(text_tree_root), msg, msg)

elif self._mode == message_helpers.SRV_MODE:
msg_class = get_service_class(msg)
self._messages_tree.model().add_message(msg_class.Request,
Expand All @@ -161,6 +162,27 @@ def _add_message(self):
self._messages_tree.model().add_message(msg_class.Response,
self.tr('Service Response'),
msg, msg)
elif self._mode == message_helpers.ACTION_MODE:
action_class = get_action_class(msg)
text_tree_root = 'Action Root'
self._messages_tree.model().add_message(action_class.Goal.Request,
self.tr('Action Goal Request'),
msg + '/Goal/Request', msg + '/Goal/Request')
self._messages_tree.model().add_message(action_class.Goal.Response,
self.tr('Action Goal Response'),
msg + '/Goal/Response', msg + '/Goal/Response')
self._messages_tree.model().add_message(action_class.Result.Request,
self.tr('Action Result Request'),
msg + '/Result/Request',
msg + '/Result/Request')
self._messages_tree.model().add_message(action_class.Result.Response,
self.tr('Action Result Response'),
msg + '/Result/Response',
msg + '/Result/Response')
self._messages_tree.model().add_message(action_class.Feedback,
self.tr('Action Feedback'),
msg + '/Feedback', msg + '/Feedback')

self._messages_tree._recursive_set_editable(
self._messages_tree.model().invisibleRootItem(), False)

Expand Down Expand Up @@ -211,15 +233,18 @@ def _rightclick_menu(self, event):
browsetext = get_message_text_from_class(msg_class)

elif self._mode == message_helpers.SRV_MODE:

if is_primitive_type(selected_type):
browsetext = selected_type
else:
msg_class = get_service_class(selected_type)
browsetext = get_service_text_from_class(msg_class)

elif self._mode == message_helpers.ACTION_MODE:
self._logger.warn('browsetext not available for actions yet')
if is_primitive_type(selected_type):
browsetext = selected_type
else:
msg_class = get_action_class(selected_type)
browsetext = get_action_text_from_class(msg_class)

if browsetext is not None:
self._browsers.append(TextBrowseDialog(browsetext))
Expand Down