AXC_SetFilter - фильтр для Alarm
Control
Александр Туманов; 1.3.02
Существует ли более подробное описание этой функции, чем то,
которое дано во встроенном Help? В частности, не понятно как задать
фильтр для нескольких классов или по времени (как написать -
понятно, но реально не работает).
#pragma code("kernel32.dll");
void GetLocalTime(SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME time_from, time_to; //
BOOL ret;
MSG_FILTER_STRUCT Filter;
CMN_ERROR Error;
//Reset the filter struct memset
( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) );
//Set the filter name strcpy
( Filter.szFilterName, "table");
Filter.dwFilter = MSG_FILTER_DATE | MSG_FILTER_DATE_FROM |
MSG_FILTER_DATE_TO | MSG_FILTER_TIME | MSG_FILTER_TIME_FROM |
MSG_FILTER_TIME_TO;
time_from.wYear = GetTagWord ("Year_from");
time_to.wYear = GetTagWord("Year_to");
time_from.wMonth = GetTagWord("Month_from");
time_to.wMonth = GetTagWord("Month_to");
time_from.wDay = GetTagWord("Day_from");
time_to.wDay = GetTagWord("Day_to");
time_from.wHour = GetTagWord("Hour_from");
time_to.wHour = GetTagWord("Hour_to");
time_from.wHour = GetTagWord("Minute_from");
time_to.wMinute = GetTagWord("Minute_to");
time_from.wSecond = GetTagWord("Second_from");
time_to.wSecond = GetTagWord("Second_to");
Filter.st[0] = time_from;
Filter.st[1] = time_to;
ret = AXC_SetFilter("alarm","table",&Filter,&Error);
Re: AXC_SetFilter - фильтр для Alarm
Control
Alexis;
1.3.02
Описание в ODK такое же как и во встроенном хелпе.
Я не пробовал задавать фильтр на Alarm Control, но пробовал в своих
софтинках (надо было сбрасывать сообщения за определенный
промежуток времени, но в читабельном виде в отличие от MSRTBackup).
Фильтрация по времени работает нормально (заполняем st[] и
dwFilter=MSG_FILTER_DATE|MSG_FILTER_TIME). Для классов пока не
пробовал (позже займусь :), но вроде надо так заполнять:
dwFilter|=MSG_FILTER_CLASS
dwMsgClass= устанавливай бит по номеру класса (Alarm=0x01
Warning=0x02 и тд по ИЛИ)и заполняй соответственно
dwMsgType[номер класса]= усанавливай биты по номеру типа (AH=0x01
AL=0x02 и тд по ИЛИ). Если получится пиши... Как сам попробую
напишу :)
Re: AXC_SetFilter - фильтр для Alarm
Control
Евгений Трунов;
1.3.02
Фильтрация по времени может не работать для Short-Term архивов. Для
Long-term у меня проблем с фильтром по дате/времени не было.
Re: AXC_SetFilter - фильтр для Alarm
Control
Alexis;
7.3.02
Кстати, можно же написать функцию GetFilter и разобрать полученную
структурку, тем самым научится задавать нужные фильтры :)