我使用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的任何想法吗?
答案 0 :(得分:0)
“简单”:您需要每10秒发送一次/ remote OSC命令,并且X32将回显您在应用程序处发生的所有更改(推子移动等)。有关完整的信息和应用示例,请参阅https://sites.google.com/site/patrickmaillot/x32上的文档(有些简单,有些没有)。 -帕特里克