public void SendMessage(T data) { if (connected) { #if !UNITY_EDITOR // Custom parser to interpret the JSON data into Unity datatypes if (SendQueue.Count > 0) { String msg = RosMsg.Encode(SendQueue.Dequeue()); RosMessenger.Instance.Publish(RosTopic, msg); Debug.Log("[" + name + "] Publishing: " + msg); } String processed = RosMsg.Encode(data); RosMessenger.Instance.Publish(RosTopic, processed); Debug.Log("[" + name + "] Publishing: " + processed); #endif } else { SendQueue.Enqueue(data); while (SendQueue.Count > QueueSize) { SendQueue.Dequeue(); } } }
public T GetNewMessage() { while ((buffer != null) && (buffer.Count > 0)) { // Custom parser to interpret the JSON data into Unity datatypes JSONNode data = buffer.Dequeue(); T processed = RosMsg.Decode <T>(data); MsgQueue.Enqueue(processed); Debug.Log("[" + name + "] Received: " + processed.ToJSON()); while (MsgQueue.Count > QueueSize) { MsgQueue.Dequeue(); // Removes the oldest messages to obtain QueueSize latest messages } } return(MsgQueue.Dequeue()); }