【问题标题】:Using OSC in Arduino from Touch OSC MultiToggle通过 Touch OSC MultiToggle 在 Arduino 中使用 OSC
【发布时间】:2012-09-10 07:12:38
【问题描述】:

我找不到支持 Touch OSC 的多切换控件的 Arduino 的 OSC 库。我做错了什么,还是有一个库支持这个控件?

我正在使用的库:https://github.com/recotana/ArdOSC

我从 Touch OSC 发送的 OSC 消息:

/octobar/togglearray/2/2 1.

在 Arduino 上捕捉它的相关片段:

server.begin(serverPort);
server.addCallback("/octobar/togglearray",&togglearray);

void togglearray(OSCMessage *_mes) {
    Serial.println("Toggle Array");
}

我确实有其他回调工作,我没有在这里粘贴所有服务器代码,因为它与推子和按钮控件一起工作。问题似乎是任何支持多选的控件。

【问题讨论】:

  • 第二行不应该是:server.addCallback("/octobar/togglearray/2/2",&togglearray);
  • 切换数组是可切换按钮的表格。 OSC 消息的 /2/2 部分定义了该数组上的行/列。奇怪的是,我想过为每行和每列编写一个回调,但它不起作用。我真的想避免更改 OSC 布局,让 40 个单独的按钮在一个数组中完美对齐。
  • TouchOSC 手册区分Addressing the first toggle in the first row (indexes in OSC path) /multitoggle/1/1 0Addressing the first toggle in the first row (indexes as parameters) /multitoggle 1 1 0。如果您发送的消息是/octobar/togglearray/2/2 1/2/2是OSC地址的一部分并且应该在回调中。我猜你必须使用“索引作为参数”发送消息(但我在手册中没有找到如何做到这一点)
  • Philipp,谢谢,是的,我真的希望 TouchOSC 应用程序允许我们选择索引作为参数。到目前为止,我还没有找到在应用程序中设置此选项的功能。

标签: arduino osc opensoundcontrol


【解决方案1】:

我一直在尝试几乎完全做到这一点并切换到Z_Osc 库,因为我无法弄清楚如何使用 ArdOsc 解析传入的消息。

我会这样做:

 rcvMes=server.getMessage();
 mess=rcvMes->getZ_OSCAddress();
 if (mess.startsWith("/1/multitoggle1/")) {
     y=(mess.substring(16)).toInt(); 
     x=(mess.substring(19)).toInt();
 }

【讨论】:

    猜你喜欢
    • 2012-09-08
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2011-01-09
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多