/** * Disconnect from the remote ros environment. */ public void Disconnect() { _applicationIsPlaying = false; _myThread.Join(); //_myThread.Abort (); // Abort() does not guarantee that the thread is stopped if (_ws != null) { foreach (Type p in _subscribers) { try { _ws.Send(ROSBridgeMsg.UnSubscribe(GetMessageTopic(p))); UnityEngine.Debug.Log("Send " + ROSBridgeMsg.UnSubscribe(GetMessageTopic(p))); } catch { UnityEngine.Debug.LogWarning("Sending " + ROSBridgeMsg.UnSubscribe(GetMessageTopic(p)) + " failed."); } } foreach (Type p in _publishers) { try { _ws.Send(ROSBridgeMsg.UnAdvertise(GetMessageTopic(p))); UnityEngine.Debug.Log("Send " + ROSBridgeMsg.UnAdvertise(GetMessageTopic(p))); } catch { UnityEngine.Debug.LogWarning("Sending " + ROSBridgeMsg.UnAdvertise(GetMessageTopic(p)) + " failed."); } } } _ws.Close(); }
/// <summary> /// Disconnect from the remote ros environment. /// </summary> public void Disconnect() { _connected = false; _myThread.Abort(); foreach (string topicName in static_subscribers.Keys) { _ws.Send(ROSBridgeMsg.UnSubscribe(topicName)); Debug.Log("Sending " + ROSBridgeMsg.UnSubscribe(topicName)); } foreach (string topicName in subscribers.Keys) { if (!static_subscribers.ContainsKey(topicName)) { _ws.Send(ROSBridgeMsg.UnSubscribe(topicName)); Debug.Log("Sending " + ROSBridgeMsg.UnSubscribe(topicName)); } } foreach (string topicName in static_publishers.Keys) { _ws.Send(ROSBridgeMsg.UnAdvertise(topicName)); Debug.Log("Sending " + ROSBridgeMsg.UnAdvertise(topicName)); } _ws.Close(); static_subscribers.Clear(); static_publishers.Clear(); subscribers.Clear(); }
/// <summary> /// Disconnects from the ROS Bridge and unsubscribes from all subscribed topics. /// </summary> public void Disconnect() { IsDisconnecting = true; Debug.Log("Disconnecting from " + _host); _myThread.Abort(); if (WebSocket == null) { return; } foreach (ROSBridgeSubscriber subscriber in _subscribers) { WebSocket.Send(ROSBridgeMsg.UnSubscribe(subscriber.GetMessageTopic())); Debug.Log("Sending " + ROSBridgeMsg.UnSubscribe(subscriber.GetMessageTopic())); } foreach (ROSBridgePublisher publisher in _publishers) { WebSocket.Send(ROSBridgeMsg.UnAdvertise(publisher.GetMessageTopic())); Debug.Log("Sending " + ROSBridgeMsg.UnAdvertise(publisher.GetMessageTopic())); } _subscribers.Clear(); _publishers.Clear(); //fix this in a better way RobotInterface.Instance.StartCoroutine(Example()); WebSocket.Close(); IsConnected = false; }
public void RemovePublisher(ROSBridgePublisher publisher) { _publishers.Remove(publisher); if (IsConnected) { WebSocket.Send(ROSBridgeMsg.UnAdvertise(publisher.GetMessageTopic())); } }
/** * Removes a publisher from the connection. Disconnects the publisher if connection is already running. */ public void RemovePublisher(Type publisher) { if (!_publishers.Contains(publisher)) { return; } _publishers.Remove(publisher); if (_running) { _ws.Send(ROSBridgeMsg.UnAdvertise(GetMessageTopic(publisher))); } }
/** * Disconnect from the remote ros environment. */ public void Disconnect() { _myThread.Abort(); foreach (Type p in _subscribers) { _ws.Send(ROSBridgeMsg.UnSubscribe(GetMessageTopic(p))); //Debug.Log ("Sending " + ROSBridgePacket.unSubscribe(getMessageTopic(p))); } foreach (Type p in _publishers) { _ws.Send(ROSBridgeMsg.UnAdvertise(GetMessageTopic(p))); //Debug.Log ("Sending " + ROSBridgePacket.unAdvertise (getMessageTopic(p))); } _ws.Close(); }
/** * Disconnect from the remote ros environment. */ public void Disconnect() { #if UNITY_EDITOR _myThread.Abort(); foreach (Type p in _subscribers) { _ws.Send(ROSBridgeMsg.UnSubscribe(GetMessageTopic(p))); Debug.Log("Sending " + ROSBridgeMsg.UnSubscribe(GetMessageTopic(p))); } foreach (Type p in _publishers) { _ws.Send(ROSBridgeMsg.UnAdvertise(GetMessageTopic(p))); Debug.Log("Sending " + ROSBridgeMsg.UnAdvertise(GetMessageTopic(p))); } _ws.Close(); _connected = false; #endif #if !UNITY_EDITOR Debug.Log("Disconnectig..."); foreach (Type p in _subscribers) { dataWriter.WriteString(ROSBridgeMsg.UnSubscribe(GetMessageTopic(p))); dataWriter.StoreAsync(); Debug.Log("Sending " + ROSBridgeMsg.UnSubscribe(GetMessageTopic(p))); } foreach (Type p in _publishers) { dataWriter.WriteString(ROSBridgeMsg.UnAdvertise(GetMessageTopic(p))); dataWriter.StoreAsync(); Debug.Log("Sending " + ROSBridgeMsg.UnAdvertise(GetMessageTopic(p))); } messageWebSocket.Dispose(); messageWebSocket = null; _connected = false; #endif }