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

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


Автор Сообщение
Сообщение создано: 21. 05. 2018 [10:06]
mr_dsv
Сергей Дорошка
Contributor
Создатель темы
Зарегистрирован(а) с: 31.10.2012
Сообщения: 25
"mr_dsv" wrote:

"roman" wrote:

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

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

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

Побороть бы еще "однократное" открытие "Паспорта" в QT 4.8.7 ...
Сообщение создано: 21. 05. 2018 [20:24]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3679
"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.
Сообщение создано: 22. 05. 2018 [14:53]
mr_dsv
Сергей Дорошка
Contributor
Создатель темы
Зарегистрирован(а) с: 31.10.2012
Сообщения: 25
Закомментировал pg->setAttribute(Qt::WA_DeleteOnClose); в указанном Вами месте и "Паспорт" стал открываться "каждый раз"...
Видимо "коныки" порта QT 4.8.7 от SWD ...


[Сообщение редактировалось 1 раз(а), в последний раз 22.05.2018 в 14:54.]
Сообщение создано: 24. 05. 2018 [07:11]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3679
"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.
Сообщение создано: 25. 05. 2018 [14:37]
mr_dsv
Сергей Дорошка
Contributor
Создатель темы
Зарегистрирован(а) с: 31.10.2012
Сообщения: 25
Пока вынужден "снизить темп"...
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, то он закрывается нормально.
Вложенный файл

QNX 6.5 SP1-2018-05-25-14-33-36.png (Тип файла: image/png, Размер: 225.75 килобайт) — 948 загрузок
Сообщение создано: 29. 05. 2018 [08:59]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3679
"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.
Сообщение создано: 06. 06. 2018 [15:30]
mr_dsv
Сергей Дорошка
Contributor
Создатель темы
Зарегистрирован(а) с: 31.10.2012
Сообщения: 25
"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: В других местах при работе со списком "двойной щелчек" отрабатывает нормально.
Вложенный файл

QNX 6.5 SP1-2018-06-06-14-57-26.png (Тип файла: image/png, Размер: 186.89 килобайт) — 881 загрузок
Сообщение создано: 06. 06. 2018 [19:19]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3679
"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.
Сообщение создано: 30. 07. 2019 [15:47]
ignusius
Александр Комаров
Зарегистрирован(а) с: 24.09.2015
Сообщения: 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, что в итоге? Если всё ок, может поделитесь наработками ?
Сообщение создано: 31. 07. 2019 [08:14]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3679
"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.



11526