发送和接收响应Rug.Osc

时间:2019-01-31 01:46:23

标签: c# osc

我使用Rub Osc。发送没问题,接收没问题。

但是我需要发送OSC命令并接收响应。到Beringher x32。

例如,发送“ / ch / 01 / mix / on”并获得0或1。

    public double GetOSC(string IPOSC, int REMOTEPORTUSE, int LOCALPORTUSE, string ENVIOCOMANDO)
        {
    // Envio Comando 
            OscReceiver receiver;
            OscSender sender2;
        // Create the receiver
        using (receiver = new OscReceiver((int)LOCALPORTUSE))
        {              

            IPAddress address = IPAddress.Parse(IPOSC);



                using (sender2 = new OscSender(address, (int)LOCALPORTUSE, (int)REMOTEPORTUSE))
                {
                    // Connect the receiver
                    receiver.Connect();

                    //And Send
                    sender2.Connect();
                    sender2.Send(new OscMessage(ENVIOCOMANDO)); //"/ch/01/mix/on" 

                 // if we are in a state to recieve

                    if (receiver.State == OscSocketState.Connected )
                    {
                            // get the next message 
                            // this will block until one arrives or the socket is closed
                            OscPacket packet = receiver.Receive();

                            // Write the packet to the console

                            var output = Regex.Replace(packet.ToString().Split(',')[1], @"[^0-9.]", string.Empty);
                            double decim = double.Parse(output, System.Globalization.CultureInfo.InvariantCulture);

                        return decim;

                    }
                    else
                    {
                        return -1;

                    }

                }
        }

}

我启动了所有线程。但是如果Threath睡眠时间不到一秒钟..破坏了应用程序。 并显示:System.ObjectDisposedException。

关于发送和接收OSC的任何想法吗?

1 个答案:

答案 0 :(得分:0)

“简单”:您需要每10秒发送一次/ remote OSC命令,并且X32将回显您在应用程序处发生的所有更改(推子移动等)。有关完整的信息和应用示例,请参阅https://sites.google.com/site/patrickmaillot/x32上的文档(有些简单,有些没有)。 -帕特里克