EnglishУкраїнськаmRussian
Login/New
Topic with many replies

Попытка "адаптации" OpenSCADA к QNX 6.5


Author Message
Written on: 21. 05. 2018 [10:06]
mr_dsv
Сергій Дорошка
Contributor
Topic creator
registered since: 31.10.2012
Posts: 31
"mr_dsv" wrote:

"roman" wrote:

Собственно, заменил isspace() своей реализацией...

Проверю после выходных.

Проверил. Теперь локализация в "Паспорте" в QT интерфейсе правильная.

Побороть бы еще "однократное" открытие "Паспорта" в QT 4.8.7 ...
Written on: 21. 05. 2018 [20:24]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
"mr_dsv" wrote:

"mr_dsv" wrote:

"roman" wrote:

Собственно, заменил isspace() своей реализацией...

Проверю после выходных.

Проверил. Теперь локализация в "Паспорте" в QT интерфейсе правильная.

OK, только не локализация, а нет лишней обрезки.

"mr_dsv" wrote:

Побороть бы еще "однократное" открытие "Паспорта" в QT 4.8.7 ...

Думаю не только паспорта, а любого внешнего окна.

Вы собираетесь Qt4 патчить, поскольку это похоже в ней?

Для начала:
- Диалоговые окна в редакторе интерфейса всегда открываются?
- Поглядите на открытие страницы паспорта в сеансе, когда его реально не видно.
- Добавьте в код паспорта участок и поглядите что происходит в этой ситуации:
JAVASCRIPT
if(f_start) this.messInfo("Open page");
if(f_stop) this.messInfo("Close page");

- И уже потом патч и смотреть физический вызов окна в UI.Vision:
--- vis_run_widgs.cpp (revision 2548)
+++ vis_run_widgs.cpp (working copy)
@@ -646,6 +649,7 @@
//Check for open child page or for unknown and empty source pages open as master page child windows
if((pgGrp.empty() && pgSrc == id()) || this == mainWin()->master_pg) {
RunPageView *pg = new RunPageView(pg_it, mainWin(), this, Qt::Tool);
+ printf("TEST 00 '%s'\n", pg_it.c_str());
pg->setAttribute(Qt::WA_DeleteOnClose);
//pg->load("");
//pg->moveF(QCursor::pos());


Learn, learn and learn better than work, work and work.
Written on: 22. 05. 2018 [14:53]
mr_dsv
Сергій Дорошка
Contributor
Topic creator
registered since: 31.10.2012
Posts: 31
Закомментировал pg->setAttribute(Qt::WA_DeleteOnClose); в указанном Вами месте и "Паспорт" стал открываться "каждый раз"...
Видимо "коныки" порта QT 4.8.7 от SWD ...


[This article was edited 1 times, at last 22.05.2018 at 14:54.]
Written on: 24. 05. 2018 [07:11]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
"mr_dsv" wrote:

Закомментировал pg->setAttribute(Qt::WA_DeleteOnClose); в указанном Вами месте и "Паспорт" стал открываться "каждый раз"...
Видимо "коныки" порта QT 4.8.7 от SWD ...

Главное чтобы закрывался и удалялся, а не накапливался, что собственно и без этой строки осуществляется.
Поэтому закомментировал её для всех.

P.S. Что дальше планируете с адаптацией делать, точнее с попыткой? :)
P.P.S. Может уже время не пытаться, а систематизировать сделанное и обрисовать следующие задачи?
P.P.P.S. Иначе вроде и результатов никаких нет. С созданием пакетов бинарных сборок QNX, кстати, не разбирались?

Learn, learn and learn better than work, work and work.
Written on: 25. 05. 2018 [14:37]
mr_dsv
Сергій Дорошка
Contributor
Topic creator
registered since: 31.10.2012
Posts: 31
Пока вынужден "снизить темп"...
1. Личное...
2. Текущее состояние портов QT для Photon QNX 6.5 от SWD (и 4.8.7 и 5.5.1) не позволяют использовать OpenSCADA для "промышленного применения".
На QT 5.5.1 интерфейс может "зависнуть" на каком нибудь предупреждающем диалоге ...
В QT 4.8.7 такого пока не "поймал", но вот к примеру если закрыть окно сеанса с помощью кнопки закрытия окна (Photon-вского), то сеанс "остается жить". При попытке к нему снова подключится через диалог выбора сеансов - QT закрывается с "ругательствами" (см. скрин)
Если сеанс закрыть через меню или hotkey, то он закрывается нормально.
Attachment

QNX 6.5 SP1-2018-05-25-14-33-36.png (File type: image/png, Size: 225.75 kilobytes) — 1487 downloads
Written on: 29. 05. 2018 [08:59]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
"mr_dsv" wrote:

Пока вынужден "снизить темп"...
1. Личное...

Понятно.

"mr_dsv" wrote:

2. Текущее состояние портов QT для Photon QNX 6.5 от SWD (и 4.8.7 и 5.5.1) не позволяют использовать OpenSCADA для "промышленного применения".
На QT 5.5.1 интерфейс может "зависнуть" на каком нибудь предупреждающем диалоге ...

Эти порты там кто-то вообще сейчас правит?
Собственно GUI на QNX, как HardRealTime, я думаю не очень актуален. Для него более актуально — среда исполнения ПЛК, про что Вы упоминали вокруг 6.6, что хотел удалённо поглядеть.

"mr_dsv" wrote:

В QT 4.8.7 такого пока не "поймал", но вот к примеру если закрыть окно сеанса с помощью кнопки закрытия окна (Photon-вского), то сеанс "остается жить". При попытке к нему снова подключится через диалог выбора сеансов - QT закрывается с "ругательствами" (см. скрин)
Если сеанс закрыть через меню или hotkey, то он закрывается нормально.

Если это на кадре с анимацией то возможно это недавно исправленная проблема с deleteLater().

P.S. Включил, кстати, предыдущее исправление и добавил аргумент командной строки для указания кодировки консоли.

Learn, learn and learn better than work, work and work.
Written on: 06. 06. 2018 [15:30]
mr_dsv
Сергій Дорошка
Contributor
Topic creator
registered since: 31.10.2012
Posts: 31
"roman" wrote:

Эти порты там кто-то вообще сейчас правит?
Собственно GUI на QNX, как HardRealTime, я думаю не очень актуален. Для него более актуально — среда исполнения ПЛК, про что Вы упоминали вокруг 6.6, что хотел удалённо поглядеть.

Ну периодически выходят обновления...
Как по мне неплохо бы было иметь надежный QT GUI под QNX 6.5.
Про QNX 6.6 я писал, что там нет Photon-а. Там все через Screen выводится в графике. В общем мне пока не нужно...

"roman" wrote:

"mr_dsv" wrote:

В QT 4.8.7 такого пока не "поймал", но вот к примеру если закрыть окно сеанса с помощью кнопки закрытия окна (Photon-вского), то сеанс "остается жить". При попытке к нему снова подключится через диалог выбора сеансов - QT закрывается с "ругательствами" (см. скрин)
Если сеанс закрыть через меню или hotkey, то он закрывается нормально.

Если это на кадре с анимацией то возможно это недавно исправленная проблема с deleteLater().

Нет. Для версии OpenSCADA 0.9+r2551 и QT 4.8.7 проблема осталась...

"roman" wrote:

... и добавил аргумент командной строки для указания кодировки консоли.

Работает прекрасно. Но один раз допустил ошибку в кодовой странице, написал 1251 вместо CP1251 и OpenSCADA "упала". Может там есть возможность проверять, чего в параметре "подсунули"...

Нашел еще одно место при работе с QTCfg. (см. скрин)
Если выбрать страницу из списка через pop-up меню (правой клавишей мыши), то все хорошо - переходим на следующий уровень и т.д.
Но если выбрать страницу двойным щелчком мыши, то переход на следующий уровень происходит, после чего OpenSCADA "падает".
Ситуация воспроизводится в обоих портах (4.8.7 и 5.5.1)
GDB "говорит" что проблема в QAbstractItemView::mouseDoubleClickEvent(QMouseEvent*)
Вначале думал что проблема со стеком, но не похоже, т.к. увеличивал стек для потоков до 16Мбайт.
PS: В других местах при работе со списком "двойной щелчек" отрабатывает нормально.
Attachment

QNX 6.5 SP1-2018-06-06-14-57-26.png (File type: image/png, Size: 186.89 kilobytes) — 1422 downloads
Written on: 06. 06. 2018 [19:19]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
"mr_dsv" wrote:

Как по мне неплохо бы было иметь надежный QT GUI под QNX 6.5.
Про QNX 6.6 я писал, что там нет Photon-а. Там все через Screen выводится в графике. В общем мне пока не нужно...

Одно другому не мешает, тем более работа в режиме сервера это уже галочка в цепи задач адаптации и тут можно говорить про некий факт работы на QNX.

"mr_dsv" wrote:

Нет. Для версии OpenSCADA 0.9+r2551 и QT 4.8.7 проблема осталась...

Вложите отчёт о падении тут.

"mr_dsv" wrote:

Работает прекрасно. Но один раз допустил ошибку в кодовой странице, написал 1251 вместо CP1251 и OpenSCADA "упала". Может там есть возможность проверять, чего в параметре "подсунули"...

Собственно там вылезла рекурсия, когда процедура ругается на ошибку iconv(), а сама эта ругань опять попадает под перекодировку.
Убрал там сообщения об ошибках перекодировки, теперь молча возвращает исходное сообщение.

"mr_dsv" wrote:

Нашел еще одно место при работе с QTCfg. (см. скрин)
Если выбрать страницу из списка через pop-up меню (правой клавишей мыши), то все хорошо - переходим на следующий уровень и т.д.
Но если выбрать страницу двойным щелчком мыши, то переход на следующий уровень происходит, после чего OpenSCADA "падает".
Ситуация воспроизводится в обоих портах (4.8.7 и 5.5.1)
GDB "говорит" что проблема в QAbstractItemView::mouseDoubleClickEvent(QMouseEvent*)

Это скорее старое место и теперь понятно почему оно было сделано без записи перехода в список возврата.
Совместил, теперь попадает и в список возврата и переключает страницу через таймаут.

P.S. Все последние изменения "вылью" уже на следующей неделе, перед выделением отдельной ветви 0.9 LTS.

Learn, learn and learn better than work, work and work.
Written on: 30. 07. 2019 [15:47]
ignusius
Александр Комаров
registered since: 24.09.2015
Posts: 14
"mr_dsv" wrote:

Пытаюсь "заставить" работать OpenSCADA-у на QNX 6.5. Пока скорее из "любопытства"...
1. версия 0.8.13 (пробовал также добавлять исправления из 0.8.14 в правленые мной файлы)
2. Система запускается и "работает" (пока без QT) - только web.
3. Пока работаешь с системой от имени пользователя не входящего в группу "root" все хорошо. Запускаются WebCfg, WebCfgD, WebVision.
4. Если зарегистрироваться пользователем из группы "root" скады, то при попытке войти в WebCfg, WebCfgD - OpenSCADA "падает".
Описанное показано в приложенном видео.

В каком месте (хоть примерно) может быть проблема?


mr_dsv, что в итоге? Если всё ок, может поделитесь наработками ?
Written on: 31. 07. 2019 [08:14]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
"ignusius" wrote:

mr_dsv, что в итоге? Если всё ок, может поделитесь наработками ?

Сергей и выгружал свои изменения в этом треде, а исправления после прямо в OpenSCADA и попали!

А вообще, там нужна системная адаптация с созданием и фиксацией процесса на странице подпроекта, чего Сергей делать не захотел, а я персонально и не могу, точнее это возможно только под финансирование, поскольку та "чудо ОС", после заявлений об открытости в 2002, в настоящее время не доступна для свободной загрузки и некоммерческого использования. А как они сами заявляют, после моего письма им на предмет ситуации с BlackBerry в прошлом году — их всякий industrial opensource не интересует.

Из планов около QNX — я собственно и адаптирую OpenSCADA для работы на нём в лице устаревшей и жалкой BlackBerry PlayBook, если оно не сильно криво, остальное только через прямое финансирование, после выпуска 0.9.1 LTS с функцией поддержки ключей в бинарных сборках, распространяемых исключительно с коммерческой ТП.

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



5788