Beispiel #1
0
    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();
            }
        }
    }
Beispiel #2
0
    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());
    }