GetSignalType
Предоставляет название типа сообщений в указанном сигнале для указанного сервера-потребителя.
string GetSignalType(int4 i, int4 k)
|
Параметры
|
Параметр
|
Тип
|
Описание
|
|
i
|
int4
|
Индекс сервера аудита
|
|
k
|
int4
|
Индекс категории важности
|
Возвращаемое значение
Возвращает название типа сообщений в указанном сигнале для указанного сервера-потребителя.
Поскольку в конфигурационном файле может быть указано несколько серверов-потребителей, каждый из них описывается в компоненте в виде элемента массива A[i]. Каждый элемент массива А[i] представляет собой массив B, каждый элемент B[i,k] которого описывает один из сигналов в описываемом сервере A[i].
Массив А, описывающий сервера-потребители = [[Массив В, описывающий первый сервер], [Массив В, описывающий второй сервер]]
Массив В, описывающий первый сервер = [[Описание первой категории важности], [Описание второй категории важности]]
Массив В, описывающий второй сервер = [[Описание первой категории важности], [Описание второй категории важности]]
|
Обратиться к конкретному сигналу можно по номеру элемента в массивах A и B (i, k).
Каждый элемент массива B[i,k] соответствует одному из значений атрибута Type xml-элемента <Signal>, вложенного в xml-элемент <SignalMap> одного из xml-элементов <OpcDaLogConsumer> в конфигурационном файле агента безопасности..
Примеры
Допустим, в конфигурационном файле описан один сервер-потребитель сообщений (один элемент <OpcDaLogConsumer>), в котором для записи сообщений аудита предназначено несколько сигналов:
<AuditLogConsumers TraceAudit="1">
<OpcDaLogConsumer>
<Server Host="127.0.0.1" Type="OPC" ...>
<SignalMap>
<Signal Name="DynEvents.NormalDynSignal"
Mode="DynamicEvent"
Type="Normal"/>
<Signal Name="DynEvents.AdminDynSignal" Mode="DynamicEvent" Type="Admin"/>
<Signal Name="DynEvents.UserNameDynSignal" Mode="DynamicEvent" Type="UserName"/>
<Signal Name="DynEvents.DisplayNameDynSignal" Mode="DynamicEvent" Type="DisplayName"/>
<Signal Name="DynEvents.GroupNameDynSignal" Mode="DynamicEvent" Type="GroupName"/>
<Signal Name="DynEvents.WorkstationNameDynSignal" Mode="DynamicEvent" Type="WorkstationName"/>
<Signal Name="DynEvents.NormalMessage" Mode="Value" Type="Normal"/>
<Signal Name="DynEvents.AdminMessage" Mode="Value" Type="Admin"/>
<Signal Name="DynEvents.UserNameMessage" Mode="Value" Type="UserName"/>
<Signal Name="DynEvents.DisplayNameMessage" Mode="Value" Type="DisplayName"/>
<Signal Name="DynEvents.GroupNameMessage" Mode="Value" Type="GroupName"/>
<Signal Name="DynEvents.WorkstationNameMessage" Mode="Value" Type="WorkstationName"/>
</SignalMap>
</Server>
</OpcDaLogConsumer>
</AuditLogConsumers>
|
Чтобы получить список параметров сигналов в каждом сервере-потребителе, вызовите нужные функции в коде, выполняющемся в случае успешного чтения конфигурации Агент Astra.Security (например, в обработчике события ReadingFinished()). Укажите в качестве входных параметров индексы i (индекс в массиве серверов-потребителей) и k (индекс в массиве сигналов). Приведенный ниже пример написан на языке Astra.Om, в нем список сигналов с их параметрами записывается в лог:
i: int4 = 0;
while (i < Configurator.ConsumersCount) //цикл выполняется, пока в массиве A не будут описаны все сервера-потребители
{
k: int4 = 0;
while (k < Configurator.GetSignalsCount(i)) //цикл выполняется, пока в массив B не будут записаны все сигналы i-го сервера-потребителя
{
DebugTool.Log("Название сигнала: "+Configurator.GetSignalName(i,k)+"; Режим записи: "+String.ToString(
Configurator.GetSignalMode(i,k))+"; Тип сообщения: "+
Configurator.GetSignalType(i,k)); //в Журнал времени исполнения записывается список сигналов i-го сервера
k += 1;
}
i += 1;
}
|
В результате вызова функций в Журнал времени исполнения запишется список сигналов с их параметрами:
