(Updating to match new version of source page) |
|||
Line 5: | Line 5: | ||
</div> | </div> | ||
− | + | This update of the [[Special:MyLanguage/Documents/Release_0.9|0.9 LTS release]] fixes about 70 bugs and appends MANY improvements with several of significant-conceptual ones, which you can read wholly in [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3013 the update ChangeLog]. | |
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Linux Дистрибутив Автоматизації проєкту OpenSCADA]]}} | {{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Linux Дистрибутив Автоматизації проєкту OpenSCADA]]}} | ||
Line 39: | Line 39: | ||
* доповнення [[Special:MyLanguage/Libs/Main|сторінки основної бібліотеки]] описом нових шаблонів. | * доповнення [[Special:MyLanguage/Libs/Main|сторінки основної бібліотеки]] описом нових шаблонів. | ||
− | {{CntHdr| | + | {{CntHdr|New and significantly updated parts}} |
− | * | + | * OpenSCADA Core: 3:14:0 => '''3:15:0''' |
− | : ([[#Upd8ControlObjProp| | + | : ([[#Upd8ControlObjProp|Implementing properties of the Control Objects]], [[#Upd8ControlObjACL|Implementing the custom ACLs to the control nodes]], [[#Upd8InitCon|Implementing initiative connections]], [[#Upd8ExpProjMan|Expanding the project management]], [[#Upd8MessTrFix|Messages Translation — fixes of the conceptual changes of the previous updates]]) |
− | * | + | * OpenSCADA "Transports" subsystem: 20 => '''21''' |
* DAQ.DAQGate: 2.13 => '''2.14''' | * DAQ.DAQGate: 2.13 => '''2.14''' | ||
* Archive.FSArch: 3.8 => '''3.9''' | * Archive.FSArch: 3.8 => '''3.9''' | ||
* Transport.SSL: 4.5 => <b style="color: red">5.1</b> | * Transport.SSL: 4.5 => <b style="color: red">5.1</b> | ||
− | : ([[#Upd8SSLSockAddrResolv| | + | : ([[#Upd8SSLSockAddrResolv|Unification and overriding the address resolving in different ways]]) |
* Transport.Sockets: 4.8 => <b style="color: red">5.0</b> | * Transport.Sockets: 4.8 => <b style="color: red">5.0</b> | ||
− | : ([[#Upd8SSLSockAddrResolv| | + | : ([[#Upd8SSLSockAddrResolv|Unification and overriding the address resolving in different ways]]) |
* Protocol.OPC_UA: 2.2 => '''2.3''' | * Protocol.OPC_UA: 2.2 => '''2.3''' | ||
− | : ([[#Upd8OPC_UA| | + | : ([[#Upd8OPC_UA|True authentication with control the permission]]) |
* Protocol.HTTP: 3.8 => '''3.9''' | * Protocol.HTTP: 3.8 => '''3.9''' | ||
* UI.QTCfg: 6.0 => '''6.1''' | * UI.QTCfg: 6.0 => '''6.1''' | ||
Line 56: | Line 56: | ||
* UI.Vision: 9.1 => '''9.4''' | * UI.Vision: 9.1 => '''9.4''' | ||
* UI.WebUser: 1.6 => <b style="color: red">2.0</b> | * UI.WebUser: 1.6 => <b style="color: red">2.0</b> | ||
− | : ([[#Upd8WebUserExt| | + | : ([[#Upd8WebUserExt|Expanding for support direct writing]]) |
* UI.WebVision: 6.9 => '''6.13''' | * UI.WebVision: 6.9 => '''6.13''' | ||
* UI.WebCfgD: 2.6 => '''2.7''' | * UI.WebCfgD: 2.6 => '''2.7''' | ||
Line 64: | Line 64: | ||
* LibsDB.OscadaLibs.LowDevLib: 1.5 => '''1.6''' | * LibsDB.OscadaLibs.LowDevLib: 1.5 => '''1.6''' | ||
:* S1BP: <b style="color: red">1.0</b> | :* S1BP: <b style="color: red">1.0</b> | ||
− | :* 1W: <b style="color: red"> | + | :* 1W: <b style="color: red">2.1</b> |
:* UC96: 1.0 => '''1.2''' | :* UC96: 1.0 => '''1.2''' | ||
* LibsDB.OscadaLibs.DevLib: 3.0 => '''3.1''' | * LibsDB.OscadaLibs.DevLib: 3.0 => '''3.1''' | ||
Line 73: | Line 73: | ||
:* doc_panel: 1.2 => '''1.3''' | :* doc_panel: 1.2 => '''1.3''' | ||
:* storeHouse: 1.4 => <b style="color: red">2.0</b> | :* storeHouse: 1.4 => <b style="color: red">2.0</b> | ||
− | :: ([[#Upd8StoreHouse| | + | :: ([[#Upd8StoreHouse|Added file inclusion and image preview]]) |
* LibsDB.vcaTest.test.docTestGasNodeDayRep: 1.0 => '''1.1''' | * LibsDB.vcaTest.test.docTestGasNodeDayRep: 1.0 => '''1.1''' | ||
Line 110: | Line 110: | ||
** Результат успішного повернення-виходу процесу примусово встановлено у EXIT_SUCCESS, а для відмови у EXIT_FAILURE. | ** Результат успішного повернення-виходу процесу примусово встановлено у EXIT_SUCCESS, а для відмови у EXIT_FAILURE. | ||
− | {{CntHdr|{{Anch|Upd8MessTrFix| | + | {{CntHdr|{{Anch|Upd8MessTrFix|CONCEPTUAL > Messages Translation (fixes of the [[Special:MyLanguage/Documents/Release_0.9#MessTrFix|conceptual changes of the previous updates]]) }} }} |
− | * LibsDB.OscadaLibs: | + | * LibsDB.OscadaLibs: Automatic updating some translation. |
− | * | + | * LibsDB.vcaBase.wlb_Main: |
− | * | + | ** Appended of the dynamic messages with Ukrainian translation for main ones of DiskSMART and UPS during representing by "Object properties (objProps)". |
− | * SYS,DAQ,UI.VCAEngine: | + | ** anShow,anShow1: Appended of translation dynamic messages from parameter attributes NAME and DESCR. |
− | ** SYS,DAQ,DB.{FireBird,MySQL,ODBC,PostgreSQL,SQLite}: | + | ** FIX:RootPgSo: The attribute "Procedure of the Demo play (demoPlayProc)" set to the type "Text (translate)". |
− | ** TVal: | + | * SYS,DAQ,UI.VCAEngine: Implementing of disabling translation of string configuration fields, DAQ attributes, UI attributes at changing in the dynamic execution: |
− | ** UI.VCAEngine::Attr: | + | ** SYS,DAQ,DB.{FireBird,MySQL,ODBC,PostgreSQL,SQLite}: appending the unified method ''{TCfg,TVal}::isTransl()'' of checking translation the element, and moving on its everywhere; |
− | ** | + | ** TVal: appending the "mNoTransl" flag and functions of its treating: ''noTransl()'', ''setNoTransl()'', ''TValue::setNoTransl()''; |
− | *** | + | * FIX:SYS: TMess: Appending messages to the table "Trs" is enabled only in the messages level Debug, for preventing flooding to the table of any translated messages and not. |
− | *** | + | ** UI.VCAEngine::Attr: appending the "NoTransl" flag and its treating in ''isTransl()''; |
− | *** UI.VCAEngine: | + | ** translation is disabled: |
− | ** | + | *** at writing through links of implementation the templates in ''TPrmTempl::Impl::lnkOutput()''; |
− | * FIX:DAQ.OPC_UA,Protocol.HTTP,UI.{QTCfg,Vision}: | + | *** at the User API call ''TVal::set()''; |
− | * FIX: | + | *** UI.VCAEngine: at Widget attribute change in the Session context for widgets in processing and at writing to DAQ attribute by links. |
− | ** FIX: | + | ** the DAQ Parameters added of restoring the translation of dynamically changed configuration fields at load. |
− | ** FIX: | + | * FIX:DAQ.OPC_UA,Protocol.HTTP,UI.{QTCfg,Vision}: Fixing and improving some original messages. |
− | ** FIX:DAQGate: | + | * FIX:DAQ: Fixing-finishing the dynamic translation for title of the controller and parameter object. |
− | ** FIX:JavaLikeCalk: | + | ** FIX: Templates fixed-adapted to the dynamic translation in using the IO names. |
− | * FIX:Protocol.OPC_UA: | + | ** FIX: Fixing-finishing the dynamic translation of values requesting in the Control Request '''TValue::"get:/serv/attr"''' for non archiving elements. |
− | * FIX:UI.{QTCfg,Vision}: | + | ** Parameter templates allowed in setting empty names for their translation clearing in the dynamic translation mode. |
− | * FIX:UI.VCAEngine: | + | ** FIX:DAQGate: Some fixed in Ukrainian translation. |
− | ** FIX: | + | ** FIX:JavaLikeCalk: Some improved in the translation. |
+ | * FIX:Protocol.OPC_UA: Adaption to the dynamic translation in data requests. | ||
+ | * FIX:UI.{QTCfg,Vision}: The messages "Load from DB" and "Save to DB" renamed to "Load" and "Save" and with "storage" instead "DB" in full messages. | ||
+ | * FIX:UI.VCAEngine: The session User API function ''this.attr()'' fixed in checking the translation flag TFld::TransltText. | ||
+ | ** FIX: Templates fixed-adapted to the dynamic translation in using the configuration template of the attributes. | ||
− | {{CntHdr|OpenSCADA | + | {{CntHdr|OpenSCADA libraries and projects}} |
* FIX:LibsDB.OscadaLibs: | * FIX:LibsDB.OscadaLibs: | ||
− | ** tmplib_DevLib: | + | ** tmplib_DevLib: Appended by the template "Ergomera 125 (ergomera125)" with initial implementation the own protocol and documenting. |
− | *** mbBase: | + | *** mbBase: Expanded for support Input Registers by function 4. |
− | *** FIX:VSE002: | + | *** FIX:VSE002: Rewrote in the packages sequential reading mode, that is detection all packages with notifying unknown. |
− | *** FIX:Incubator: | + | *** FIX:Incubator: Fixing value of the 'Transport (transport)' field. |
− | ** tmplib_LowDevLib: | + | ** tmplib_LowDevLib: Appended by the template "BT: ATORCH S1BP (S1BP)" with documenting and completed translation to Ukrainian. |
− | *** | + | *** Appended by the template "1-Wire (1W)", which merged from 1W_DS9097 and 1W_DS9097U before appending I2C Drivers and expanded by an option "Only add attributes at scan", with documenting and completed translation to Ukrainian. Adding of support the I2C Driver DS2482-100 and some improving with fixing. |
− | *** UC96: | + | *** UC96: Expanded for support ATORCH UD24. Expanded by reading: "Volts maximum (Vup)", "Volts minimum (Vdwn)", "Data+, V (Dplus)", "Data-, V (Dminus)". |
− | ** FIX:tmplib_base.fileServerHTTP: | + | ** FIX:tmplib_base.fileServerHTTP: Expanded of big data transferring in chunks by the direct writing function ''writeTo()''. For that appended by the attributes: "Transport (tr)", "Protocol (prt)" and "Sender (sender)". |
− | ** FIX:flb_doc.diagram: | + | ** FIX:flb_doc.diagram: Adding of drawing non periodic direct data like months. Implementing of rounding big interval points by the Besier Cubic Curves. |
* LibsDB.vcaBase: | * LibsDB.vcaBase: | ||
** wlb_Main: | ** wlb_Main: | ||
− | *** grph_panel,doc_panel: | + | *** grph_panel,doc_panel: Adding of checking for activity the controlled trend or document, and closing at its inactivity. Moving in the size-depth field to the editable combobox with the digital number and human text multiplier, based on the new User API function ''time2str()'' and ''str2time()'', that is removing the type field here. |
− | *** docRepDay,docRepMonth,docUsersSet,docRepInstVals,docDin,docRep2WorkSh,docAlarmsRep,docMessRep: | + | *** docRepDay,docRepMonth,docUsersSet,docRepInstVals,docDin,docRep2WorkSh,docAlarmsRep,docMessRep: Adaptation to opening the document control panel after several seconds of starting-opening, that is for allowing the document control at displaying by QtWebengine. |
− | *** grpGraph,grpCadr,doc_panel,grph_panel,prescrEdit,prescrRun,prescrRunSimple,accept,treeSelect,calendar,userManager,alarmsStReport,docRepDay,docRepMonth,docRepYear},wlb_prescr.{prescrEdit,prescrRun,prescrRunSimple: | + | *** grpGraph,grpCadr,doc_panel,grph_panel,prescrEdit,prescrRun,prescrRunSimple,accept,treeSelect,calendar,userManager,alarmsStReport,docRepDay,docRepMonth,docRepYear},wlb_prescr.{prescrEdit,prescrRun,prescrRunSimple: The variable ''ev_cur'' renamed to ''evCur''. |
− | *** {{Anch|Upd8StoreHouse|storeHouse}}: | + | *** {{Anch|Upd8StoreHouse|storeHouse}}: Expanded by support of including files both to the MySQL LONGTEXT field and to FS. Appending preview the loaded images in the form and the item report. |
− | *** FIX:grpGraph10: | + | *** FIX:grpGraph10: Fixed in the "geomZ" attribute for the included widgets "el9" and "el10". |
− | *** FIX:RootPgSo: | + | *** FIX:RootPgSo: Improved by pause the demo-procedure's execution at no requests on WEB, so preventing of opening all pages before real close. The direct pages list append by checking the pages permission. |
− | *** FIX:grpGraph: | + | *** FIX:grpGraph: Fixed in the "geomZ" attribute for the "trnd1" and "arh" included widgets. |
− | *** FIX:weather: | + | *** FIX:weather: Appending by icons of representing different states. Fixed in guaranty receiving the hourly data at the connection problems. |
− | *** treeSelect: | + | *** treeSelect: Updating icon of the frame with improving the name. |
− | ** wlb_doc.docRepYear: | + | ** wlb_doc.docRepYear: Switching the direct data drawing on the diagram to the non periodic mode. |
− | * LibsDB.vcaTest.wlb_test.docTestGasNodeDayRep: | + | * LibsDB.vcaTest.wlb_test.docTestGasNodeDayRep: Adaptation to opening the document control panel at setting the "pgOpen" attribute and not setting the "pgOpen" attribute in the panel, due to the document is archiving, that is for allowing the document control at displaying by QtWebengine. |
* ModelsDB.AGLKS: | * ModelsDB.AGLKS: | ||
− | ** wlb_doc.{docRepMonth,docRepDay}: | + | ** wlb_doc.{docRepMonth,docRepDay}: Set to no process periodically. |
− | ** wlb_test.docTestGasNodeDayRep: | + | ** wlb_test.docTestGasNodeDayRep: Set to process with period 10 seconds. |
{{CntHdr|API}} | {{CntHdr|API}} |
Revision as of 09:31, 17 March 2025
- Стан: тестування та після-складання ...
Загальний процес випуску користувачам для оцінки ваших очікувань та розробникам для нагадування завдань:
1. Тиждень приготування та складання:
- Складання останньої Робочої (Work) SVN-ревізії для всіх оточень нерегулярного складання щоб забезпечити ранне та широке тестування прийдешнього LTS релізу.
- Анонс початку процесу випуску:
- створення нової сторінки релізу або сторінки оновлення на Wiki;
- створення нової новини-сторінки на сайті OpenSCADA.
- Злиття змін Робочої (Work) версії або копіювання цілком дерева Робочої гілки до LTS гілки-дерева.
- Внесення деяких змін, специфічних до LTS, стосовно підняття версії:
- оновлення configure.ac щодо версії випуску-оновлення та бібліотеки ядра;
- оновлення data/*.spec та data/{debian,debian_mod}/changelog стосовно нового номеру версії та доповнення протоколу змін файлів новими записами випуску-оновлення.
- Формування-доповнення ПротоколуЗмін LTS змінами з ПротоколуЗмін Work, групуючи зміни за розташуванням та сортуючи їх за станом виправлення та рівнем, із комбінування нових можливостей у одному елементі та без видалення будь-яких відмінних змін.
- Копіювання значних змін із сформованого ПротоколуЗмін LTS до відповідної сторінки релізу-оновлення, беручи зміни за рівнем більш або рівні "!!".
- Переклад сторінки(ок) релізу-оновлення, оновлення "Завдання (ToDo)" та "Дорожньої карти (RoadMap)".
- Генерація актуальної позамережевої документації, використовуючи сервісну процедуру "EXT: Off-line documentation".
- Застосування-вивантаження змін LTS дерева до репозиторію та складання цього.
2. Тиждень(і) тестування та після-складання:
- Оновлення сторінки Завантаження.
- Анонсування релізу-оновлення, також на FaceBook і LinkedIn.
- Гаряче тестування збірок релізу.
- Завершення та виправлення перекладу ПротоколуЗмін та документації.
- Генерація актуальної позамережевої документації використовуючи сервісну процедуру "EXT: Off-line documentation".
- Застосування-вивантаження виправлень релізу до репозиторію та складання цього щодо другої збірки, і для кожного тижня виправлення критичних помилок — перший тиждень без критичних виправлень означатиме завершення випуску LTS, тож, КОРИСТУВАЧІ — тестуйте ретельно LTS реліз щоб потім не скаржитись на його кінцеву збірку!
- Оновлення бінарних копій стандартних бібліотек OpenSCADA: OscadaLibs.db, VcaBase.db, VcaElectroEls.db.
This update of the 0.9 LTS release fixes about 70 bugs and appends MANY improvements with several of significant-conceptual ones, which you can read wholly in the update ChangeLog.
Linux Дистрибутив Автоматизації проєкту OpenSCADA
- оновлення TDE до 14.1.3, а також складання латаного для Debian 8,10 ARMHF;
- відновлення запуску nm-applet у системному лотку і видалення пакету "raspi-firmware" із встановлень Debian 12;
- формалізація часткового відгалуження TDE за підпроєктом — the Linux Дистрибутив Автоматизації проєкту OpenSCADA;
- TDE > tdebase-trinity > Konqueror: Запобігання інколи дублюванню елементів у елементі вкладки "Система (system:/)" через подвійний виклик setOpen(true);
- TDE > tdebase-trinity > QuickLauncher: Завершення виправлення появи у QuickLauncher порожніх елементів після видалення якогось елементу, що пов'язано із вставленням вже відсутнього desktop-файлу (після деінсталяції програми) із популярностей;
- TDE > krusader-trinity: Запобігання примусовому блокуванню змонтованих медіа-тек після зміни локальної директорії на віддалену-віртуальну, шляхом зміни локальної теки у Дім. Також запобігання течі пам'яті на виклику функції getcwd(0, 0) без звільнення її результату;
- TDE > krusader-trinity: Запобігання очищенню панелі із переліком елементів спільної теки SMB після перейменування елементу через отримання другої чи третьої події result() від IO-Slave, тобто оновлення панелі зараз відкладено на 0.5 секунди після перейменування;
- TDE > tdebase-trinity > KDesktop: Запобігання повного заморожування KDesktop на очікуванні Рушія Зберігача протягом біля хвилини після пробудження, через виключення використання sigsuspend() при очікуванні "mSaverProcessReady" де достатньо виклику tqApp->processEvents();
- TDE > tdelibs-trinity > DCOP: Переключення внутрішніх інтервальних таймерів на сучасну структуру "timespec" і Монотонний лічильник у основі, що зробило DCOP нечутливим до стрибків реального часу, особливо при пробуджені;
- TDE > tqt3-trinity: Повне переключення Qt3 інтервальних таймерів (QTimer) на сучасну структуру "timespec" і Монотонний лічильник у основі, що зробило Qt3 нечутливим до стрибків реального часу, особливо при пробуджені;
- TDE > kaffeine-trinity: Додання підтримки медіа-формату WEBM;
- TDE > tdelibs-trinity > MIME: Додання підтримки медіа-формату WEBM;
- xine-lib: Переключення "display_queue.mutex" у Відео виході на рекурсивний режим для запобігання зависань у xine_new_framegrab_video_port();
- TDE > tdemultimedia-trinity > XineThumbnails: У Картинках до Відео від Xine вимкнено Аудіо від xine_new_framegrab_audio_port() і відкориговано передачу кольору. На додаток до запобігання мертвим блокуванням у Xine;
- TDE > tdelibs-trinity > TDE IO: Встановлення часу очікування підключення підлеглого SLAVE_CONNECTION_TIMEOUT_MIN із 2 у 10 для запобігання помилок відсутності підлеглого FILE на загалом повільному обладнані і HDD/SSD із повільними секторами;
- TDE > tdeadmin-trinity > KPackage: Доповнення меню "APT Додаткове" елементами: "Очищення (apt-get clean)", "Автовидалення (apt-get autoremove)";
- TDE > tqt3-trinity: Запобігання зависанням на креслені помилкових образів символів у TQTextEngine, помічено у KCharSelect на сторінці 15;
- TDE > tdelibs-trinity: Виправлення підставлення коректного року у kdatepicker відповідно до обраної Календарної Системи;
- TDE > kdiff3-trinity: Перемикання адрес у меню плагіну на гарний вигляд замість кодування UTF-8 символів рідних локалей;
- TDE > tqt3-trinity: Пом'якшення ефекту високого-повного навантаження ЦП із генерацією Незавершених подій від інтерфейсу GLib до серверу X11, що яскраво проявляється на digikam-showfoto, або qtwaittimer, що виявлено на kdesktop-screensaver при пробуджені, і шляхом додання короткого очікування у 1мс після опрацювання подій;
- TDE > amarok-trinity: Запобігання шуму із високим навантаженням ЦП особливо на старих-повільних системах протягом виконання у системному лотку перед відкриттям вікна ПерелікуПрогравання, через помилковий фоновий запуск аналізаторів при зміні періодичності анімації;
- TDE > tdebase-trinity > MediaManager: Додання перемикання використання /etc/fstab або утилітою монтування на кшталт udisks або загальною програмою монтування. І воно корисне як для FD, так і CD/DVD/BLURAY, оскільки udisks[2] не монтує їх без запису у /etc/fstab;
- TDE > tdebase-trinity > MediaManager: Виправлення невідповідності у назві піктограм для CD-R і CD-RW у tdeioslave (14.0.10 на Debian 7);
- TDE > kaffeine-trinity: Виправлення програвання DVD версіями XINE, які не розуміють URM "dvd://", лише "dvd:/";
- TDE > tdebase-trinity > Kate: Повернення зламаних сеансів із 14.0.
Основні WWW-ресурси, документація проєкту і підпроєктів
- доповнення сторінки бібліотеки промислових пристроїв описом нових шаблонів;
- доповнення сторінки бібліотеки низькорівневих сенсорів та чипів описом нових шаблонів;
- доповнення сторінки основної бібліотеки описом нових шаблонів.
New and significantly updated parts
- OpenSCADA Core: 3:14:0 => 3:15:0
- (Implementing properties of the Control Objects, Implementing the custom ACLs to the control nodes, Implementing initiative connections, Expanding the project management, Messages Translation — fixes of the conceptual changes of the previous updates)
- OpenSCADA "Transports" subsystem: 20 => 21
- DAQ.DAQGate: 2.13 => 2.14
- Archive.FSArch: 3.8 => 3.9
- Transport.SSL: 4.5 => 5.1
- Transport.Sockets: 4.8 => 5.0
- Protocol.OPC_UA: 2.2 => 2.3
- Protocol.HTTP: 3.8 => 3.9
- UI.QTCfg: 6.0 => 6.1
- UI.VCAEngine: 7.13 => 7.15
- UI.Vision: 9.1 => 9.4
- UI.WebUser: 1.6 => 2.0
- UI.WebVision: 6.9 => 6.13
- UI.WebCfgD: 2.6 => 2.7
- LibsDB.OscadaLibs.base: 2.2 => 2.3
- initRemCntr: 1.1
- fileServerHTTP: 1.0 => 1.2
- LibsDB.OscadaLibs.LowDevLib: 1.5 => 1.6
- S1BP: 1.0
- 1W: 2.1
- UC96: 1.0 => 1.2
- LibsDB.OscadaLibs.DevLib: 3.0 => 3.1
- ergomera125: 0.5
- mbBase: 1.2 => 1.3
- LibsDB.vcaBase.Main
- grph_panel: 1.5 => 1.6
- doc_panel: 1.2 => 1.3
- storeHouse: 1.4 => 2.0
- LibsDB.vcaTest.test.docTestGasNodeDayRep: 1.0 => 1.1
КОНЦЕПТУАЛЬНЕ > Реалізація властивостей Об'єктів Контролю
- Система: TCntrNode:
- Додання об'єктних властивостей у групах за префіксами для різних частин OpenSCADA: система (sys), користувач (usr), підключення (con), безпека (sec), ... .
- Додання Користувацької функції property() для доступу до об'єктних властивостей із контексту користувача на додачу до прямого-натурального шляху.
- Транспорти: Переведення параметрів підключення на об'єктні властивості у групі "con".
- Збір Даних: Переведення прапорців TValue resB1() і resB2() на об'єктні властивості у групі "DAQ", тобто видалення таких функцій.
КОНЦЕПТУАЛЬНЕ > Реалізація користувацького ACL до вузлів контролю
- Система:
- TCntrNode:
- нові функції nodeAccess(), nodeLoadACL(), nodeLoadACLSnthHgl();
- переведення із статичного із деяким вдосконаленням і адаптацією до ACL із сумісністю прямих правил для функцій інтерфейсу керування: ctrMkNode(), ctrMkNode2(), _ctrMkNode(), ctrChkNode();
- нові функції інтерфейсу керування для ACL: ctrMkNode3(), ctrChkNode2();
- _ctrMkNode() перемкнено у режим без виключення за відсутності контейнерних вузлів, просто не створювати і повертати NULL.
- TFld: cntrCmdMake() додано аргументом cntrO для зв'язування із Вузлом Контролю, і весь код адаптовано до цього.
- TConfig: cntrCmdMake() і cntrCmdProc() додано аргументом cntrO для зв'язування із Вузлом Контролю, і весь код адаптовано до цього.
- TCntrNode:
- Транспорти: TTransportS: cntrCmdPrm() додано аргументом cntrO для зв'язування із Вузлом Контролю, і весь код адаптовано до цього.
- Збір Даних: Ініціювальна адаптація до ACL у полях опису Об'єктів Контролеру і Параметру, типові власник-доступ для підсистеми Збір Даних встановлено у "root:DAQ"-0775.
- Protocol.OPC_UA: Використання ACL у перевірці доступу.
КОНЦЕПТУАЛЬНЕ > Концентрація різних OpenSCADA хостів на загальному сервері, як для ІнтернетРечей (IoT) на OpenSCADA, так і ні
- LibsDB.OscadaLibs:
- tmplib_base: Доповнено шаблоном "Контроль віддалених ініціативних підключень (initRemCntr)", із документуванням і повним перекладом українською.
- Доповнено користувачем "RemCntr" із паролем "RemCntr" і у групі DAQ для використання у ініціативних віддалених підключеннях до серверу OpenSCADA.
- Доповнено вимкненими транспортами "RemCntr" до Transport.Sockets і Transport.SSL, тобто якщо бажаєте надати дані вашої станції, ви просто вмикаєте один з них.
- ModelsDB/{AGLKS/oscada_AGLKS.xml,Boiler/oscada_Boiler.xml}: Видалення системних груп без користувачів, чим даючи можливість визначення груп у бібліотеках.
- FIX:Транспорти: TTransportOut доповнено функцією isFromInput() виявлення автоматично-створених об'єктів із вхідного транспорту. Зовнішні ініціативні підключення OpenSCADA хостів попереджено від зупинки.
КОНЦЕПТУАЛЬНЕ > Розширення менеджменту проєктів
- data/openscada-proj.in: Розширення командами snapshot, crash, cores із уніфікацією приготування звітів з аварійного завершення, також для обробки аварійного завершення від себе. Доповнення звітів з аварійного завершення викликом "info thread" і "info sharedlibrary".
- Переопрацювання алгоритму обробки проєктів у Системній і Користувацькій теці, тобто виправлення створення теки проєкту у Системній директорії за наявності Системного конфігураційного файлу.
- Система: Увімкнено у опрацюванні сигналів SIGFPE і SIGSEGV із викликом openscada-proj crash {ProjID} для приготування звіту з аварійного завершення негайно для SIGFPE, SIGABRT і SIGSEGV.
- Результат успішного повернення-виходу процесу примусово встановлено у EXIT_SUCCESS, а для відмови у EXIT_FAILURE.
CONCEPTUAL > Messages Translation (fixes of the conceptual changes of the previous updates)
- LibsDB.OscadaLibs: Automatic updating some translation.
- LibsDB.vcaBase.wlb_Main:
- Appended of the dynamic messages with Ukrainian translation for main ones of DiskSMART and UPS during representing by "Object properties (objProps)".
- anShow,anShow1: Appended of translation dynamic messages from parameter attributes NAME and DESCR.
- FIX:RootPgSo: The attribute "Procedure of the Demo play (demoPlayProc)" set to the type "Text (translate)".
- SYS,DAQ,UI.VCAEngine: Implementing of disabling translation of string configuration fields, DAQ attributes, UI attributes at changing in the dynamic execution:
- SYS,DAQ,DB.{FireBird,MySQL,ODBC,PostgreSQL,SQLite}: appending the unified method {TCfg,TVal}::isTransl() of checking translation the element, and moving on its everywhere;
- TVal: appending the "mNoTransl" flag and functions of its treating: noTransl(), setNoTransl(), TValue::setNoTransl();
- FIX:SYS: TMess: Appending messages to the table "Trs" is enabled only in the messages level Debug, for preventing flooding to the table of any translated messages and not.
- UI.VCAEngine::Attr: appending the "NoTransl" flag and its treating in isTransl();
- translation is disabled:
- at writing through links of implementation the templates in TPrmTempl::Impl::lnkOutput();
- at the User API call TVal::set();
- UI.VCAEngine: at Widget attribute change in the Session context for widgets in processing and at writing to DAQ attribute by links.
- the DAQ Parameters added of restoring the translation of dynamically changed configuration fields at load.
- FIX:DAQ.OPC_UA,Protocol.HTTP,UI.{QTCfg,Vision}: Fixing and improving some original messages.
- FIX:DAQ: Fixing-finishing the dynamic translation for title of the controller and parameter object.
- FIX: Templates fixed-adapted to the dynamic translation in using the IO names.
- FIX: Fixing-finishing the dynamic translation of values requesting in the Control Request TValue::"get:/serv/attr" for non archiving elements.
- Parameter templates allowed in setting empty names for their translation clearing in the dynamic translation mode.
- FIX:DAQGate: Some fixed in Ukrainian translation.
- FIX:JavaLikeCalk: Some improved in the translation.
- FIX:Protocol.OPC_UA: Adaption to the dynamic translation in data requests.
- FIX:UI.{QTCfg,Vision}: The messages "Load from DB" and "Save to DB" renamed to "Load" and "Save" and with "storage" instead "DB" in full messages.
- FIX:UI.VCAEngine: The session User API function this.attr() fixed in checking the translation flag TFld::TransltText.
- FIX: Templates fixed-adapted to the dynamic translation in using the configuration template of the attributes.
OpenSCADA libraries and projects
- FIX:LibsDB.OscadaLibs:
- tmplib_DevLib: Appended by the template "Ergomera 125 (ergomera125)" with initial implementation the own protocol and documenting.
- mbBase: Expanded for support Input Registers by function 4.
- FIX:VSE002: Rewrote in the packages sequential reading mode, that is detection all packages with notifying unknown.
- FIX:Incubator: Fixing value of the 'Transport (transport)' field.
- tmplib_LowDevLib: Appended by the template "BT: ATORCH S1BP (S1BP)" with documenting and completed translation to Ukrainian.
- Appended by the template "1-Wire (1W)", which merged from 1W_DS9097 and 1W_DS9097U before appending I2C Drivers and expanded by an option "Only add attributes at scan", with documenting and completed translation to Ukrainian. Adding of support the I2C Driver DS2482-100 and some improving with fixing.
- UC96: Expanded for support ATORCH UD24. Expanded by reading: "Volts maximum (Vup)", "Volts minimum (Vdwn)", "Data+, V (Dplus)", "Data-, V (Dminus)".
- FIX:tmplib_base.fileServerHTTP: Expanded of big data transferring in chunks by the direct writing function writeTo(). For that appended by the attributes: "Transport (tr)", "Protocol (prt)" and "Sender (sender)".
- FIX:flb_doc.diagram: Adding of drawing non periodic direct data like months. Implementing of rounding big interval points by the Besier Cubic Curves.
- tmplib_DevLib: Appended by the template "Ergomera 125 (ergomera125)" with initial implementation the own protocol and documenting.
- LibsDB.vcaBase:
- wlb_Main:
- grph_panel,doc_panel: Adding of checking for activity the controlled trend or document, and closing at its inactivity. Moving in the size-depth field to the editable combobox with the digital number and human text multiplier, based on the new User API function time2str() and str2time(), that is removing the type field here.
- docRepDay,docRepMonth,docUsersSet,docRepInstVals,docDin,docRep2WorkSh,docAlarmsRep,docMessRep: Adaptation to opening the document control panel after several seconds of starting-opening, that is for allowing the document control at displaying by QtWebengine.
- grpGraph,grpCadr,doc_panel,grph_panel,prescrEdit,prescrRun,prescrRunSimple,accept,treeSelect,calendar,userManager,alarmsStReport,docRepDay,docRepMonth,docRepYear},wlb_prescr.{prescrEdit,prescrRun,prescrRunSimple: The variable ev_cur renamed to evCur.
- storeHouse: Expanded by support of including files both to the MySQL LONGTEXT field and to FS. Appending preview the loaded images in the form and the item report.
- FIX:grpGraph10: Fixed in the "geomZ" attribute for the included widgets "el9" and "el10".
- FIX:RootPgSo: Improved by pause the demo-procedure's execution at no requests on WEB, so preventing of opening all pages before real close. The direct pages list append by checking the pages permission.
- FIX:grpGraph: Fixed in the "geomZ" attribute for the "trnd1" and "arh" included widgets.
- FIX:weather: Appending by icons of representing different states. Fixed in guaranty receiving the hourly data at the connection problems.
- treeSelect: Updating icon of the frame with improving the name.
- wlb_doc.docRepYear: Switching the direct data drawing on the diagram to the non periodic mode.
- wlb_Main:
- LibsDB.vcaTest.wlb_test.docTestGasNodeDayRep: Adaptation to opening the document control panel at setting the "pgOpen" attribute and not setting the "pgOpen" attribute in the panel, due to the document is archiving, that is for allowing the document control at displaying by QtWebengine.
- ModelsDB.AGLKS:
- wlb_doc.{docRepMonth,docRepDay}: Set to no process periodically.
- wlb_test.docTestGasNodeDayRep: Set to process with period 10 seconds.
API
!!!!:Зміни:
- Система: Тип змінних обмеження "limUserFile_SZ", "limUserIts_N" змінено у беззнакове.
- TCntrNode: переведення зі статичного із перейменуванням деяких аргументів: ctrMkNode(), ctrMkNode2(), _ctrMkNode(), ctrChkNode(). Зміна прототипу функції objPropSet() у аргументі "val".
- TVal: Переведення у константу для fld().
- TFld: До cntrCmdMake() додано аргумент "cntrO" із перейменуванням деяких аргументів.
- TConfig: До cntrCmdMake() і cntrCmdProc() додано аргумент "cntrO" із перейменуванням деяких аргументів.
- Безпека: Перейменування аргументу "access" функції TSecurity::access() у "perm", також для Користувацького API.
- Транспорти: До TTransportS::cntrCmdPrm() додано аргумент "cntrO".
- Збір Даних: Переведення прапорців TValue resB1() і resB2() до властивостей об'єкту у групі "DAQ", тобто видалення таких функцій.
Доповнення:
- Система: Доповнення функцією sysTmJmp(), як варіант sysTm().
- Доповнення визначенням "DEF_HTaskPer".
- TError: Нова помилка "Tr_ErrUnknown".
- TCfg,TVal: Новий уніфікований метод isTransl().
- TVal: Нові функції: noTransl(), setNoTransl().
- TValue: Нова функція setNoTransl().
- TCntrNode: Нові функції: nodeAccess(), nodeLoadACL(), nodeLoadACLSnthHgl(), ctrMkNode3(), ctrChkNode2(), property(), propertyClrGrp(). Додання функції Користувацького API property().
- Доповнення параметром обмеження "limObjDscr_SZ" для конфігураційних полів опису (DESCR).
- Додання функції str2time() із розбором людського часу від time2str(), яку також доповнено аргументом "inParts".
- Додання нових функцій Користувацького API із представлення системних у просторі користувача: time2str(), cpct2str(), str2time().
- XMLNodeObj: getElementsBy() і її варіант Користувацького API розширено аргументами "limit" і "from".
- Mess: Додання глобальних функцій міток labTime(), labTimeSel().
- Транспорти: TTransportOut доповнено функцією isFromInput().
Система
- Складання:
- configure.ac: Підняття версії бібліотеки ядра до 3:15:0 і версії програми до 0.9.8. Підняття версії модулів підсистеми "Транспорти" до 21.
- acinclude.m4: Макрос autoconf AX_LIB_MYSQL додано використанням PKG_CONFIG за наявності конфігураційного файлу, для складання із MySQL у оточеннях крос-компіляції з бінарним mysql_config або mariadb_config. Видалення зайвих макросів: AX_LIB_SQLITE3, BNV_HAVE_QT. Деяке покращення макросу AX_LIB_POSTGRESQL.
- data/{debian,debian_mod}: Додання "openscada-server.service" і "openscada-plc.service", також закоментованим записом "dh_installsystemd" у "rules", і що переключено до використання у Debian 12,11,10 і Ubuntu 24.04,22.04,20.04. Додання MySQL типову залежність "default-libmysqlclient-dev".
- FIX:LibsDB.OscadaLibs.tmplib_base.fileServerHTTP,UI.WebVision: Уніфіковано обробку передачі даних у послідовності: діапазони медіа у заголовку, великі дані шматками, простий одинокий пакет для малих даних.
- Archive.{MessArchive,MessArchiver,ValArchive},DAQ: Переведення у полі розміру-глибини Інтерфейсу Керування на редагований комбобокс із чисельним номером і множником людським текстом, засновано на новій функції Користувацького API time2str() і str2time().
- .,DAQ.{BlockCalc,JavaLikeCalc},Protocol.{ModBus,OPC_UA,UserProtocol},UI.{VCAEngine,WebUser}: Доповнено параметром обмеження "limObjDscr_SZ" для конфігураційних полів опису (DESCR) із типовим значенням 1000 і діапазоном [300...1000000].
- DAQ.{LogicLev,ModBus,OPC_UA,Siemens},UI.{QTCfg,WebCfgD}: Реалізація замовлення значення часу оновлення конфігураційного інтерфейсу обчислювальних об'єктів, задля оновлення після опрацювання об'єкту.
- FIX:Transports,Protocols: Уніфікація генерації помилок у викликах messProtIO() і його варіанті Користувацького API messIO(XMLNodeObj req, string prt) згідно документації, тобто обов'язково із кодом помилки.
- Параметри командного рядка доповнено отриманням типового значення зі змінної оточення "OSCADA_{cmd}", що саме вмикається змінною оточення "OSCADA_CMD_EN".
Бази Даних
- FIX:SQLite: Код помилки SQLITE_CORRUPT додано до перепідключення файлу БД, оскільки ця помилка може виникати зі зміною структури файлу БД із зовнішнього джерела.
Збір Даних
- FIX: Виправлено виявлення віддалених архівів для тимчасово порожніх, тобто які не мають джерела.
- DAQGate: Вдосконалення алгоритму виявлення архівів із наданням інформаційного поля з переліком архівованих атрибутів.
- FIX:ModBus: Виправлено повним опрацюванням рядків із кодуванням, тобто реєстрація усіх регістрів. Запит даних вдосконалено для TCP варіанту щодо очікування хвосту до першого пакету будь якого розміру, тобто не лише MBAP заголовку розміром у 7 байтів.
Архіви-Історія
- Архіви значень доповнено виявленням подвійних посилань і видаленням їх усіх.
- FSArch: Функцію розпакування архівів доповнено уніфікацією повідомлень про помилку і можливістю видалення помилкових архівів, наразі лише при перевірці архівних файлів значень.
Транспорти
- Елементи Логу ВВ доповнено розміром повного пакету (або агрегацією) і типовий час агрегації встановлено у 1 секунду. Використання змін "ReqTm", "ReqMode", "ToTmOut", "InBufSz", "ReqAnsw" переміщено у власний простір об'єкту транспорту.
- Sockets,SSL: TTransSock::getAddr() перейменовано у TTransSock::addrGet() і вирішення адрес переміщено до нової функції TTransSock::addrResolve() із прямим вирішенням статичних адрес і динамічним вирішенням за допомогою gethostbyname(), оскільки getaddrinfo() має проблеми із повторним входженням (на старих системах), та глобальне блокування призводить до тривалих зависань на усіх адресах за проблем із DNS. Також доповнено параметром "--getaddrinfo" для увімкнення його собі.
- FIX: Вирішення важко-вловимої проблеми підставки помилкової адреси протягом вирішення адрес у getservbyname_r() від іншого потоку, тобто від GLibC 2.24 примушено використання getaddrinfo(), як більш коректного, або inet_pton() + блокований getservbyname_r() на старих системах.
- FIX:SSL: Виправлено опрацювання відповідей вихідних транспортів для ініціативних підключень, особливо для відсутності відповіді.
- Доповнено реалізацією TTransportIn::writeTo() із переведенням на карту у триманні структури SSockIn.
- Вхідну частину транспортів переключено на використання уніфікованого TTransSock::addrResolve() для попереднього вирішення усіх динамічних адрес і передачі готових статичних до BIO_new_accept().
Транспортні Протоколи
- OPC_UA: Реалізація правильної автентифікації із перевіркою доступу до DAQ-Вузлів для користувача:
- libOPC_UA: реалізація автентифікації через UA::Server::EP::sessActivate() і властивість "identTkn", із якої береться користувач у атрибуті "userAuthenticated" і він записується до "UA::Server::Sess::{user,idPolicyId}";
- libOPC_UA: усі запити даних за reqData() доповнено у "req" атрибутом "sesTokId" із ідентифікатором сеансу і для доступу до користувача тут;
- доповнення конфігураційним полем "Анонімний користувач" для представлення анонімної автентифікації.
- HTTP: Доповнено загальною функцією передавання будь якого методу до WEB-модулів — HTTP().
Інтерфейс Користувача
- FIX:Vision,WebVision: Реалізація округлення великих інтервалів точок Кривими Кубічної Безіє. Виправлення обчислення нижньої межі вертикальної шкали.
- VCAEngine,Vision,WebVision: Тип Зображення примітиву Медіа доповнено атрибутом "Зберігати співвідношення за вписування (keepAspect)".
- FIX:VCAEngine,Vision: Додання опції у вкладці "Стилі" проєкту із контролем запису до стилів у контексті виконання. І запис до стилів вимкнено на боці проєкту.
- FIX:WebVision: Запит даних ресурсів додано підтримкою шматків для великих даних і перетворення лише для малих зображень. Тип Збереження кнопок доповнено підтримкою діапазонів медіа зі збереженням даних у контексті WebVision для повторних спроб.
- WebUser: Переключено на загальну функію HTTP() перенесення із Protocol.HTTP. Доповнено опціональним атрибутом "Транспорт (tr)" процедур обробки і шаблонів, отриманий із об'єкту протоколу. Атрибут "Результат (rez)" дозволено у порожньому значені для запобігання надсилання будь якої відповіді, що передбачає прямий запис із TTransportIn::writeTo().
- QTCfg: Кнопки Назад і Вперед розширено меню прямого доступу елементів.
- FIX:Vision: Запобігання відмові повноекранного режиму за деяких умов XOrg, коли Qt-прапорець повного екрану випадково очищається, тобто прапорець було продубльовано всередині. Часто відтворюється із Qt6 на Debian 12.
- WebCfgD: Розширено виклик pageRefresh() інтеграцією часу затримки.