mefi73 wrote:а если сделать так,
- создаем поле в структуре, в одном будет храниться частота, во втором продолжительность.
- когда нужен звук, присваиваем полям значения частоты и продолжительности и передаем их в смартфон
- смартфон воспроизводит звук, обнуляет эти поля структуры и возвращает их контроллеру
на примерах выключателя я понимаю что можно менять содержимое полей структуры и со смартфона и внутри программы, так может так и сделать?
то же и с вибро, задаем продолжительность, смартфон вибрирует и обнуляет значение
Не пойдет. Переменная передается только в одну сторону. Либо от контроллера к интерфейсу, либо от интерфейса к контроллеру. Это аксиома проекта на данный момент.
Пока видим так:
Поле в структуре отвечает за номер рингтона. 0 - нет, 1-рингтон №1, 2-рингтон №2 и т.д.
Когда контроллер меняет значение с 0 на номер рингтона, смартфон воспроизводит рингтон 1 раз. Как бы по фронту.
Далее контроллер должен переключить поле обратно в 0.
Единственная проблема - это то что фронты, как включение, так и сброс в 0, должны успевать доходить до смартфона. Так как связь работает гораздо медленнее контроллера, контроллер должен выдерживать определенные паузы. Если контроллер включит поле переменной и сразу выключит, то ввиду медленной скорости связи такое изменение даже не дойдет до смартфона и рингтон не проиграется.
Дополнительно можно добавить поле со связью от смартфона к контроллеру. В это поле смартфон будет отчитываться контроллеру, что рингтон принят и проигран, и то что он готов к проигрыванию следующего. Так контроллер сможет оперативнее контролировать процесс, не допуская пропусков проигрывания. Так будет достигаться имитация передачи события.