2012-09-18 20 views
2

我無法找到支持觸摸OSC的multitoggle控件的Arduino的OSC庫。我做錯了什麼,或者有沒有支持這種控制的圖書館?使用觸摸OSC的Arduino中的OSC MultiToggle

我使用的庫:https://github.com/recotana/ArdOSC

的OSC消息我是從觸摸OSC發送:

/octobar/togglearray/2/2 1. 

的片段相對於趕上它的Arduino的:

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

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

我確實有其他回調工作,我沒有粘貼所有的服務器代碼,因爲它使用推子和按鈕控件。問題似乎是支持多選的任何控件。

+1

不應第二行是:'server.addCallback( 「/ octobar/togglearray/2/2」,&togglearray);' –

+0

撥動陣列是切換式按鈕表。 OSC消息的/ 2/2部分定義該陣列上的行/列。奇怪的是,我想爲每行和每列編寫一個回調函數,但它不起作用。我真的試圖避免改變OSC佈局,讓40個單獨的按鈕在陣列中完美對齊。 –

+1

TouchOSC手冊區分'在第一行中尋址第一個切換(OSC路徑中的索引)/ multitoggle/1/1 0'和'在第一行中尋址第一個切換(索引作爲參數)/ multitoggle 1 1 0 '。如果你發送的消息是'/ octobar/togglearray/2/2 1',那麼'/ 2/2'是OSC-Address的一部分,應該在回調中。我想你必須發送消息「索引作爲參數」(但我沒有在手冊中找到如何操作) –

回答

0

我一直在努力做到這一點,並切換到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(); 
}