<< Click to Display Table of Contents >> Navigation: Проект > Элементы дерева объектов > Палитра ФБ > Служебные > Скрипт > Руководство и примеры > Работа с архивом сообщений > Квитирование сообщений со звуком |
В разделе Система архивации и тренды, мы разбирали канал Звук - с помощью данного канала сообщения определенных категорий (или конкретные сообщения) могут сопровождаться звуком. При этом звук может проигрываться пока сообщение активно или пока оно не квитировано.
При этом, звук может принадлежать определенной категории или определенному событию. Часто возникает необходимость квитировать все такие сообщения и прекратить воспроизведение звука (не зависимо от того проигрывается звук до окончания активности или до квитирования). Для этой задачи также можно использовать скрипт.
Создадим объект с тремя событиями и скриптом, с одним входом Квитировать.
У событий назначим звуковой файл:
Теперь сделаем, чтобы все сообщения со звуком квитировались и звук бы останавливался.
Для работы скрипта, необходимо добавить библиотеку (как и на прошлом шаге - через вкладку Настройки) - OpcRcw.Ae.dll
А также пространство имен:
using FBLibrary.EventsChannels;
Итоговый код будет выглядеть следующим образом:
public partial class ФБ : ScriptBase
{
bool? M = false;
public override void Execute()
{
if (Квитировать == true && M == false)
{
var channel = HostFB.TreeItemHlp.Project.CurrentComputer.Properties.GetProperty(CatID.Channels, (int)ChannelIndex.ChannelSound, true, null);
var soundChannel = channel as SoundChannel;
var eventRecs = soundChannel.GetAllEventRecs();
EventID[] eventIds = eventRecs.Select(x => x.EventID).ToArray();
HostFB.TreeItemHlp.Project.AlarmManager.AckEvents(eventIds, "Общее квитирование");
}
M = Квитировать;
}
}
В первой строке происходит получение канала звука.
Главная строка в данном коде:
var eventRecs = soundChannel.GetAllEventRecs();
С помощью метода GetAllEventRecs, происходит получение все записей данного канала.
Затем с помощью метода Select происходит получение всех EventID данных сообщений и преобразование их в массив. После этого данный массив квитируется.
Готовый пример со скриптом можно скачать по ссылке.