Author |
Message |
Written on: 27. 11. 2011 [08:21]
|
punk
Василий Петров
Topic creator
registered since: 09.05.2011
Posts: 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 ?
|
Written on: 27. 11. 2011 [10:23]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"punk" wrote:
Цель была - добиться отображения за соответствующий период, однако этого не получилось.
- в случае с документом переход "час" --> "предыдущий час" не приводил к исчезновению сообщений из последнего часа, при обратном переходе - сообщения дублировались.
Атрибут "doc" при смене времени должен очищаться иначе документ дополняется, что корректно.
"punk" wrote:
- в случае с протоколом переход "час" <--> "предыдущий час" работает нормально, но при переходе "предыдущий час" --> "сегодня" отображается столько сообщений, сколько было в предыдущем часе, а более поздние отбрасываются.
Не понятно что Вы имеете в виду. Вообще этот примитив не совсем для навигации по протоколу сообщений, а для динамического слежения за сообщениями и нарушениями.
Для того что Вы делаете можно и нужно использовать тот-же примитив документа. В ДемоБД есть примеры и по первому и по второму вопросу.
Learn, learn and learn better than work, work and work.
|
Written on: 08. 12. 2011 [12:06]
|
yozhik
Алексей Николаев
registered since: 29.11.2010
Posts: 127
|
"punk" wrote:
- можно ли менять time произвольно или при уменьшении нужно еще что-то делать?
Сегодня попробовал поработать с виджетом Protocol и тоже возникли проблемы при навигации. При изменении параметра time то отображается правильное количество сообщения за указанный tSize, то вообще пустой список вываливает, то вываливает на много больше, чем в tSize задано. Это системная проблема и данный виджет 100% не стоит использовать для навигации по архиву? С Protocol симпатичнее получается решение вопроса отображения сообщений с минимумом навигации, чем с виджетом doc. Да и попроще.
|
Written on: 08. 12. 2011 [12:23]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"yozhik" wrote:
Сегодня попробовал поработать с виджетом Protocol и тоже возникли проблемы при навигации. При изменении параметра time то отображается правильное количество сообщения за указанный tSize, то вообще пустой список вываливает, то вываливает на много больше, чем в tSize задано. Это системная проблема и данный виджет 100% не стоит использовать для навигации по архиву?
Алгоритм оптимизации не предусматривает произвольного выбора.
Я лично не использую его для навигации.
"yozhik" wrote:
С Protocol симпатичнее получается решение вопроса отображения сообщений с минимумом навигации, чем с виджетом doc. Да и попроще.
Да прямо! Вы примеры в ДемоБД вообще смотрели?
Learn, learn and learn better than work, work and work.
|
Written on: 08. 12. 2011 [12:40]
|
yozhik
Алексей Николаев
registered since: 29.11.2010
Posts: 127
|
"roman" wrote:
Да прямо! Вы примеры в ДемоБД вообще смотрели?
Не только смотрел, но уже и использовал в предыдущих (и текущем) проектах. Но это мое субъективное мнение и оно может не совпадает с Вашим и остальных. Для отображения архива сообщений с минимальными навигационными функциями (без каких-либо дополнительных расчетов) мне Protocol кажеться проще и удобнее.
|
Written on: 08. 12. 2011 [22:20]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
Работа примитива "Протокол" исправлена!
Learn, learn and learn better than work, work and work.
|
Written on: 09. 12. 2011 [02:08]
|
yozhik
Алексей Николаев
registered since: 29.11.2010
Posts: 127
|
Спасибо. А есть возможность сделать язык надписей в заголовках колонок виджета Protocol русский без правки исходных текстов?Часто заказчики требуют чтобы все надписи всегда были на русском.
|
Written on: 09. 12. 2011 [07:49]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"yozhik" wrote:
Спасибо. А есть возможность сделать язык надписей в заголовках колонок виджета Protocol русский без правки исходных текстов?Часто заказчики требуют чтобы все надписи всегда были на русском.
В русской локали запустить.
Learn, learn and learn better than work, work and work.
|
Written on: 11. 12. 2011 [18:00]
|
yozhik
Алексей Николаев
registered since: 29.11.2010
Posts: 127
|
"roman" wrote:
В русской локали запустить.
Поставил локаль. В скаде в поле Language ввожу ru_RU.UTF-8 - язык сразу меняется. Проект сохраняю. Но при следующем запуске в поле Language опять значение en_US:en. Как сделать чтобы настройка языка сохранялась?
И второй вопрос. Как идеологически правильно сделать, чтобы при открытии отчетов, графиков и протоколов справа автоматически появлялась соответствующая панель управления? На ум приходит два способа: отправить сообщение InFocus от имени встроенного виджета и принудительная установка флага pgOpen соответствующего окна панели управления. Такое автоматическое открытие намеренно сейчас не реализовано в библиотеке виджета DemoStation?
|
Written on: 11. 12. 2011 [20:44]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"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.
|