AstraRegul
Релиз 2024.08.31.00
×

4.4.1.4.2.4.9.10.2.21. 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;
}
 
В результате вызова функций в Журнал времени исполнения запишется список сигналов с их параметрами: