/// <summary> /// Disconnect from the remote ros environment. /// </summary> public void Disconnect() { if (!connected) { return; } _recvThread.Abort(); foreach (var sub in _subscribers) { _ws.Send(ROSBridgeMsg.UnSubscribe(sub.Key.topic)); } foreach (var p in _publishers) { _ws.Send(ROSBridgeMsg.UnAdvertiseTopic(p.topic)); } foreach (var srv in _serviceServers) { _ws.Send(ROSBridgeMsg.UnadvertiseService(srv.Key.topic)); } _ws.Close(); _msgQueue.Clear(); _connected = false; }
/// <summary> /// Remove a publisher from this connection /// </summary> /// <param name="pub"></param> public void Unadvertise(ROSBridgePublisher pub) { if (connected) { _ws.Send(ROSBridgeMsg.UnAdvertiseTopic(pub.topic)); } _publishers.Remove(pub); }