Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Timothy Clement от 30 Января 2023, 10:17:16

Название: Не воспроизводится звук в скриптах по-изменению
Отправлено: Timothy Clement от 30 Января 2023, 10:17:16
Добрый день!
Обнаружилась следующая проблема при использовании функции PlayUserSound с параметром GetClientName (Версия 6.3.3):
- если скрипт вызван кнопкой, звук всегда воспроизводится
- в скрипте по-изменению если указать в первом параметре имя клиента, звук воспроизводится
- в скрипте по-изменению если указать в первом параметре GetClientName, звук НЕ воспроизводится

Для проверки создал тестовый проект - в нем 2 звука t1.ogg и t2.ogg. Добавил 2 кнопки для воспроизведения звуков по нажатию с следующим кодом:
Код: (delphi)
begin
  PlayUserSound(GetClientName,'t'+IntToStr(Sender.Tag)+'.ogg',False);
end.

Также добавил 1 внутреннюю переменную типа Word и привязал её к полю ввода. По-изменению этой переменной добавил второй скрипт:
Код: (delphi)
begin
  if TestWord.Value = 1 then PlayUserSound(GetClientName,'t'+IntToStr(TestWord.Value)+'.ogg',False);
  if TestWord.Value = 2 then PlayUserSound('serv','t'+IntToStr(TestWord.Value)+'.ogg',False);
end.

В итоге оба звука воспроизводятся при нажатии кнопок, при вводе в поле значения 2 звук воспроизводится, при вводе 1 нет. Проект и звуки прилагаю.
Название: Re: Не воспроизводится звук в скриптах по-изменению
Отправлено: Simple Scada от 30 Января 2023, 10:35:28
Здравствуйте.

Цитировать
в скрипте по-изменению если указать в первом параметре GetClientName, звук НЕ воспроизводится
Функция GetClientName  (https://simple-scada.com/help/script/getclientname.html)работает только в скриптах, к вызову которых приводят действия пользователя, выполненные через клиент скады - см. перечень по ссылке (https://simple-scada.com/help/script/getclientname.html). В остальных скриптах данная функция работать не будет. Вызов GetClientName в этих скриптах будет всегда возвращать пустую строку, т.к. сервер не знает, для какого именно клиента нужно вернуть имя.