Тема / Topic: Как реализовать квитирование кликом по ГЭ на экране?
Муратов В.В.
Junior Member / Новичок
Участник № / Member № 2368
отправлено / posted
САБЖ. Не получается. Версия TM 6.05. Поиском пользовался. Все что нашел не работает. У меня есть каналы Событие и каналы Float. Квитирование по первым осуществляю в ГЭ Events, подключен словарь и *.wav-ки по именам сообщений в словаре. Тут проблем нет. Проблемы есть по каналам Float. Как по ним осуществлять квитирование? Обязательным является отключение звука тревоги при квитировании. Единственный выход вижу в реализации квитирования по по событию нажатия кнопки мыши на каком-нибудь ГЭ. Но как это сделать? Подскажите пожалуйста. Горит!!!
Сообщения / Posts 3 | Из / From: РФ
| IP / IP: IP адрес / IP address |
отправлено / posted
Если Вы генерируете звук тревоги с помощью системного канала @Sound_File, то (цитирую из описания этого канала) "Посылка нуля в такой канал останавливает воспроизведение." Следовательно, Вам нужен ГЭ, который посылал бы "0" в атрибут ВХОД этого канала.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Муратов В.В.
Junior Member / Новичок
Участник № / Member № 2368
отправлено / posted
Я использую для генерации звуков возможности словаря для канала (PlayStop и т.д.). Все же как осуществить квитирование для канала Float через клик по ГЭ?
Сообщения / Posts 3 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Муратов В.В.
Junior Member / Новичок
Участник № / Member № 2368
отправлено / posted
Создайте любой канал @Sound_File и посылайте в него "0" (вместе с "1" в атрибут EXEC).
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Вадик
Junior Member / Новичок
Участник № / Member № 2963
отправлено / posted
Тобиш можна создать любой канал с направлением out и по нажатию на ГЭ отправлять во вход 0 и в EXEC 1, я правельно понял предыдущее сообщение?
Сообщения / Posts 26 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Понимание "квитирования" может быть довольно широким. В данном случае речь идет о прерывании звука. Реализуется эта процедура не любым каналом OUT, а тем, который привязан к системной переменной @Sound_File.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Вадик
Junior Member / Новичок
Участник № / Member № 2963
отправлено / posted
Это я понял. Я реализовал все так: сздал словарь для канала, далее если определенный бит канала принимает значение наченает воспроизводится звук, далее я создал канал, который связал с системной переменной @Sound_File, и кликом по ГЭ изменяю в даном канале 0 и в EXEC 1, но звук не исчезает до тих пор, пока тот самый бит первого канале не примет другого значения.
Сообщения / Posts 26 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Я перепроверил все в соответствии с Вашим алгоритмом. Звук прерывается в момент отработки канала, связанного с системной переменной @Sound_File. Присылайте Ваше ТЕСТОВЫЙ проект на адрес техподдержки hotline@adastra.ru.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Тремя записями выше указано, что системная переменная И привязанный к ней канал должны быть типа OUT. 2. Нельзя в словаре сообщений оставлять поле "Текст" пустым. 2. С экрана для гашения звука Вы управляете не каналом, связанным с @Sound_File, а совершенно другим каналом. 3. Прерывать однократное короткое звуковое сообщение таким способом не имеет смысла. Задайте в словаре тип звукового сообщения PlayLoopStop. Задайте от руки "аварийное" (а не от генератора) значение каналу со звуковым сообщением. У Вас будет непрерывно воспроизводиться звуковое сообщение. После этого прерывайте звук - но при правильных привязках аргумента экрана.
Letiso333
Junior Member / Новичок
Участник № / Member № 3298
отправлено / posted
Здравствуйте, уважаемая тех. поддержка! А возможна ли реализация прекращения проигрывания звука одним действием вместе с квитированием (ctrl+лев.кн.мыши на квитируемом собщении), а не отдельно ч/з @SoundFile?
Сообщения / Posts 13 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Day13
Junior Member / Новичок
Участник № / Member № 3734
отправлено / posted
Уважаемая тех. поддержка ответьте на вопрос Letiso333. У меня возник такой же вопрос.
Сообщения / Posts 8 | Из / From: Россия
| IP / IP: IP адрес / IP address |
ShuraX (TM_Prof)
Forum Member / Участник форума
Участник № / Member № 3130
отправлено / posted
> Нет, такая операция не осуществима. А жаль...может стоит записать как пожелание?
В довесок по квитированию и проигрыванию звука: необходимо решить следующую задачу. Есть два канала с настроенными аварийными границами. Оба привязаны к одному словарю сообщений, в котором на аварийную границу указан вывод PlayLoopStop (звуковой файл создан). Созданы две системные переменные @Sound_File одна типа Input, вторая Output. На экране настроено отображение с квитированием (в атрибут 39 канала @Sound_File засылается 0). Необходимо реализовать следующий алгоритм работы: при срабатывании границы по первому каналу начинается воспроизведение звукового файла (пока ничего не делает), после срабатывания границы на втором файле воспроизведение продолжается. После квитирования первого аварийного события воспроизведение звука продолжается, после квитирования второго прекращается. Т.е. до тех пор пока "очередь воспроизведения звуковых файлов" не закончится (как я понимаю). 1) Возможно ли это организовать на тех исходных данных, что я задал? (Сейчас получается так, что воспроизведение полностью останавливается.) 2) Sound_File типа Input в момент возникновения аварийного события становится =1, а затем =0. Я так понимаю (по хелпу), если я не квитирую (не прерываю воспроизведение через канал Sound_File типа Output) очередь должна расти??? а она =0. 3) Как можно реализовать подобный алгоритм?
Сообщения / Posts 59 | Из / From: Россия
| IP / IP: IP адрес / IP address |
ShuraX (TM_Prof)
Forum Member / Участник форума
Участник № / Member № 3130
P.S. наверно стоит отдельные темы задавать, чтобы виднее было. Старался просто не плодить похожие вопросы.
Сообщения / Posts 59 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1) Если Вы используете параметр 0 у переменной SoundFile, то звук у Вас проигрывается только один раз, поэтому очередь становится равной 0. Вам нужно использовать другие параметры (при этом более ранние события будут иметь более высокий приоритет) или более длинные звуки
2) Механизм реализуется просто. Посылаете нужные числа на вход переменной. А при квитировании посылаете 0 (дублируя посылкой 1 в Еxec, если квитируется несколько событий подряд). При этом при квитировании одного события будет сразу же за ним играть звук от другого события.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
ShuraX (TM_Prof)
Forum Member / Участник форума
Участник № / Member № 3130
отправлено / posted
"Постановка в начало очереди, прерывание текущего воспроизведения" означает обнуление очереди. По этому Вам нужно пользовться из словаря функцией Play, но звук должен быть максимально продолжительным. Или написать программу для анализа превышения значений с использованием @Sound_File с параметром 1.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |