From f978d948c35e5c14542839b5f8c2e715c4b61a1d Mon Sep 17 00:00:00 2001 From: peifeng-unity <56408141+peifeng-unity@users.noreply.github.com> Date: Thu, 15 Jul 2021 17:20:07 -0700 Subject: [PATCH] Merge v0.5.0 (#84) --- CHANGELOG.md | 18 ++++ CMakeLists.txt | 15 +-- msg/RosUnityError.msg | 1 - msg/RosUnitySrvMessage.msg | 4 - msg/RosUnitySysCommand.msg | 2 - package.xml | 2 +- src/ros_tcp_endpoint/client.py | 98 +++++++++++-------- .../default_server_endpoint.py | 0 src/ros_tcp_endpoint/server.py | 34 ++++--- src/ros_tcp_endpoint/tcp_sender.py | 76 +++++++++++--- srv/RosUnityTopicList.srv | 2 - test/test_server.py | 20 +++- test/test_tcp_sender.py | 30 +++--- 13 files changed, 190 insertions(+), 112 deletions(-) delete mode 100644 msg/RosUnityError.msg delete mode 100644 msg/RosUnitySrvMessage.msg delete mode 100644 msg/RosUnitySysCommand.msg mode change 100644 => 100755 src/ros_tcp_endpoint/default_server_endpoint.py delete mode 100644 srv/RosUnityTopicList.srv diff --git a/CHANGELOG.md b/CHANGELOG.md index ee0f99e..d0df37e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,24 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ### Fixed +## [0.5.0] - 2021-07-15 + +### Upgrade Notes + +Upgrade the ROS communication to support ROS2 with Unity + +### Known Issues + +### Added + +### Changed + +### Deprecated + +### Removed + +### Fixed + ## [0.4.0] - 2021-05-27 Note: the logs only reflects the changes from version 0.3.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index 3980c2f..c095990 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,21 +4,8 @@ project(ros_tcp_endpoint) find_package(catkin REQUIRED COMPONENTS rospy std_msgs - message_generation ) catkin_python_setup() -add_message_files(FILES - RosUnityError.msg - RosUnitySrvMessage.msg - RosUnitySysCommand.msg -) - -add_service_files(FILES - RosUnityTopicList.srv -) - -generate_messages(DEPENDENCIES std_msgs) - -catkin_package(CATKIN_DEPENDS message_runtime) +catkin_package(CATKIN_DEPENDS message_runtime ) diff --git a/msg/RosUnityError.msg b/msg/RosUnityError.msg deleted file mode 100644 index f67b817..0000000 --- a/msg/RosUnityError.msg +++ /dev/null @@ -1 +0,0 @@ -string message \ No newline at end of file diff --git a/msg/RosUnitySrvMessage.msg b/msg/RosUnitySrvMessage.msg deleted file mode 100644 index 4dba817..0000000 --- a/msg/RosUnitySrvMessage.msg +++ /dev/null @@ -1,4 +0,0 @@ -int32 srv_id -bool is_request -string topic -uint8[] payload \ No newline at end of file diff --git a/msg/RosUnitySysCommand.msg b/msg/RosUnitySysCommand.msg deleted file mode 100644 index 88868b8..0000000 --- a/msg/RosUnitySysCommand.msg +++ /dev/null @@ -1,2 +0,0 @@ -string command -string params_json \ No newline at end of file diff --git a/package.xml b/package.xml index 5e715c3..0239bac 100644 --- a/package.xml +++ b/package.xml @@ -1,7 +1,7 @@ ros_tcp_endpoint - 0.4.0 + 0.5.0 Acts as the bridge between Unity messages sent via Websocket and ROS messages. Unity Robotics diff --git a/src/ros_tcp_endpoint/client.py b/src/ros_tcp_endpoint/client.py index d34b25f..ac351ce 100644 --- a/src/ros_tcp_endpoint/client.py +++ b/src/ros_tcp_endpoint/client.py @@ -18,9 +18,9 @@ from io import BytesIO import threading +import json from .exceptions import TopicOrServiceNameDoesNotExistError -from ros_tcp_endpoint.msg import RosUnitySrvMessage class ClientThread(threading.Thread): @@ -145,6 +145,47 @@ def serialize_message(destination, message): return serialized_message + @staticmethod + def serialize_command(command, params): + cmd_bytes = command.encode("utf-8") + cmd_length = len(cmd_bytes) + cmd_info = struct.pack("