Horn in the Multiuser project
Кишко Сергей; 16.12.03

В многопользовательском проекте нет возможности независимого отключения(и включения)сирены - Horn.В качестве audio device используются стандартные аудио-карты с выходом на активные колонки.Так вот сирена начинает выть в случае аварийной ситуации одновременно и на сервере, и на клиентских машинах.Выключить раздельно ее тоже нельзя (например,чтобы на сервере она звучала,а на клиенте - нет).Проблема в том,что включение сирены (и ее выключе-

ние) привязывается к тэгу,а не к компьютеру.Проблема может быть решена с использованием вместо Horn элемента ActiveX WindowsMediaPlayer, но на него нет описания,а среди его свойств
я не нашел тех,которые его запускают и останавливают(что-то вроде "Play" and "Stop"), мне удалось лишь запустить его при открытии с помощью установки "AutoPlay" в "Yes".Был бы очень признателен тому,кто помог бы в этом вопросе.

Re: Horn in the Multiuser project
Александр Родин, ООО "Нева Электрик"; 17.12.03

В приниципе, вопрос вывода звука уже обсуждался здесь много раз, правда многопользовательские системы не затрагивались. Попробуйте использовать API-шные функции. Если надо, могу выслать пример.

Re: Horn in the Multiuser project
Yrok; 17.12.03

PlaySound("C:\\FileName",NULL,SND_FILENAME);


#define SND_FILENAME 0x00020000L
}
Re: Horn in the Multiuser project
Alexis; 18.12.03

На счет мультиюзверевского проекта - чтобы звук был общий для всех компов или раздельный: там же весь смысл в том, что есть тэги @Signal1-3 (которые Computer-local update) и в startup-е на каждом компе запускается hmrt.exe который и взводит тэги при наличии сообщений. Ну дык смысл - @Signal1-3 сделать Project-wide update и hmrt.exe запускать токо на сервере - тогда звук должен быть единым для всего проекта и отключение тоже должно быть единым. Попробуй... :)

Re: Horn in the Multiuser project
Сергей Кишко; 18.12.03

пробовал использовать функцию WinAPI PlaySound,но не могу пропихнуть ее под WINCC (v6.0). Под C++Builder для этого достаточно прописать

#include <mmsystem.h> и все.
Без включения этой строки WINCC этой функции,естественно, не находит. Пробовал включить эту строку в файл "apdefap.h", а сам файл скопировать в тот же каталог - ошибки
при компиляции - компилятор WINCC не понимает многих директив в этом файле. В чем тут дело?
Был бы признателен,если вышлете пример.

Re: Horn in the Multiuser project
Маслов Дмитрий; 19.12.03

Создайте функцию проекта со следующим кодом:


#pragma code ("winmm.dll")
BOOL WINAPI PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
#pragma code()

void PlaySoundWinCC(LPCSTR Name)
{
if (!PlaySound(Name, NULL, 0x00020000L)) printf("Playing the sound %s failed\r\n", Name);
}

Вызывайте ее там, где нужно, передаваю в нее имя wav-файла.


См. Центр технической поддержки по WinCC

Re: Horn in the Multiuser project
Кишко Сергей; 21.12.03

Большое спасибо всем, особое - Дмитрию Маслову и Александру Родину.