PacketToOscMessages() public static method

Takes a packet (byte[]) and turns it into a list of OscMessages.
public static PacketToOscMessages ( byte packet, int length ) : ArrayList
packet byte The packet to be parsed.
length int The length of the packet.
return ArrayList
Ejemplo n.º 1
0
 /// <summary>
 /// Read Thread.  Loops waiting for packets.  When a packet is received, it is
 /// dispatched to any waiting All Message Handler.  Also, the address is looked up and
 /// any matching handler is called.
 /// </summary>
 private void Read()
 {
     while (ReaderRunning)
     {
         Debug.Log("Read");
         byte[] buffer = new byte[1000];
         int    length = OscPacketIO.ReceivePacket(buffer);
         if (length > 0)
         {
             ArrayList messages = Osc.PacketToOscMessages(buffer, length);
             foreach (OscMessage om in messages)
             {
                 if (AllMessageHandler != null)
                 {
                     AllMessageHandler(om);
                 }
                 OscMessageHandler h = (OscMessageHandler)Hashtable.Synchronized(AddressTable)[om.Address];
                 if (h != null)
                 {
                     h(om);
                 }
             }
         }
         else
         {
             Thread.Sleep(500);
         }
     }
 }
    private void Socket_MessageReceived(Windows.Networking.Sockets.DatagramSocket sender,
                                        Windows.Networking.Sockets.DatagramSocketMessageReceivedEventArgs args)
    {
        Debug.Log("Datagram socket message received");

        //Read the message that was received from the UDP echo client.
        Stream streamIn = args.GetDataStream().AsStreamForRead();

        byte[] msg = ReadToEnd(streamIn);

        ArrayList messages = Osc.PacketToOscMessages(msg, msg.Length);

        foreach (OscMessage om in messages)
        {
            if (AllMessageHandler != null)
            {
                try
                {
                    AllMessageHandler(om);
                }
                catch (Exception e)
                {
                    Debug.Log(e.ToString());
                    return;
                }
            }
        }
    }
Ejemplo n.º 3
0
    // Read Thread.  Loops waiting for packets.  When a packet is received, it is
    // dispatched to any waiting All Message Handler.  Also, the address is looked up and
    // any matching handler is called.
    private void Read()
    {
        try
        {
            while (ReaderRunning)
            {
                byte[] buffer;
                int    length = OscPacketIO.ReceivePacket(out buffer, packetSize);
                string s      = "";
                for (int i = 0; i < length; ++i)
                {
                    s += (char)buffer[i];
                }
                //Debug.Log("received packed of len=" + length + " ::" + s);
                if (length > 0)
                {
                    ArrayList messages = Osc.PacketToOscMessages(buffer, length);
                    if (messages.Count < 1)
                    {
                        Debug.LogWarning("Empty package");
                    }
                    foreach (OscMessage om in messages)
                    {
                        if (AllMessageHandler != null)
                        {
                            AllMessageHandler(om);
                        }
                        else
                        {
                            Debug.LogWarning("No all handler");
                        }
                        OscMessageHandler h = (OscMessageHandler)Hashtable.Synchronized(AddressTable)[om.Address];
                        if (h != null)
                        {
                            h(om);
                        }

                        /*else
                         * {
                         *  Debug.LogWarning("No custom handler");
                         * }*/
                    }
                }
                else
                {
                    Thread.Sleep(20);
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("ThreadAbortException" + e);
        }
        finally
        {
            //Debug.Log("terminating thread - clearing handlers");
            //Cancel();
            //Hashtable.Synchronized(AddressTable).Clear();
        }
    }
Ejemplo n.º 4
0
 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
 {
     while (true)
     {
         int       count;
         int       i;
         ArrayList messages;
         String    message_string;
         Console.Write("get2\n");
         count = udpPacket.ReceivePacket(buffer);
         //Console.Write(Encoding.ASCII.GetString(buffer,0,count)+ "\r\n");
         Console.Write("read:" + count.ToString() + "\n");
         if (count != 0)
         {
             messages = Osc.PacketToOscMessages(buffer, count);
             for (i = 0; i < messages.Count; i++)
             {
                 message_string = Osc.OscMessageToString((OscMessage)messages[i]);
                 //                       output_box.Text = Osc.OscMessageToString((OscMessage)messages[i]) + Environment.NewLine + output_box.Text;
                 Invoke(new add_text_delegate(add_text), message_string);
                 Console.Write(message_string + "\n");
                 Console.Write(messages.Count.ToString() + "\n");
             }
         }
     }
 }
Ejemplo n.º 5
0
    /// <summary>
    /// Read Thread.  Loops waiting for packets.  When a packet is received, it is
    /// dispatched to any waiting All Message Handler.  Also, the address is looked up and
    /// any matching handler is called.
    /// </summary>
    private void Read()
    {
        threadLoops++;
        try
        {
            while (ReaderRunning)
            {
                threadLoops++;
                byte[] buffer = new byte[1000];
                int    length = OscPacketIO.ReceivePacket(buffer);
                threadLoops++;
                if (length > 0)
                {
                    threadReceived++;

                    ArrayList messages = Osc.PacketToOscMessages(buffer, length);


                    foreach (OscMessage om in messages)
                    {
                        if (AllMessageHandler != null)
                        {
                            AllMessageHandler(om);
                        }

                        OscMessageHandler h = (OscMessageHandler)Hashtable.Synchronized(AddressTable)[om.Address];
                        if (h != null)
                        {
                            h(om);
                        }
                    }
                }
                else
                {
                    Thread.Sleep(20);
                }
            }
        }

        catch (Exception e)
        {
            threadErrors++;
            Debug.Log("ThreadAbortException" + e);
        }
        finally
        {
            //Debug.Log("terminating thread - clearing handlers");
            //Cancel();
            //Hashtable.Synchronized(AddressTable).Clear();
        }
    }
Ejemplo n.º 6
0
    void OscHandler(byte[] buffer)
    {
        ArrayList messages = Osc.PacketToOscMessages(buffer, buffer.Length);

        foreach (OscMessage om in messages)
        {
            if (AllMessageHandler != null)
            {
                AllMessageHandler(om);
            }
            OscMessageHandler h = (OscMessageHandler)Hashtable.Synchronized(AddressTable)[om.Address];
            if (h != null)
            {
                h(om);
            }
        }
    }