diff --git a/com.unity.robotics.ros-tcp-connector/Runtime/TcpConnector/ROSConnection.cs b/com.unity.robotics.ros-tcp-connector/Runtime/TcpConnector/ROSConnection.cs index 4ea31883..2dbd2918 100644 --- a/com.unity.robotics.ros-tcp-connector/Runtime/TcpConnector/ROSConnection.cs +++ b/com.unity.robotics.ros-tcp-connector/Runtime/TcpConnector/ROSConnection.cs @@ -165,6 +165,20 @@ public async void SendServiceMessage(string rosServiceName, Message se client.Close(); } + public async Task SendServiceMessage(string rosServiceName, Message serviceRequest) where RESPONSE : Message, new() + { + var t = new TaskCompletionSource(); + + SendServiceMessage(rosServiceName, serviceRequest, s => t.TrySetResult(s)); + + return await t.Task; + } + + public void GetTopicList(Action callback) + { + SendServiceMessage("__topic_list", new MRosUnityTopicListRequest(), response => callback(response.topics)); + } + public void RegisterSubscriber(string topic, string rosMessageName) { SendSysCommand(SYSCOMMAND_SUBSCRIBE,