УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

Архивы, Document & Protocol.


Автор Сообщение
Сообщение создано: 27. 11. 2011 [08:21]
punk
Василий Петров
Создатель темы
Зарегистрирован(а) с: 09.05.2011
Сообщения: 57
Пытаюсь выодить сообщения из архива. Казлось бы, что во всем разобрался и за постоянный промежуток времени (любой) все выводится и Document'ом и Protocol'ом. Затем для удобства сделал кнопки "Час", "предпоследний час", "день", "вчера" и т.д., которые меняют параметры:
- в случае Document'а time & bTime
- в случае Protocol'а time & tSize

if(tmMode==0) // последний час
{
// dt_time = SYS.time();dt_bTime = dt_time-3600;
Prt_time=SYS.time();Prt_tSize=3600;
}
if(tmMode==1) // предпоследний час
{
// dt_time = SYS.time()-3600;dt_bTime = dt_time-3600;
Prt_time=SYS.time()-3600;Prt_tSize=3600;
}

if(tmMode==2) // день
{
// dt_time = SYS.time();dt_bTime = dt_time-86400;
Prt_time=SYS.time();Prt_tSize=86400;
}
if(tmMode==3) // вчера
{
// dt_time = SYS.time()-86400;dt_bTime = dt_time-86400;
Prt_time=SYS.time()-86400;Prt_tSize=86400;
}

Цель была - добиться отображения за соответствующий период, однако этого не получилось.
- в случае с документом переход "час" --> "предыдущий час" не приводил к исчезновению сообщений из последнего часа, при обратном переходе - сообщения дублировались.
- в случае с протоколом переход "час" <--> "предыдущий час" работает нормально, но при переходе "предыдущий час" --> "сегодня" отображается столько сообщений, сколько было в предыдущем часе, а более поздние отбрасываются.
На мой взгляд тут что-то с кешированием сообщений, но что - не совсем понятно. Собственно вопросы:
- можно ли менять time произвольно или при уменьшении нужно еще что-то делать?
- в документации про Document сказано "Генерация документа всегда производится в момент установки атрибута времени <time>..." - означает ли это, что в динамике должно быть написано "xxx_bTime=AAAA-3600; xxx_time=AAAA;" или можно поменять команды местами? То есть проверка происходит после обработки динамики или именно в момент изменения?
- есть ли по wdg_Protocol что-то подробнее http://wiki.oscada.org/Doc/VCAEngine#h668-19 ?
Сообщение создано: 27. 11. 2011 [10:23]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3743
"punk" wrote:

Цель была - добиться отображения за соответствующий период, однако этого не получилось.
- в случае с документом переход "час" --> "предыдущий час" не приводил к исчезновению сообщений из последнего часа, при обратном переходе - сообщения дублировались.

Атрибут "doc" при смене времени должен очищаться иначе документ дополняется, что корректно.

"punk" wrote:

- в случае с протоколом переход "час" <--> "предыдущий час" работает нормально, но при переходе "предыдущий час" --> "сегодня" отображается столько сообщений, сколько было в предыдущем часе, а более поздние отбрасываются.

Не понятно что Вы имеете в виду. Вообще этот примитив не совсем для навигации по протоколу сообщений, а для динамического слежения за сообщениями и нарушениями.

Для того что Вы делаете можно и нужно использовать тот-же примитив документа. В ДемоБД есть примеры и по первому и по второму вопросу.

Learn, learn and learn better than work, work and work.
Сообщение создано: 08. 12. 2011 [12:06]
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
"punk" wrote:

- можно ли менять time произвольно или при уменьшении нужно еще что-то делать?

Сегодня попробовал поработать с виджетом Protocol и тоже возникли проблемы при навигации. При изменении параметра time то отображается правильное количество сообщения за указанный tSize, то вообще пустой список вываливает, то вываливает на много больше, чем в tSize задано. Это системная проблема и данный виджет 100% не стоит использовать для навигации по архиву? С Protocol симпатичнее получается решение вопроса отображения сообщений с минимумом навигации, чем с виджетом doc. Да и попроще.
Сообщение создано: 08. 12. 2011 [12:23]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3743
"yozhik" wrote:

Сегодня попробовал поработать с виджетом Protocol и тоже возникли проблемы при навигации. При изменении параметра time то отображается правильное количество сообщения за указанный tSize, то вообще пустой список вываливает, то вываливает на много больше, чем в tSize задано. Это системная проблема и данный виджет 100% не стоит использовать для навигации по архиву?

Алгоритм оптимизации не предусматривает произвольного выбора.
Я лично не использую его для навигации.

"yozhik" wrote:

С Protocol симпатичнее получается решение вопроса отображения сообщений с минимумом навигации, чем с виджетом doc. Да и попроще.

Да прямо! Вы примеры в ДемоБД вообще смотрели?

Learn, learn and learn better than work, work and work.
Сообщение создано: 08. 12. 2011 [12:40]
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
"roman" wrote:

Да прямо! Вы примеры в ДемоБД вообще смотрели?

Не только смотрел, но уже и использовал в предыдущих (и текущем) проектах. Но это мое субъективное мнение и оно может не совпадает с Вашим и остальных. Для отображения архива сообщений с минимальными навигационными функциями (без каких-либо дополнительных расчетов) мне Protocol кажеться проще и удобнее.
Сообщение создано: 08. 12. 2011 [22:20]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3743
Работа примитива "Протокол" исправлена!

Learn, learn and learn better than work, work and work.
Сообщение создано: 09. 12. 2011 [02:08]
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
Спасибо. А есть возможность сделать язык надписей в заголовках колонок виджета Protocol русский без правки исходных текстов?Часто заказчики требуют чтобы все надписи всегда были на русском.
Сообщение создано: 09. 12. 2011 [07:49]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3743
"yozhik" wrote:

Спасибо. А есть возможность сделать язык надписей в заголовках колонок виджета Protocol русский без правки исходных текстов?Часто заказчики требуют чтобы все надписи всегда были на русском.

В русской локали запустить.

Learn, learn and learn better than work, work and work.
Сообщение создано: 11. 12. 2011 [18:00]
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
"roman" wrote:

В русской локали запустить.

Поставил локаль. В скаде в поле Language ввожу ru_RU.UTF-8 - язык сразу меняется. Проект сохраняю. Но при следующем запуске в поле Language опять значение en_US:en. Как сделать чтобы настройка языка сохранялась?

И второй вопрос. Как идеологически правильно сделать, чтобы при открытии отчетов, графиков и протоколов справа автоматически появлялась соответствующая панель управления? На ум приходит два способа: отправить сообщение InFocus от имени встроенного виджета и принудительная установка флага pgOpen соответствующего окна панели управления. Такое автоматическое открытие намеренно сейчас не реализовано в библиотеке виджета DemoStation?
Сообщение создано: 11. 12. 2011 [20:44]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3743
"yozhik" wrote:

Поставил локаль. В скаде в поле Language ввожу ru_RU.UTF-8 - язык сразу меняется. Проект сохраняю. Но при следующем запуске в поле Language опять значение en_US:en. Как сделать чтобы настройка языка сохранялась?

И не должно сохраняться. В системе локаль меняйте, а не в OpenSCADA!

"yozhik" wrote:

И второй вопрос. Как идеологически правильно сделать, чтобы при открытии отчетов, графиков и протоколов справа автоматически появлялась соответствующая панель управления?

По признаку "f_start" генерировать событие открытия другого кадра, в панели.

"yozhik" wrote:

Такое автоматическое открытие намеренно сейчас не реализовано в библиотеке виджета DemoStation?

Я не считаю такое поведение нужным.

Learn, learn and learn better than work, work and work.



45522