Как выполнять определенную функцию пока Алиса говорит

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Аватара пользователя
mag999
Сообщения: 20
Зарегистрирован: Вс окт 08, 2017 12:32 pm
Откуда: Черкассы
Благодарил (а): 14 раз
Поблагодарили: 0

Как выполнять определенную функцию пока Алиса говорит

Сообщение mag999 » Пн ноя 26, 2018 12:56 am

Подскажите возможно ли как-то сделать такой алгоритм работы : перед голосовым сообщением запустить некоторую функцию (например gpio -1 write 8 1) и по завершении всего сообщения выполнить другую функцию (gpio -1 write 8 0) и аналогично с VLC плеером.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Как выполнять определенную функцию пока Алиса говорит

Сообщение tarasfrompir » Пн ноя 26, 2018 9:26 am

для этого есть - Общие настройки - обработчики - Before SAY (code):
там и пиши что тебе надо :!: :idea:
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
mag999
Сообщения: 20
Зарегистрирован: Вс окт 08, 2017 12:32 pm
Откуда: Черкассы
Благодарил (а): 14 раз
Поблагодарили: 0

Re: Как выполнять определенную функцию пока Алиса говорит

Сообщение mag999 » Пн ноя 26, 2018 12:48 pm

Или я что-то не так делаю но After SAY (code): исполняется не дожидаясь конца фразы, а мне нужно чтобы код сработал после полного завершения сообщения.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Как выполнять определенную функцию пока Алиса говорит

Сообщение tarasfrompir » Пн ноя 26, 2018 12:53 pm

mag999 писал(а):
Пн ноя 26, 2018 12:56 am
Подскажите возможно ли как-то сделать такой алгоритм работы : перед голосовым сообщением запустить некоторую функцию (например gpio -1 write 8 1) и по завершении всего сообщения выполнить другую функцию (gpio -1 write 8 0) и аналогично с VLC плеером.
Для старта в сообщении написано ПЕРЕД голосовым сообщением
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Как выполнять определенную функцию пока Алиса говорит

Сообщение tarasfrompir » Пн ноя 26, 2018 12:54 pm

mag999 писал(а):
Пн ноя 26, 2018 12:48 pm
Или я что-то не так делаю но After SAY (code): исполняется не дожидаясь конца фразы, а мне нужно чтобы код сработал после полного завершения сообщения.
Афтерсей - не ожидает завершения команды - он срабатывает после события... а не воспроизведения команды
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
mag999
Сообщения: 20
Зарегистрирован: Вс окт 08, 2017 12:32 pm
Откуда: Черкассы
Благодарил (а): 14 раз
Поблагодарили: 0

Re: Как выполнять определенную функцию пока Алиса говорит

Сообщение mag999 » Пн ноя 26, 2018 1:05 pm

значит обработчик не подходит или подходит частично в роли запуска exec ("gpio write 7 1 ").
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Как выполнять определенную функцию пока Алиса говорит

Сообщение tarasfrompir » Пн ноя 26, 2018 1:13 pm

mag999 писал(а):
Пн ноя 26, 2018 1:05 pm
значит обработчик не подходит или подходит частично в роли запуска exec ("gpio write 7 1 ").
просто надо правильно написать сам обработчик - для начала надо взять длинну сообщения - для этого есть функция getMediaDurationSeconds которая берет время воспроизведения команды, потом надо подождать это время и соответственно запустить ваш екзек...
За это сообщение автора tarasfrompir поблагодарили (всего 2):
mag999 (Пн ноя 26, 2018 1:14 pm) • Logrus (Пн ноя 26, 2018 3:52 pm)
Рейтинг: 2.33%
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
mag999
Сообщения: 20
Зарегистрирован: Вс окт 08, 2017 12:32 pm
Откуда: Черкассы
Благодарил (а): 14 раз
Поблагодарили: 0

Re: Как выполнять определенную функцию пока Алиса говорит

Сообщение mag999 » Пн ноя 26, 2018 1:25 pm

Еще понятия не имею как это сделать но спасибо за ответ)))
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Как выполнять определенную функцию пока Алиса говорит

Сообщение Logrus » Пн ноя 26, 2018 1:34 pm

tarasfrompir1 писал(а):
Пн ноя 26, 2018 12:54 pm
mag999 писал(а):
Пн ноя 26, 2018 12:48 pm
Или я что-то не так делаю но After SAY (code): исполняется не дожидаясь конца фразы, а мне нужно чтобы код сработал после полного завершения сообщения.
Афтерсей - не ожидает завершения команды - он срабатывает после события... а не воспроизведения команды
вот а можно на него функцию выше (она недавно появилась) сразу в ядре повесить?!
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 816 раз

Re: Как выполнять определенную функцию пока Алиса говорит

Сообщение tarasfrompir » Пн ноя 26, 2018 1:40 pm

mag999 писал(а):
Пн ноя 26, 2018 1:25 pm
Еще понятия не имею как это сделать но спасибо за ответ)))
начни с простого
sleep(5); exec ("gpio write 7 1 ");
Спасибо нам ПОМОЖЕТ..!
Ответить