Отправить и получить ответ Rug.Osc - PullRequest
0 голосов
/ 31 января 2019

Я использую руб Osc.Отправить его не проблема, и получить не проблема.

Но мне нужно отправить команду OSC и получить ответ.Берингеру 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;

                    }

                }
        }

}

Я запускаю все с одного потока.Но, если сон угрозы будет второстепенным, сломайте приложение.И появляются: System.ObjectDisposedException.

Есть идеи для отправки и получения OSC хорошо?

1 Ответ

0 голосов
/ 07 апреля 2019

"easy": вам нужно отправлять команду / remote OSC каждые 10 секунд, и X32 будет возвращать вашему приложению информацию обо всех изменениях, происходящих на столе (движения фейдеров и т. Д.).Обратитесь к документации по https://sites.google.com/site/patrickmaillot/x32 для получения полной информации и примеров применения (некоторые простые, некоторые нет).-Patrick

...