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

[BugFixed] Отслеживание ошибок


Автор Повідомлення
Повідомлення створено: 09. 02. 2009 [19:54]
dmitry
dmitry ilyin
Автор теми
Зареєстрован(а) с: 09.02.2009
Повідомлення: 12
Здравствуйте!
Я - Дмитрий, инженер из Питера.
Натолкнулся на Вашу систему недели три тому назад в процессе медитации (самый простой способ - набор "SCADA Linux" в поиске) и попробовал построить простенький прикладной проект.
Вопрос: почему базовый виджет для отображения событийного архива (Protocol) странно ведет себя при ненулевом значении свойства "период слежения"?
А именно, после автообновления через указанное количество секунд полученный набор сообщений добавляется в конец таблицы а не заменяет его (экспериментировал с разными базами данных и разными периодами автообновления). Или я что-то недопонял, или имеет место...
Извините, в исходниках разбираться времени нет. Надеюсь, информация не останется незамеченной.
Да, и еще о графике.
Предлагаемые примитивы не всегда адекватно себя ведут при нарушении пропорций, а именно, исчезает заливка контура.

[Повідомлення редагувалось 1 раз(ів), останній раз 09.02.2009 в 20:02.]
Повідомлення створено: 09. 02. 2009 [21:12]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
dmitry wrote:

Натолкнулся на Вашу систему недели три тому назад в процессе медитации (самый простой способ - набор "SCADA Linux" в поиске) и попробовал построить простенький прикладной проект.
Вопрос: почему базовый виджет для отображения событийного архива (Protocol) странно ведет себя при ненулевом значении свойства "период слежения"?
А именно, после автообновления через указанное количество секунд полученный набор сообщений добавляется в конец таблицы а не заменяет его (экспериментировал с разными базами данных и разными периодами автообновления). Или я что-то недопонял, или имеет место...

Вообще то под слежением подразумевается сканирование архива сообщений на предмет новых сообщений и добавление их в начало, т.е. периодически смещается время запроса на текущее. Старые сообщения, внизу, удаляются по привышению глубины запроса, т.е. значения атрибута "Размер, сек" и всё.

dmitry wrote:

Да, и еще о графике.
Предлагаемые примитивы не всегда адекватно себя ведут при нарушении пропорций, а именно, исчезает заливка контура.

А тут детальнее, пожалуйста.

Learn, learn and learn better than work, work and work.
Повідомлення створено: 09. 02. 2009 [22:23]
dmitry
dmitry ilyin
Автор теми
Зареєстрован(а) с: 09.02.2009
Повідомлення: 12
По поводу списка сообщений.
Идея ясна, но что-то не так с запросом. Если отслеживаются новые, т.е. отсутствующие в отображаемом списке, сообщения, то похоже что-то с запросом, потому что одни и те же сообщения поступают в таблицу многократно (естественно с периодом слежения).
Пробовал генерить разные сообщения с помощью нескольких кнопок со средним периодом 2-10 сек. При малых значениях tSize (<1000) можно получить правильный результат, при tSize=3600 - нет (в самой базе - все отлично).
По поводу графики.
Эффект, замеченный мною очевиден. Рисую насос, используя замкнутую "arc". Заливаю круг ("fill") по 2-м точкам на манер виджета "El_d" из demo-проекта. При масштабе 1:1 - все в порядке (Qt). Максимизирую окно - происходит сжатие изображения по вертикали - и заливки нет. Сам для себя вышел из положения - залил 16-угольник. Возможно, я чего-то не понял в правилах использования примитива "fill". Честно говоря, набор примитивов кажется странным и слишком упрощенным. На мой взгляд, "вытащить" в сценарий QPainter (хотя бы частично) было бы логичнее.
Повідомлення створено: 10. 02. 2009 [09:05]
Maxim
Maxim Lisenko
Contributor
Зареєстрован(а) с: 18.08.2008
Повідомлення: 141
По поводу графики.
Напишите, пожалуйста, координаты той замкнутой дуги, у которой при масштабировании пропадает заливка. Это происходит во время исполнения проекта на QT? Не на WEB интерфейсе?
В примитиве "fill" в случае с замкнутой дугой должны быть указаны две идентичные точки(1 и 2 точки дуги по порядку).
А чем Вам кажется странным и почему слишком упрощенным набор примитивов? Какая, к примеру, задача не может быть решена, используя данный набор?
Повідомлення створено: 10. 02. 2009 [12:06]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
dmitry wrote:

По поводу списка сообщений.
Идея ясна, но что-то не так с запросом. Если отслеживаются новые, т.е. отсутствующие в отображаемом списке, сообщения, то похоже что-то с запросом, потому что одни и те же сообщения поступают в таблицу многократно (естественно с периодом слежения).
Пробовал генерить разные сообщения с помощью нескольких кнопок со средним периодом 2-10 сек. При малых значениях tSize (<1000) можно получить правильный результат, при tSize=3600 - нет (в самой базе - все отлично).

У меня работало хотя недолго. Там действительно была проблема в идентификации запроса сообщений сверху (новых), а не с низу (старых). Что приводило к очень большим запросам, при большой глубине, а значит тормозам. Поправил, тестю, вечером сброшу исправление в репозиторий.
dmitry wrote:

По поводу графики.
Честно говоря, набор примитивов кажется странным и слишком упрощенным. На мой взгляд, "вытащить" в сценарий QPainter (хотя бы частично) было бы логичнее.

А для объяснения этого есть концепция.

Learn, learn and learn better than work, work and work.
Повідомлення створено: 11. 02. 2009 [08:43]
dmitry
dmitry ilyin
Автор теми
Зареєстрован(а) с: 09.02.2009
Повідомлення: 12
На вопрос Максима Лысенко.
Вот сценарий:

arc: (5|50): (5|50): (50|50): (95|50): (50|5)::::
fill: (5|50): (5|50):::
line: (30|18 ): (85|50)::::
line: (85|50): (30|82)::::
line: (30|82): (30|18 )::::
fill: (30|18 ): (85|50): (30|82):c1::

Размеры виджета: 100х100. Масштаб при использовании: 1:1
Использовал "c1" для заливки внутреннего треугольника и "fillColor" для заливки круга. Эффект проявляется при выполнении в Qt. Заливка не исчезает сразу при изменении соотношения сторон страницы, но может нестабильно отрабатываться в динамике.
Замечено также, что если не назначать в сценарии принудительно толщину линий, то в процессе работы она может оказаться произвольной (по умолчанию должно, по всей видимости, использоваться значение "lineWdth").
Набор графических примитивов кажется слишком упрощенным из-за отсутствия традиционных rect, ellipse и polygon с возможностью указания стиля и цвета заливки. Вот был бы воистину удобный набор.
Повідомлення створено: 11. 02. 2009 [09:47]
Maxim
Maxim Lisenko
Contributor
Зареєстрован(а) с: 18.08.2008
Повідомлення: 141
Вы неправильно указали точки дуги:
у Вас: arc: (5|50): (5|50): (50|50): (95|50): (50|5)::::
нужно в этом случае: arc: (5|50): (5|50): (50|50): (50|5): (5|50):::::
Про расположение точек на дуге читайте здесь.
Что касается толщины линий, тут не совсем понял. Поясните конкретней. По умолчанию используется то значение, которое указано в Линия->ширина. Ширина линий масштабируется по минимальному из масштабов(по X и по У), но не может быть меньше "1".
А что мешает при помощи трех имеющихся примитивов сделать rect, ellipse(этот вообще уже есть(arc)) и polygon, добавить их в библиотеку и пользоваться?
Повідомлення створено: 15. 02. 2009 [08:26]
dmitry
dmitry ilyin
Автор теми
Зареєстрован(а) с: 09.02.2009
Повідомлення: 12
Максим, спасибо, вопрос с дугой снят.
А в остальном будем считать, что на вкус и цвет товарища нет.
Повідомлення створено: 16. 02. 2009 [08:38]
Maxim
Maxim Lisenko
Contributor
Зареєстрован(а) с: 18.08.2008
Повідомлення: 141
Да, собственно, были некоторые ньюансы в динамике, так что в Ваших словах была доля истины. Я поправил. Скорее всего сегодня все будет в репозитории. А вот с изменяющейся произвольно толщиной линий не понятно... Если действительно это имеет место, то давайте поподробней.
Повідомлення створено: 16. 02. 2009 [08:40]
Maxim
Maxim Lisenko
Contributor
Зареєстрован(а) с: 18.08.2008
Повідомлення: 141
Да, дугу можно задавать так, как это сделали Вы. Я просто так никогда не делал, поэтому сразу не сообразил...



4447