From OpenSCADAWiki
Jump to: navigation, search
(Updating to match new version of source page)
Line 1: Line 1:
 
<noinclude><languages/></noinclude>
 
<noinclude><languages/></noinclude>
<div style="float:right; border:1px solid gray; width:300px; padding:2px; margin-left: 10pt; margin-bottom: 10pt; ">
+
<!--<div style="float:right; border:1px solid gray; width:300px; padding:2px; margin-left: 10pt; margin-bottom: 10pt; ">
* '''Стан:''' <span style="color: red">тестування та після-складання ...</span>
+
* '''State:''' <span style="color:red">testing and post-building ...</span>
{{:Documents/How_to/Release/uk}}
+
{{:Documents/How_to/Release/en}}
</div>
+
</div>-->
  
Це оновлення [[Special:MyLanguage/Documents/Release_0.9|релізу 0.9 LTS]] виправляє біля 70 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3017 протоколі змін оновлення].
+
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=3021 the update ChangeLog].
  
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Linux Дистрибутив Автоматизації проєкту OpenSCADA]]}}
+
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]}}
* оновлення TDE до 14.1.3, а також складання латаного для Debian 8,10 ARMHF;
+
* the actual (Debian) TDE-repository was mirrored completely in used parts by the project with resigning all those packages by the OpenSCADA key, and that was performed in folders TDE14.1 for versions >= 9 and TDE14.0 for < 9. That is together with patched packages, which were moved to TDE14.0 for old Debian versions;
* відновлення запуску '''nm-applet''' у системному лотку і видалення пакету "raspi-firmware" із встановлень Debian 12;
+
* formalisation the partial TDE forking under the subproject — the [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#TDE|Automation Linux distributive of the project OpenSCADA]];
* формалізація часткового відгалуження TDE за підпроєктом — the [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#TDE|Linux Дистрибутив Автоматизації проєкту OpenSCADA]];
+
* updating TDE to 14.1.3 and building patched packages also for Debian 8,10 ARMHF;
* TDE > tdepowersave-trinity: Запобігання блокуванню-залипанню ознаки "blacklisted_running" після виконання однієї з програм у чорному переліку.
+
* restoring of starting '''nm-applet''' in the system tray and removing the "raspi-firmware" package from Debian 12 installations;
* TDE > basket-trinity: Виправлення не заміни обраних блоків у нотатку за вставлення RTE, просте додання перед блоком.
+
* ghostscript: Preventing of cleaning the transparent background setting in ''pdfi_create_DeviceRGB()'' by ''pdfi_setrgbfill(ctx)'' before, for true transparent backgrounds.
* TDE > tdepim-trinity > KOrganizer: Запобігання появі двох діалогів редагування елементу і нового елементу за подвійним клацанням на клітинці із елементами у місячному перегляді.
+
* TDE > tdegraphics-trinity > KSVG: Preventing of cycling the SVG-thumbnailer at NAN variable "th_arc" of some arcs.
* TDE > krusader-trinity: Виправлення оновлення панелі джерела за операцій переміщення.
+
* TDE > tdegraphics-trinity > KPDF: Updating the local copy of Poppler in KPDF for restoring loaded originally fill and stroke color, for true transparent backgrounds.
* TDE > tdebase-trinity > Konqueror: Запобігання інколи дублюванню елементів у елементі вкладки "Система (system:/)" через подвійний виклик ''setOpen(true)'';
+
* TDE > tqt3-trinity: Preventing QTextEdit crash at paste RTE with paragraphs to the begin, by updating the variable "lastFormatted".
* TDE > tdebase-trinity > QuickLauncher: Завершення виправлення появи у QuickLauncher порожніх елементів після видалення якогось елементу, що пов'язано із вставленням вже відсутнього desktop-файлу (після деінсталяції програми) із популярностей;
+
* TDE > tdepowersave-trinity: Preventing of locking-sticking the sign "blacklisted_running" after running one blacklisted program.
* TDE > krusader-trinity: Запобігання примусовому блокуванню змонтованих медіа-тек після зміни локальної директорії на віддалену-віртуальну, шляхом зміни локальної теки у Дім. Також запобігання течі пам'яті на виклику функції ''getcwd(0, 0)'' без звільнення її результату;
+
* TDE > basket-trinity: Fixing of no replacing selected blocks into note at pasting RTE, just appending before the block.
* TDE > krusader-trinity: Запобігання очищенню панелі із переліком елементів спільної теки SMB після перейменування елементу через отримання другої чи третьої події ''result()'' від IO-Slave, тобто оновлення панелі зараз відкладено на 0.5 секунди після перейменування;
+
* TDE > tdepim-trinity > KOrganizer: Preventing of appearing two dialogues of item editing and new item at double clicking on cell with items in the month view.
* TDE > tdebase-trinity > KDesktop: Запобігання повного заморожування KDesktop на очікуванні Рушія Зберігача протягом біля хвилини після пробудження, через виключення використання ''sigsuspend()'' при очікуванні "mSaverProcessReady" де достатньо виклику ''tqApp->processEvents()'';
+
* TDE > krusader-trinity: Fixing of refreshing source panel at moving operations.
* TDE > tdelibs-trinity > DCOP: Переключення внутрішніх інтервальних таймерів на сучасну структуру "timespec" і Монотонний лічильник у основі, що зробило DCOP нечутливим до стрибків реального часу, особливо при пробуджені;
+
* TDE > tdebase-trinity > Konqueror: Preventing of items sometime doubling in the tab item "System (system:/)" through doubly call ''setOpen(true)'';
* TDE > tqt3-trinity: Повне переключення Qt3 інтервальних таймерів (QTimer) на сучасну структуру "timespec" і Монотонний лічильник у основі, що зробило Qt3 нечутливим до стрибків реального часу, особливо при пробуджені;
+
* TDE > tdebase-trinity > QuickLauncher: Completing of fixing of appearance in QuickLauncher of empty-zero items after removing some item, what related with inserting already missing desktop-file (after uninstalling the application) from the popularity;
* TDE > kaffeine-trinity: Додання підтримки медіа-формату WEBM;
+
* TDE > krusader-trinity: Preventing of force locking mounted media-folders after changing local directory to remote-virtual one, in a way of changing the local folder to Home. Also preventing the memory leakage on call the function ''getcwd(0, 0)'' without freeing its result;
* TDE > tdelibs-trinity > MIME: Додання підтримки медіа-формату WEBM;
+
* TDE > krusader-trinity: Preventing of cleaning the panel with item list of a SMB share after item renaming through receiving second or third ''result()'' event from IO-Slave, that is the panel refresh is lagged now at 0.5 seconds after renaming;
* xine-lib: Переключення "display_queue.mutex" у Відео виході на рекурсивний режим для запобігання зависань у ''xine_new_framegrab_video_port()'';
+
* TDE > tdebase-trinity > KDesktop: Preventing of complete freezing KDesktop on waiting the Saver Engine during about one minute after wake up, by not use ''sigsuspend()'' for waiting "mSaverProcessReady" where enough to call ''tqApp->processEvents()'';
* TDE > tdemultimedia-trinity > XineThumbnails: У Картинках до Відео від Xine вимкнено Аудіо від ''xine_new_framegrab_audio_port()'' і відкориговано передачу кольору. На додаток до запобігання мертвим блокуванням у Xine;
+
* TDE > tdelibs-trinity > DCOP: Switching internal interval timers on the modern "timespec" structure and the Monotonic clock in the base, that is made DCOP insensitivity to jumps of the real time, especially at waking up;
* TDE > tdelibs-trinity > TDE IO: Встановлення часу очікування підключення підлеглого SLAVE_CONNECTION_TIMEOUT_MIN із 2 у 10 і SLAVE_CONNECTION_TIMEOUT_MAX із 10 у 30 для запобігання помилок відсутності підлеглого FILE на загалом повільному обладнані і HDD/SSD із повільними секторами;
+
* TDE > tqt3-trinity: Complete switching Qt3 interval timers (QTimer) on the modern "timespec" structure and the Monotonic clock in the base, that is made Qt3 insensitivity to jumps of the real time, especially at waking up;
* TDE > tdeadmin-trinity > KPackage: Доповнення меню "APT Додаткове" елементами: "Очищення ({{InLineCode|<nowiki>apt-get clean</nowiki>}})", "Автовидалення ({{InLineCode|<nowiki>apt-get autoremove</nowiki>}})";
+
* TDE > kaffeine-trinity: Appending support the WEBM media format;
* TDE > tqt3-trinity: Запобігання зависанням на креслені помилкових образів символів у TQTextEngine, помічено у KCharSelect на сторінці 15;
+
* TDE > tdelibs-trinity > MIME: Appending support the WEBM media format;
* TDE > tdelibs-trinity: Виправлення підставлення коректного року у kdatepicker відповідно до обраної Календарної Системи;
+
* xine-lib: Switching "display_queue.mutex" in Video out to the recursive mode for preventing hangs in ''xine_new_framegrab_video_port()'';
* TDE > kdiff3-trinity: Перемикання адрес у меню плагіну на гарний вигляд замість кодування UTF-8 символів рідних локалей;
+
* TDE > tdemultimedia-trinity > XineThumbnails: Audio Disabled by ''xine_new_framegrab_audio_port()'' and HUE corrected. In addition to preventing dead locks in Xine;
* TDE > tqt3-trinity: Пом'якшення ефекту високого-повного навантаження ЦП із генерацією Незавершених подій від інтерфейсу GLib до серверу X11, що яскраво проявляється на digikam-showfoto, або qtwaittimer, що виявлено на kdesktop-screensaver при пробуджені, і шляхом додання короткого очікування у 1мс після опрацювання подій;
+
* TDE > tdelibs-trinity > TDE IO: Setting the slave connection timeout of SLAVE_CONNECTION_TIMEOUT_MIN from 2 to 10 and SLAVE_CONNECTION_TIMEOUT_MAX from 10 to 30 for preventing errors of the FILE-slave missing on generally slow hardware and HDD/SSD with slow sectors;
* TDE > amarok-trinity: Запобігання шуму із високим навантаженням ЦП особливо на старих-повільних системах протягом виконання у системному лотку перед відкриттям вікна ПерелікуПрогравання, через помилковий фоновий запуск аналізаторів при зміні періодичності анімації;
+
* TDE > tdeadmin-trinity > KPackage: Adding the menu "APT Specials" by items: "Clean ({{InLineCode|<nowiki>apt-get clean</nowiki>}})", "Autoremove ({{InLineCode|<nowiki>apt-get autoremove</nowiki>}})";
* TDE > tdebase-trinity > MediaManager: Додання перемикання використання /etc/fstab або утилітою монтування на кшталт '''udisks''' або загальною програмою монтування. І воно корисне як для FD, так і CD/DVD/BLURAY, оскільки '''udisks[2]''' не монтує їх без запису у /etc/fstab;
+
* TDE > tqt3-trinity: Preventing hangs on rendering wrong char shapes in TQTextEngine, it was noticed in KCharSelect on page 15;
* TDE > tdebase-trinity > MediaManager: Виправлення невідповідності у назві піктограм для CD-R і CD-RW у tdeioslave (14.0.10 на Debian 7);
+
* TDE > tdelibs-trinity: Fixing of substitution correct year in the kdatepicker corresponding to the selected Calendar System;
* TDE > kaffeine-trinity: Виправлення програвання DVD версіями XINE, які не розуміють URM "dvd://", лише "dvd:/";
+
* TDE > kdiff3-trinity: Switching URLs in the plugin's menu to the pretty view instead encoding UTF-8 chars of native locales;
* TDE > tdebase-trinity > Kate: Повернення зламаних сеансів із 14.0.
+
* TDE > tqt3-trinity: Softening an effect of high-whole CPU loading at flooding Pending events from the GLib interface to the X11 server, what is brightly appeared on digikam-showfoto, or qtwaittimer, what detected on kdesktop-screensaver at wake up, by appending short waiting on 1ms after processing the events;
 +
* TDE > amarok-trinity: Preventing of flooding with high CPU loading especially on old-slow systems during execution in the system tray and before opening the PlayList window, due to the analysers are wrongly started in the background at changing the animation period;
 +
* TDE > tdebase-trinity > MediaManager: Appending of switching the /etc/fstab using whether by a util of mounting like to '''udisks''' or the generic mount program. And that is suitable both for FD and CD/DVD/BLURAY due to '''udisks[2]''' doesn't mount them without an entry in /etc/fstab;
 +
* TDE > tdebase-trinity > MediaManager: Fixing nonconformity in icon names for CD-R and CD-RW in tdeioslave (14.0.10 on Debian 7);
 +
* TDE > kaffeine-trinity: Fixing of playing DVD with XINE versions which misunderstand URM "dvd://", only "dvd:/";
 +
* TDE > tdebase-trinity > Kate: Reverting broken sessions from 14.0.
  
{{CntHdr|Основні WWW-ресурси, документація проєкту і підпроєктів}}
+
{{CntHdr|Main WWW-resources, documentation of the project and subprojects}}
* доповнення [[Special:MyLanguage/Libs/Devices|сторінки бібліотеки промислових пристроїв]] описом нових шаблонів;
+
* appending the [[Special:MyLanguage/Libs/Devices|Industrial devices library page]] by description new templates;
* доповнення [[Special:MyLanguage/Libs/LowLevelDevices|сторінки бібліотеки низькорівневих сенсорів та чипів]] описом нових шаблонів;
+
* appending the [[Special:MyLanguage/Libs/LowLevelDevices|Low level sensors and chips library page]] by description new templates;
* доповнення [[Special:MyLanguage/Libs/Main|сторінки основної бібліотеки]] описом нових шаблонів.
+
* appending the [[Special:MyLanguage/Libs/Main|Main library page]] by description new templates;
 +
* appending the How to [[Special:MyLanguage/Documents/How_to/Create_module|Create module]] by a chapter "Creating new Internal Elements and Libraries with them".
  
{{CntHdr|Нові та значно оновлені частини}}
+
{{CntHdr|New and significantly updated parts}}
* Ядро OpenSCADA: 3:14:0 => '''3:15:0'''
+
* OpenSCADA Core: 3:14:0 => '''3:15:0'''
: ([[#Upd8ControlObjProp|Реалізація властивостей Об'єктів Контролю]], [[#Upd8ControlObjACL|Реалізація користувацького ACL до вузлів контролю]], [[#Upd8InitCon|Реалізація ініціативних підключень]], [[#Upd8ExpProjMan|Розширення менеджменту проєктів]], [[#Upd8MessTrFix|Переклад Повідомлень виправлення концептуальних змін попередніх оновлень]])
+
: ([[#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: 20 => '''21'''
+
* OpenSCADA "Transports" subsystem: 20 => '''21'''
 +
* DAQ.JavaLikeCalc: 5.6 => '''5.8'''
 
* DAQ.DAQGate: 2.13 => '''2.14'''
 
* DAQ.DAQGate: 2.13 => '''2.14'''
* DAQ.JavaLikeCalc: 5.6 => '''5.7'''
+
* DAQ.ModBus: 3.8 => '''3.9'''
 
* 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'''
 +
* Protocol.ModBus: 2.10 => '''2.11'''
 
* UI.QTCfg: 6.0 => '''6.1'''
 
* UI.QTCfg: 6.0 => '''6.1'''
* UI.VCAEngine: 7.13 => '''7.16'''
+
* UI.VCAEngine: 7.13 => '''7.17'''
* UI.Vision: 9.1 => '''9.4'''
+
* UI.Vision: 9.1 => '''9.5'''
 
* 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.8'''
 
* UI.WebCfgD: 2.6 => '''2.8'''
Line 76: Line 84:
 
* LibsDB.vcaBase.Main
 
* LibsDB.vcaBase.Main
 
:* storeHouse: 1.4 => <b style="color: red">2.1</b>
 
:* storeHouse: 1.4 => <b style="color: red">2.1</b>
:: ([[#Upd8StoreHouse|Додано вкладення файлів і попередній перегляд зображень]])
+
:: ([[#Upd8StoreHouse|Added file inclusion and image preview]])
 
:* grph_panel: 1.5 => '''1.6'''
 
:* grph_panel: 1.5 => '''1.6'''
 
:* doc_panel: 1.2 => '''1.3'''
 
:* doc_panel: 1.2 => '''1.3'''
Line 89: Line 97:
 
* Збір Даних: Переведення прапорців TValue ''resB1()'' і ''resB2()'' на об'єктні властивості у групі "DAQ", тобто видалення таких функцій.
 
* Збір Даних: Переведення прапорців TValue ''resB1()'' і ''resB2()'' на об'єктні властивості у групі "DAQ", тобто видалення таких функцій.
  
{{CntHdr|{{Anch|Upd8ControlObjACL|КОНЦЕПТУАЛЬНЕ > Реалізація користувацького ACL до вузлів контролю}} }}
+
{{CntHdr|{{Anch|Upd8ControlObjACL|CONCEPTUAL > Implementing the custom ACLs to the control nodes}} }}
* Система:
+
* SYS:
 
** TCntrNode:
 
** TCntrNode:
*** нові функції ''nodeAccess()'', ''nodeLoadACL()'', ''nodeLoadACLSnthHgl()'';
+
*** new functions ''nodeAccess()'', ''nodeLoadACL()'', ''nodeLoadACLSnthHgl()'';
*** переведення із статичного із деяким вдосконаленням і адаптацією до ACL із сумісністю прямих правил для функцій інтерфейсу керування: ''ctrMkNode()'', ''ctrChkNode()'';
+
*** moving from static with some improving and adaption to ACL with compatibility of the direct rules for the functions of the control interface: ''ctrMkNode()'', ''ctrChkNode()'';
*** нове визначення-макрос інтерфейсу керування для ACL: ''ctrMkNode3()'' як посилання на ''ctrMkNode()'' із автоматичним аргументом переривання NULL, ''ctrChkNode2()'' як посилання на ''ctrChkNode()'';
+
*** new definition-macros of the control interface for ACL: ''ctrMkNode3()'' as link to ''ctrMkNode()'' with automatic NULL termination argument, ''ctrChkNode2()'' and ''ctrChkNode3()'' as link to ''ctrChkNode()'';
*** ''ctrMkNode()'' перемкнено у режим без виключення за відсутності контейнерних вузлів, просто не створювати і повертати NULL.
+
*** ''ctrMkNode()'' switched to no exception at missing container nodes, just don't create and return NULL.
** TFld: ''cntrCmdMake()'' додано аргументом ''cntrO'' для зв'язування із Вузлом Контролю, і весь код адаптовано до цього.
+
** TFld: ''cntrCmdMake()'' added by an argument ''cntrO'' for linking with the Control Node, and all code adapted to that.
** TConfig: ''cntrCmdMake()'' і ''cntrCmdProc()'' додано аргументом ''cntrO'' для зв'язування із Вузлом Контролю, і весь код адаптовано до цього.
+
** TConfig: ''cntrCmdMake()'' and ''cntrCmdProc()'' added by an argument ''cntrO'' for linking with the Control Node, and all code adapted to that.
* Транспорти: TTransportS: ''cntrCmdPrm()'' додано аргументом ''cntrO'' для зв'язування із Вузлом Контролю, і весь код адаптовано до цього.
+
* Transports: TTransportS: ''cntrCmdPrm()'' added by an argument ''cntrO'' for linking with the Control Node, and all code adapted to that.
* Збір Даних: Адаптація до ACL у полях опису Об'єктів Контролеру і Параметру, DAQ-Шаблонах і їх конфігурації, DAQ-Атрибутах, DAQ.DAQGate. Типові власник-доступ для підсистеми Збір Даних встановлено у "root:DAQ"-0775.
+
* DAQ: Adaptation to ACLs in the description fields of the Controller and Parameter Objects, DAQ-Templates, JavaLikeCalc Functions and most DAQ-Modules. Default owner-permition for the DAQ subsystem set to "root:DAQ"-0775.
* Protocol.OPC_UA: Використання ACL у перевірці доступу.
+
* Protocol.OPC_UA: Using ACL in checking the access.
  
 
{{CntHdr|{{Anch|Upd8InitCon|КОНЦЕПТУАЛЬНЕ > [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|Концентрація різних OpenSCADA хостів на загальному сервері, як для ІнтернетРечей (IoT) на OpenSCADA, так і ні]] }} }}
 
{{CntHdr|{{Anch|Upd8InitCon|КОНЦЕПТУАЛЬНЕ > [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|Концентрація різних OpenSCADA хостів на загальному сервері, як для ІнтернетРечей (IoT) на OpenSCADA, так і ні]] }} }}
Line 174: Line 182:
  
 
{{CntHdr|API}}
 
{{CntHdr|API}}
''!!!!:Зміни'':
+
''!!!!:Changes'':
* Система: Тип змінних обмеження "limUserFile_SZ", "limUserIts_N" змінено у беззнакове.
+
* SYS: Type of the limit variables "limUserFile_SZ", "limUserIts_N" changed to unsigned.
** TCntrNode: переведення зі статичного із перейменуванням деяких аргументів: ''ctrMkNode()'', ''ctrChkNode()''. Переведення ''ctrMkNode2()'' у визначення-макрос із автоматичним аргументом переривання NULL. Поєднання ''_ctrMkNode()'' до ''ctrMkNode()''. Зміна прототипу функції ''objPropSet()'' у аргументі "val".
+
** TCntrNode: Moving from static with renaming some arguments: ''ctrMkNode()'', ''ctrChkNode()''. Moving ''ctrMkNode2()'' to the definition-macros with automatic NULL termination argument. Merging ''_ctrMkNode()'' to ''ctrMkNode()''. Changing prototype of the ''objPropSet()'' function in the "val" argument.
** TVal: Переведення у константу для ''fld()''.
+
** TVal: Moving to constant for ''fld()''.
** TFld: До ''cntrCmdMake()'' додано аргумент "cntrO" із перейменуванням деяких аргументів.
+
** TFld: ''cntrCmdMake()'' added by an argument "cntrO" with renaming some arguments.
** TConfig: До ''cntrCmdMake()'' і ''cntrCmdProc()'' додано аргумент "cntrO" із перейменуванням деяких аргументів.
+
** TConfig: ''cntrCmdMake()'' and ''cntrCmdProc()'' added by an argument "cntrO" with renaming some arguments.
* Безпека: Перейменування аргументу "access" функції ''TSecurity::access()'' у "perm", також для Користувацького API.
+
** TMess: UTF symbol type in ''getUTF8()'' and ''setUTF8()'' changed from int32_t to uint32_t.
* Транспорти: До ''TTransportS::cntrCmdPrm()'' додано аргумент "cntrO".
+
* Security: Renaming the function ''TSecurity::access()'' argument "access" to "perm", also for User API.
* Збір Даних: Переведення прапорців TValue ''resB1()'' і ''resB2()'' до властивостей об'єкту у групі "DAQ", тобто видалення таких функцій.
+
* Transports: ''TTransportS::cntrCmdPrm()'' added by an argument "cntrO".
''Доповнення'':
+
* DAQ: Moving the TValue flags ''resB1()'' and ''resB2()'' to the object properties in group "DAQ", that is removing such functions.
* Система: Доповнення функцією ''sysTmJmp()'', як варіант ''sysTm()''.
+
''Appends'':
** Доповнення визначенням "DEF_HTaskPer".
+
* SYS: Appending the ''sysTmJmp()'' function as a variant of ''sysTm()''.
** TError: Нова помилка "Tr_ErrUnknown".
+
** Appended by the "DEF_HTaskPer" definition.
** TCfg,TVal: Новий уніфікований метод ''isTransl()''.
+
** TError: New errors: Tr_ErrUnknown, Prt_Unknown, Prt_ErrCommon, Prt_ErrParams.
** TVal: Нові функції: ''noTransl()'', ''setNoTransl()''.
+
** TCfg,TVal: New unified method ''isTransl()''.
** TValue: Нова функція ''setNoTransl()''.
+
** TVal: New functions: ''noTransl()'', ''setNoTransl()''.
** TCntrNode: Нові функції: ''nodeAccess()'', ''nodeLoadACL()'', ''nodeLoadACLSnthHgl()'', ''property()'', ''propertyClrGrp()'''; і нові визначення: ''ctrMkNode3()'', ''ctrChkNode2()''. Додання функції Користувацького API ''property()''.
+
** TValue: New function ''setNoTransl()''.
** Доповнення параметром обмеження "limObjDscr_SZ" для конфігураційних полів опису (DESCR).
+
** TCntrNode: New functions: ''nodeAccess()'', ''nodeLoadACL()'', ''nodeLoadACLSnthHgl()'', ''nodeDocSnthHgl()'', ''property()'', ''propertyClrGrp()''; and new definitions: ''ctrMkNode3()'', ''ctrChkNode2()'', ''ctrChkNode3()''. Adding a User API function ''property()''.
** Додання функції ''str2time()'' із розбором людського часу від ''time2str()'', яку також доповнено аргументом "inParts".
+
** Appended by the limiting option "limObjDscr_SZ" for the description configuration fields (DESCR).
** Додання нових функцій Користувацького API із представлення системних у просторі користувача: ''time2str()'', ''cpct2str()'', ''str2time()''.
+
** Adding function ''str2time()'' with parsing the human time from ''time2str()'', which added also by the "inParts" argument.
** XMLNodeObj: ''getElementsBy()'' і її варіант Користувацького API розширено аргументами "limit" і "from".
+
** Adding new User API functions with representing the system ones in the user space: ''time2str()'', ''cpct2str()'', ''str2time()''.
** Mess: Додання глобальних функцій міток ''labTime()'', ''labTimeSel()''.
+
** XMLNodeObj: ''getElementsBy()'' and its User API variant expanded by arguments "limit" and "from".
* Транспорти: TTransportOut доповнено функцією ''isFromInput()''.
+
** Mess: Adding the global label functions ''labTime()'', ''labTimeSel()''.
 +
* Transports: TTransportOut appended by the function ''isFromInput()''.
  
 
{{CntHdr|Система}}
 
{{CntHdr|Система}}
Line 239: Line 248:
 
* HTTP: Доповнено загальною функцією передавання будь якого методу до WEB-модулів — ''HTTP()''.
 
* HTTP: Доповнено загальною функцією передавання будь якого методу до WEB-модулів — ''HTTP()''.
  
{{CntHdr|Інтерфейс Користувача}}
+
{{CntHdr|User Interface}}
* FIX:Vision,WebVision: Реалізація округлення великих інтервалів точок Кривими Кубічної Безіє. Виправлення обчислення нижньої межі вертикальної шкали.
+
* FIX:Vision,WebVision: Implementing of rounding big interval points by the Besier Cubic Curves. Fixing of calculating bottom border for vertical scale.
* VCAEngine,Vision,WebVision: Тип Зображення примітиву Медіа доповнено атрибутом "Зберігати співвідношення за вписування (keepAspect)".
+
* VCAEngine,Vision,WebVision: The type Image of the primitive Media appended by the attribute "Keep aspect ratio at fitting (keepAspect)".
* FIX:VCAEngine,Vision: Додання опції у вкладці "Стилі" проєкту із контролем запису до стилів у контексті виконання. І запис до стилів вимкнено на боці проєкту.
+
* FIX:VCAEngine,Vision: Adding an option in the "Styles" tab of the projects with control the writing to styles in the execution context. And the writing to the styles disabled on the project side.
* FIX:WebVision: Запит даних ресурсів додано підтримкою шматків для великих даних і перетворення лише для малих зображень. Тип Збереження кнопок доповнено підтримкою діапазонів медіа зі збереженням даних у контексті WebVision для повторних спроб.
+
* FIX:WebVision: Requesting data of the resources added by support chunks for big data and conversion only for small images. The Save type of the buttons appended by support the media ranges with storing the data in WebVision context for retries.
* {{Anch|Upd8WebUserExt|WebUser}}: Переключено на загальну функію ''HTTP()'' перенесення із Protocol.HTTP. Доповнено опціональним атрибутом "Транспорт (tr)" процедур обробки і шаблонів, отриманий із об'єкту протоколу. Атрибут "Результат (rez)" дозволено у порожньому значені для запобігання надсилання будь якої відповіді, що передбачає прямий запис із ''TTransportIn::writeTo()''.
+
* {{Anch|Upd8WebUserExt|WebUser}}: Switched to the generic function ''HTTP()'' of transition from Protocol.HTTP. Appended by an optional attribute "Transport (tr)" of the processing procedures and templates, taken from the protocol object. The attribute "Result (rez)" allowed in empty value to prevent sending any response, that is meaning direct writing by ''TTransportIn::writeTo()''.
* QTCfg: Кнопки Назад і Вперед розширено меню прямого доступу елементів.
+
* QTCfg: The Back and Forward buttons expanded by a menu of the direct items accessing.
* FIX:Vision: Запобігання відмові повноекранного режиму за деяких умов XOrg, коли Qt-прапорець повного екрану випадково очищається, тобто прапорець було продубльовано всередині. Часто відтворюється із Qt6 на Debian 12.
+
* FIX:Vision: Preventing fullscreen mode fault in some XOrg conditions, when the fullscreen Qt-flag occasionally cleared, that is the flag was doubled internally. Reproduced often with Qt6 on Debian 12.
* VCAEngine: Доповнення надсиланням неопрацьованих повідомлень до сторінки, яка відкрила вихідну сторінку.
+
* VCAEngine: Appending of the not processed events sending to a page who opened the source page.
* WebCfgD: Розширено виклик ''pageRefresh()'' інтеграцією часу затримки.
+
* WebCfgD: Implementing of selection the group nodes with holding Control or Shift in the navigation tree and the group operations for deletion and setting. Expanding of call ''pageRefresh()'' by integrating the lag time.

Revision as of 10:03, 22 April 2025

Other languages:
English • ‎mRussian • ‎Українська

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.

Automation Linux distributive of the project OpenSCADA

  • the actual (Debian) TDE-repository was mirrored completely in used parts by the project with resigning all those packages by the OpenSCADA key, and that was performed in folders TDE14.1 for versions >= 9 and TDE14.0 for < 9. That is together with patched packages, which were moved to TDE14.0 for old Debian versions;
  • formalisation the partial TDE forking under the subproject — the Automation Linux distributive of the project OpenSCADA;
  • updating TDE to 14.1.3 and building patched packages also for Debian 8,10 ARMHF;
  • restoring of starting nm-applet in the system tray and removing the "raspi-firmware" package from Debian 12 installations;
  • ghostscript: Preventing of cleaning the transparent background setting in pdfi_create_DeviceRGB() by pdfi_setrgbfill(ctx) before, for true transparent backgrounds.
  • TDE > tdegraphics-trinity > KSVG: Preventing of cycling the SVG-thumbnailer at NAN variable "th_arc" of some arcs.
  • TDE > tdegraphics-trinity > KPDF: Updating the local copy of Poppler in KPDF for restoring loaded originally fill and stroke color, for true transparent backgrounds.
  • TDE > tqt3-trinity: Preventing QTextEdit crash at paste RTE with paragraphs to the begin, by updating the variable "lastFormatted".
  • TDE > tdepowersave-trinity: Preventing of locking-sticking the sign "blacklisted_running" after running one blacklisted program.
  • TDE > basket-trinity: Fixing of no replacing selected blocks into note at pasting RTE, just appending before the block.
  • TDE > tdepim-trinity > KOrganizer: Preventing of appearing two dialogues of item editing and new item at double clicking on cell with items in the month view.
  • TDE > krusader-trinity: Fixing of refreshing source panel at moving operations.
  • TDE > tdebase-trinity > Konqueror: Preventing of items sometime doubling in the tab item "System (system:/)" through doubly call setOpen(true);
  • TDE > tdebase-trinity > QuickLauncher: Completing of fixing of appearance in QuickLauncher of empty-zero items after removing some item, what related with inserting already missing desktop-file (after uninstalling the application) from the popularity;
  • TDE > krusader-trinity: Preventing of force locking mounted media-folders after changing local directory to remote-virtual one, in a way of changing the local folder to Home. Also preventing the memory leakage on call the function getcwd(0, 0) without freeing its result;
  • TDE > krusader-trinity: Preventing of cleaning the panel with item list of a SMB share after item renaming through receiving second or third result() event from IO-Slave, that is the panel refresh is lagged now at 0.5 seconds after renaming;
  • TDE > tdebase-trinity > KDesktop: Preventing of complete freezing KDesktop on waiting the Saver Engine during about one minute after wake up, by not use sigsuspend() for waiting "mSaverProcessReady" where enough to call tqApp->processEvents();
  • TDE > tdelibs-trinity > DCOP: Switching internal interval timers on the modern "timespec" structure and the Monotonic clock in the base, that is made DCOP insensitivity to jumps of the real time, especially at waking up;
  • TDE > tqt3-trinity: Complete switching Qt3 interval timers (QTimer) on the modern "timespec" structure and the Monotonic clock in the base, that is made Qt3 insensitivity to jumps of the real time, especially at waking up;
  • TDE > kaffeine-trinity: Appending support the WEBM media format;
  • TDE > tdelibs-trinity > MIME: Appending support the WEBM media format;
  • xine-lib: Switching "display_queue.mutex" in Video out to the recursive mode for preventing hangs in xine_new_framegrab_video_port();
  • TDE > tdemultimedia-trinity > XineThumbnails: Audio Disabled by xine_new_framegrab_audio_port() and HUE corrected. In addition to preventing dead locks in Xine;
  • TDE > tdelibs-trinity > TDE IO: Setting the slave connection timeout of SLAVE_CONNECTION_TIMEOUT_MIN from 2 to 10 and SLAVE_CONNECTION_TIMEOUT_MAX from 10 to 30 for preventing errors of the FILE-slave missing on generally slow hardware and HDD/SSD with slow sectors;
  • TDE > tdeadmin-trinity > KPackage: Adding the menu "APT Specials" by items: "Clean (apt-get clean)", "Autoremove (apt-get autoremove)";
  • TDE > tqt3-trinity: Preventing hangs on rendering wrong char shapes in TQTextEngine, it was noticed in KCharSelect on page 15;
  • TDE > tdelibs-trinity: Fixing of substitution correct year in the kdatepicker corresponding to the selected Calendar System;
  • TDE > kdiff3-trinity: Switching URLs in the plugin's menu to the pretty view instead encoding UTF-8 chars of native locales;
  • TDE > tqt3-trinity: Softening an effect of high-whole CPU loading at flooding Pending events from the GLib interface to the X11 server, what is brightly appeared on digikam-showfoto, or qtwaittimer, what detected on kdesktop-screensaver at wake up, by appending short waiting on 1ms after processing the events;
  • TDE > amarok-trinity: Preventing of flooding with high CPU loading especially on old-slow systems during execution in the system tray and before opening the PlayList window, due to the analysers are wrongly started in the background at changing the animation period;
  • TDE > tdebase-trinity > MediaManager: Appending of switching the /etc/fstab using whether by a util of mounting like to udisks or the generic mount program. And that is suitable both for FD and CD/DVD/BLURAY due to udisks[2] doesn't mount them without an entry in /etc/fstab;
  • TDE > tdebase-trinity > MediaManager: Fixing nonconformity in icon names for CD-R and CD-RW in tdeioslave (14.0.10 on Debian 7);
  • TDE > kaffeine-trinity: Fixing of playing DVD with XINE versions which misunderstand URM "dvd://", only "dvd:/";
  • TDE > tdebase-trinity > Kate: Reverting broken sessions from 14.0.

Main WWW-resources, documentation of the project and subprojects

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.JavaLikeCalc: 5.6 => 5.8
  • DAQ.DAQGate: 2.13 => 2.14
  • DAQ.ModBus: 3.8 => 3.9
  • Archive.FSArch: 3.8 => 3.9
  • Transport.SSL: 4.5 => 5.1
(Unification and overriding the address resolving in different ways)
  • Transport.Sockets: 4.8 => 5.0
(Unification and overriding the address resolving in different ways)
  • Protocol.OPC_UA: 2.2 => 2.3
(True authentication with control the permission)
  • Protocol.HTTP: 3.8 => 3.9
  • Protocol.ModBus: 2.10 => 2.11
  • UI.QTCfg: 6.0 => 6.1
  • UI.VCAEngine: 7.13 => 7.17
  • UI.Vision: 9.1 => 9.5
  • UI.WebUser: 1.6 => 2.0
(Expanding for support direct writing)
  • UI.WebVision: 6.9 => 6.13
  • UI.WebCfgD: 2.6 => 2.8
  • LibsDB.OscadaLibs.base: 2.2 => 2.3
  • initRemCntr: 1.1
  • fileServerHTTP: 1.0 => 1.2
  • LibsDB.OscadaLibs.LowDevLib: 1.5 => 1.6
  • 1W: 2.1
  • S1BP: 1.0
  • UC96: 1.0 => 1.2
  • LibsDB.OscadaLibs.DevLib: 3.0 => 3.1
  • ergomera125: 0.5
  • mbBase: 1.2 => 1.3
  • LibsDB.vcaBase.Main
  • storeHouse: 1.4 => 2.1
(Added file inclusion and image preview)
  • grph_panel: 1.5 => 1.6
  • doc_panel: 1.2 => 1.3
  • userManager: 1.6 => 1.7
  • LibsDB.vcaTest.test.docTestGasNodeDayRep: 1.0 => 1.1

КОНЦЕПТУАЛЬНЕ > Реалізація властивостей Об'єктів Контролю

  • Система: TCntrNode:
    • Додання об'єктних властивостей у групах за префіксами для різних частин OpenSCADA: система (sys), користувач (usr), підключення (con), безпека (sec), ... .
    • Додання Користувацької функції property() для доступу до об'єктних властивостей із контексту користувача на додачу до прямого-натурального шляху.
  • Транспорти: Переведення параметрів підключення на об'єктні властивості у групі "con".
  • Збір Даних: Переведення прапорців TValue resB1() і resB2() на об'єктні властивості у групі "DAQ", тобто видалення таких функцій.

CONCEPTUAL > Implementing the custom ACLs to the control nodes

  • SYS:
    • TCntrNode:
      • new functions nodeAccess(), nodeLoadACL(), nodeLoadACLSnthHgl();
      • moving from static with some improving and adaption to ACL with compatibility of the direct rules for the functions of the control interface: ctrMkNode(), ctrChkNode();
      • new definition-macros of the control interface for ACL: ctrMkNode3() as link to ctrMkNode() with automatic NULL termination argument, ctrChkNode2() and ctrChkNode3() as link to ctrChkNode();
      • ctrMkNode() switched to no exception at missing container nodes, just don't create and return NULL.
    • TFld: cntrCmdMake() added by an argument cntrO for linking with the Control Node, and all code adapted to that.
    • TConfig: cntrCmdMake() and cntrCmdProc() added by an argument cntrO for linking with the Control Node, and all code adapted to that.
  • Transports: TTransportS: cntrCmdPrm() added by an argument cntrO for linking with the Control Node, and all code adapted to that.
  • DAQ: Adaptation to ACLs in the description fields of the Controller and Parameter Objects, DAQ-Templates, JavaLikeCalc Functions and most DAQ-Modules. Default owner-permition for the DAQ subsystem set to "root:DAQ"-0775.
  • Protocol.OPC_UA: Using ACL in checking the access.

КОНЦЕПТУАЛЬНЕ > Концентрація різних 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.

КОНЦЕПТУАЛЬНЕ > Переклад Повідомлень (виправлення концептуальних змін попередніх оновлень)

  • LibsDB.OscadaLibs: Автоматичне оновлення деяких перекладів.
  • LibsDB.vcaBase.wlb_Main:
    • Доповнено динамічними повідомленнями із перекладом Українською для основних у DiskSMART і UPS, протягом представлення у "Властивості об'єкту (objProps)".
    • anShow,anShow1: Доповнено перекладом динамічних повідомлень із атрибутів параметрів NAME і DESCR.
    • FIX:RootPgSo: Атрибут "Проц. програвання демо (demoPlayProc)" встановлено у тип "Текст (переклад)".
  • SYS,DAQ,UI.VCAEngine: Реалізація вимкнення перекладу рядків конфігураційних полів, атрибутів Збору Даних, атрибутів Користувацького Інтерфейсу при зміні у динамічному виконанні:
    • SYS,DAQ,DB.{FireBird,MySQL,ODBC,PostgreSQL,SQLite}: доповнення уніфікованим методом {TCfg,TVal}::isTransl() перевірки перекладу елементу, і переведення на нього всюди;
    • TVal: доповнення прапорцем "mNoTransl" і функціями поводження із ним: noTransl(), setNoTransl(), TValue::setNoTransl();
    • UI.VCAEngine::Attr: доповнення прапорцем "NoTransl" і поводження із ним у isTransl();
    • переклад вимикається:
      • при запису за посиланням реалізації шаблонів у TPrmTempl::Impl::lnkOutput();
      • при виклику Користувацького API TVal::set();
      • UI.VCAEngine: при зміні атрибуту Віджету у контексті Сеансу для опрацьовуваних віджетів і при записі до атрибуту Збору Даних за посиланням.
    • Параметри Збору Даних додано відновленням перекладення динамічно зміненого поля при завантажені.
  • FIX:SYS: TMess: Додання повідомлень до таблиці "Trs" увімкнено лише у рівні повідомлень Налагодження, задля запобігання залиттю таблиці будь якими перекладеними повідомленнями і ні.
  • FIX:DAQ.OPC_UA,Protocol.HTTP,UI.{QTCfg,Vision}: Виправлення і вдосконалення деяких оригінальних повідомлень.
  • FIX:Збір Даних: Виправлення-завершення динамічного перекладу для заголовку об'єкту контролера і параметра.
    • FIX: Шаблони виправлено-адаптовано до динамічного перекладу у використанні назв ВВ.
    • FIX: Виправлення-завершення динамічного перекладу запиту значень у Керувальному Запиті TValue::"get:/serv/attr" для неархівних елементів.
    • Шаблони параметрів дозволено до встановлення порожніх імен задля очищення їх перекладу у режимі динамічного перекладу.
    • FIX:DAQGate: Дещо виправлено переклад Українською.
    • FIX:JavaLikeCalk: Дещо вдосконалено у перекладі.
  • FIX:Protocol.OPC_UA: Адаптація до динамічного перекладу у запитах даних.
  • FIX:UI.{QTCfg,Vision}: Повідомлення "Завантажити із БД" і "Зберегти до БД" перейменовано у "Завантажити" і "Зберегти", та із "сховище" замість "БД" у повних повідомленнях.
  • FIX:UI.VCAEngine: Функція Користувацького API простору сеансу this.attr() виправлено у перевірці прапорця перекладу TFld::TransltText.
    • FIX: Шаблони виправлено-адаптовано до динамічного перекладу у використанні конфігураційного шаблону атрибутів.

OpenSCADA бібліотеки і проєкти

  • FIX:LibsDB.OscadaLibs:
    • tmplib_DevLib: Доповнено шаблоном "Ergomera 125 (ergomera125)" із ініціюючою імплементацією власного протоколу і документуванням.
      • mbBase: Розширено підтримкою Вхідних Регістрів функцією 4.
      • FIX:VSE002: Переписано у режим послідовного читання пакетів, тобто виявлення усіх пакетів із зауваженням невідомих.
      • FIX:Incubator: Виправлення значення поля 'Транспорт (transport)'.
    • tmplib_LowDevLib: Доповнено шаблоном "BT: ATORCH S1BP (S1BP)" із документуванням і повним перекладом українською.
      • Доповнено шаблоном "1-Дріт (1W)" як поєднання 1W_DS9097 і 1W_DS9097U перед доданням I2C Драйверів і розширено параметром "Додавати лише при скануванні", із документуванням і повним перекладом українською. Додання підтримки I2C Драйверу DS2482-100 і деякі вдосконалення із виправленням.
      • UC96: Розширено підтримкою ATORCH UD24. Розширено читанням: "Вольти максимум (Vup)", "Вольти мінімум (Vdwn)", "Дата+, В (Dplus)", "Дата-, В (Dminus)".
    • FIX:tmplib_base.fileServerHTTP: Розширено передавання великих даних у шматках шляхом прямого запису функцією writeTo(). Для цього доповнено атрибутами: "Транспорт (tr)", "Протокол (prt)" і "Відправник (sender)".
    • FIX:flb_doc.diagram: Додано креслення неперіодичних прямих даних на кшталт місяці. Реалізація округлення великих інтервалів точок Кривими Кубічної Безіє.
  • LibsDB.vcaBase:
    • wlb_Main:
      • grph_panel,doc_panel: Додання перевірки активності контрольованого тренду або документу, і закриття за його неактивності. Переведення у полі розміру-глибини на редагований комбобокс із чисельним номером і множником людським текстом, засновано на новій функції Користувацького API time2str() і str2time(), тобто видалення тут поля типу.
      • docRepDay,docRepMonth,docUsersSet,docRepInstVals,docDin,docRep2WorkSh,docAlarmsRep,docMessRep: Адаптація до відкриття панелі контролю документів після декількох секунд запуску-відкриття, тобто для надання контролю документом при відображені у QtWebengine.
      • grpGraph,grpCadr,doc_panel,grph_panel,prescrEdit,prescrRun,prescrRunSimple,accept,treeSelect,calendar,userManager,alarmsStReport,docRepDay,docRepMonth,docRepYear},wlb_prescr.{prescrEdit,prescrRun,prescrRunSimple: Змінну ev_cur перейменовано у evCur.
      • storeHouse: Розширено підтримкою включення файлів як до MySQL поля LONGTEXT, так і до FS. Додання попереднього перегляду завантажених зображень у формі і звіті елементу. Додання динамічної панелі керування до обраних елементів у таблиці для швидкого контролю і доступу до даних складних полів.
      • FIX:grpGraph10: Виправлено у атрибуті "geomZ" для включених віджетів "el9" і "el10".
      • FIX:RootPgSo: Покращено, встановленням виконання демо-процедури на паузу за відсутності запитів на WEB, чим запобігаючи відкриттю усіх сторінок до реального закриття. Прямий перелік сторінок доповнено перевіркою прав сторінок.
      • FIX:grpGraph: Виправлено у атрибуті "geomZ" для включених віджетів "trnd1" і "arh".
      • FIX:weather: Доповнення піктограмами представлення різних станів. Виправлено у гарантуванні отримання годинних даних при проблемах підключення.
      • treeSelect: Оновлення піктограми кадру із покращенням назви.
      • userManager: Переведення на команди Інтерфейсу Керування для роботи у резервованих системах.
    • wlb_doc.docRepYear: Переключення креслення прямих даних на діаграмі у неперіодичний режим.
  • LibsDB.vcaTest.wlb_test.docTestGasNodeDayRep: Адаптація до відкриття панелі контролю документу при встановленні атрибуту "pgOpen" і не встановленому атрибуті "pgOpen" у панелі, оскільки документ архівний, тобто для надання контролю документом при відображені у QtWebengine.
  • ModelsDB.AGLKS:
    • wlb_doc.{docRepMonth,docRepDay}: Встановлено до не опрацювання періодично.
    • wlb_test.docTestGasNodeDayRep: Встановлено до опрацювання із періодичністю 10 секунд.

API
!!!!:Changes:

  • SYS: Type of the limit variables "limUserFile_SZ", "limUserIts_N" changed to unsigned.
    • TCntrNode: Moving from static with renaming some arguments: ctrMkNode(), ctrChkNode(). Moving ctrMkNode2() to the definition-macros with automatic NULL termination argument. Merging _ctrMkNode() to ctrMkNode(). Changing prototype of the objPropSet() function in the "val" argument.
    • TVal: Moving to constant for fld().
    • TFld: cntrCmdMake() added by an argument "cntrO" with renaming some arguments.
    • TConfig: cntrCmdMake() and cntrCmdProc() added by an argument "cntrO" with renaming some arguments.
    • TMess: UTF symbol type in getUTF8() and setUTF8() changed from int32_t to uint32_t.
  • Security: Renaming the function TSecurity::access() argument "access" to "perm", also for User API.
  • Transports: TTransportS::cntrCmdPrm() added by an argument "cntrO".
  • DAQ: Moving the TValue flags resB1() and resB2() to the object properties in group "DAQ", that is removing such functions.

Appends:

  • SYS: Appending the sysTmJmp() function as a variant of sysTm().
    • Appended by the "DEF_HTaskPer" definition.
    • TError: New errors: Tr_ErrUnknown, Prt_Unknown, Prt_ErrCommon, Prt_ErrParams.
    • TCfg,TVal: New unified method isTransl().
    • TVal: New functions: noTransl(), setNoTransl().
    • TValue: New function setNoTransl().
    • TCntrNode: New functions: nodeAccess(), nodeLoadACL(), nodeLoadACLSnthHgl(), nodeDocSnthHgl(), property(), propertyClrGrp(); and new definitions: ctrMkNode3(), ctrChkNode2(), ctrChkNode3(). Adding a User API function property().
    • Appended by the limiting option "limObjDscr_SZ" for the description configuration fields (DESCR).
    • Adding function str2time() with parsing the human time from time2str(), which added also by the "inParts" argument.
    • Adding new User API functions with representing the system ones in the user space: time2str(), cpct2str(), str2time().
    • XMLNodeObj: getElementsBy() and its User API variant expanded by arguments "limit" and "from".
    • Mess: Adding the global label functions labTime(), labTimeSel().
  • Transports: TTransportOut appended by the function 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:Security,ModSchedul,DAQ.{Function,Templates,BFN,JavaLikeCalc,OPC_UA,Siemens},Archive.{.,FSArch},Protocol.{ModBus,OPC_UA,HTTP,UserProtocol},UI.VCAEngine: Додання властивостей до полів стовпчика-переліку елементів контролю Таблиці від Інтерфейсу Керування для роботи не лише від root-root.
  • 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: Виправлено виявлення віддалених архівів для тимчасово порожніх, тобто які не мають джерела.
  • JavaLikeCalc: Реалізація оператору "var" щодо обробки правильної області видимості, тобто визначення нових змінних у функціях із оператором і використання глобальних без нього.
  • 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().

User Interface

  • FIX:Vision,WebVision: Implementing of rounding big interval points by the Besier Cubic Curves. Fixing of calculating bottom border for vertical scale.
  • VCAEngine,Vision,WebVision: The type Image of the primitive Media appended by the attribute "Keep aspect ratio at fitting (keepAspect)".
  • FIX:VCAEngine,Vision: Adding an option in the "Styles" tab of the projects with control the writing to styles in the execution context. And the writing to the styles disabled on the project side.
  • FIX:WebVision: Requesting data of the resources added by support chunks for big data and conversion only for small images. The Save type of the buttons appended by support the media ranges with storing the data in WebVision context for retries.
  • WebUser: Switched to the generic function HTTP() of transition from Protocol.HTTP. Appended by an optional attribute "Transport (tr)" of the processing procedures and templates, taken from the protocol object. The attribute "Result (rez)" allowed in empty value to prevent sending any response, that is meaning direct writing by TTransportIn::writeTo().
  • QTCfg: The Back and Forward buttons expanded by a menu of the direct items accessing.
  • FIX:Vision: Preventing fullscreen mode fault in some XOrg conditions, when the fullscreen Qt-flag occasionally cleared, that is the flag was doubled internally. Reproduced often with Qt6 on Debian 12.
  • VCAEngine: Appending of the not processed events sending to a page who opened the source page.
  • WebCfgD: Implementing of selection the group nodes with holding Control or Shift in the navigation tree and the group operations for deletion and setting. Expanding of call pageRefresh() by integrating the lag time.