Страница 1 из 4
Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 12:56 am
mag999
Подскажите возможно ли как-то сделать такой алгоритм работы : перед голосовым сообщением запустить некоторую функцию (например gpio -1 write 8 1) и по завершении всего сообщения выполнить другую функцию (gpio -1 write 8 0) и аналогично с VLC плеером.
Re: Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 9:26 am
tarasfrompir
для этого есть - Общие настройки - обработчики - Before SAY (code):
там и пиши что тебе надо

Re: Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 12:48 pm
mag999
Или я что-то не так делаю но After SAY (code): исполняется не дожидаясь конца фразы, а мне нужно чтобы код сработал после полного завершения сообщения.
Re: Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 12:53 pm
tarasfrompir
mag999 писал(а): ↑Пн ноя 26, 2018 12:56 am
Подскажите возможно ли как-то сделать такой алгоритм работы : перед голосовым сообщением запустить некоторую функцию (например gpio -1 write 8 1) и по завершении
всего сообщения выполнить другую функцию (gpio -1 write 8 0) и аналогично с VLC плеером.
Для старта в сообщении написано ПЕРЕД голосовым сообщением
Re: Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 12:54 pm
tarasfrompir
mag999 писал(а): ↑Пн ноя 26, 2018 12:48 pm
Или я что-то не так делаю но After SAY (code): исполняется не дожидаясь конца фразы, а мне нужно чтобы код сработал после полного завершения сообщения.
Афтерсей - не ожидает завершения команды - он срабатывает после события... а не воспроизведения команды
Re: Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 1:05 pm
mag999
значит обработчик не подходит или подходит частично в роли запуска exec ("gpio write 7 1 ").
Re: Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 1:13 pm
tarasfrompir
mag999 писал(а): ↑Пн ноя 26, 2018 1:05 pm
значит обработчик не подходит или подходит частично в роли запуска exec ("gpio write 7 1 ").
просто надо правильно написать сам обработчик - для начала надо взять длинну сообщения - для этого есть функция getMediaDurationSeconds которая берет время воспроизведения команды, потом надо подождать это время и соответственно запустить ваш екзек...
Re: Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 1:25 pm
mag999
Еще понятия не имею как это сделать но спасибо за ответ)))
Re: Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 1:34 pm
Logrus
tarasfrompir1 писал(а): ↑Пн ноя 26, 2018 12:54 pm
mag999 писал(а): ↑Пн ноя 26, 2018 12:48 pm
Или я что-то не так делаю но After SAY (code): исполняется не дожидаясь конца фразы, а мне нужно чтобы код сработал после полного завершения сообщения.
Афтерсей - не ожидает завершения команды - он срабатывает после события... а не воспроизведения команды
вот а можно на него функцию выше (она недавно появилась) сразу в ядре повесить?!
Re: Как выполнять определенную функцию пока Алиса говорит
Добавлено: Пн ноя 26, 2018 1:40 pm
tarasfrompir
mag999 писал(а): ↑Пн ноя 26, 2018 1:25 pm
Еще понятия не имею как это сделать но спасибо за ответ)))
начни с простого
sleep(5); exec ("gpio write 7 1 ");