Страница 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):
там и пиши что тебе надо :!: :idea:

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 ");