Использование OSC в Arduino от Touch OSC MultiToggle

Я не могу найти библиотеку OSC для Arduino, которая поддерживает многопозиционное управление Touch OSC. Я делаю что-то не так, или есть библиотека, которая поддерживает этот элемент управления?

Библиотека, которую я использую: https://github.com/recotana/ArdOSC

Сообщение OSC, которое я отправляю из Touch OSC:

/octobar/togglearray/2/2 1.

Фрагмент относительно того, чтобы поймать его на Arduino:

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

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

У меня работают другие обратные вызовы, и я не вставил сюда весь серверный код, так как он работает с фейдерами и кнопками управления. Проблема, по-видимому, заключается в любом элементе управления, который поддерживает множественный выбор.


person Mark Kropf    schedule 18.09.2012    source источник
comment
Разве вторая строка не должна быть: server.addCallback("/octobar/togglearray/2/2",&togglearray);   -  person Philipp Horn    schedule 18.09.2012
comment
Массив переключателей — это таблица переключаемых кнопок. Часть /2/2 сообщения OSC определяет строку/столбец в этом массиве. Как ни странно, я думал написать обратный вызов для каждой строки и столбца, и это не сработало. Я действительно пытаюсь избежать изменения макета OSC, чтобы 40 отдельных кнопок идеально выровнялись в массиве.   -  person Mark Kropf    schedule 18.09.2012
comment
В руководстве по TouchOSC различаются Addressing the first toggle in the first row (indexes in OSC path) /multitoggle/1/1 0и Addressing the first toggle in the first row (indexes as parameters) /multitoggle 1 1 0. Если сообщение, которое вы отправляете, /octobar/togglearray/2/2 1тогда /2/2является частью OSC-адреса и должно быть в обратном вызове. Я думаю, вам нужно отправить сообщение с индексами в качестве параметров (но я не нашел, как это сделать в руководстве)   -  person Philipp Horn    schedule 19.09.2012
comment
Филипп, спасибо, да, я бы очень хотел, чтобы приложение TouchOSC позволяло нам выбирать индексы в качестве параметров. Пока я не нашел возможности установить эту опцию в приложении.   -  person Mark Kropf    schedule 19.09.2012


Ответы (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();
 }
person user1714819    schedule 02.01.2013