- Стан: тестування та після-складання ...
Загальний процес випуску користувачам для оцінки ваших очікувань та розробникам для нагадування завдань:
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.
Це оновлення релізу 0.9 LTS виправляє біля 70 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у протоколі змін оновлення.
Linux Дистрибутив Автоматизації проєкту OpenSCADA
- оновлення TDE до 14.1.3, а також складання латаного для Debian 8,10 ARMHF;
- відновлення запуску nm-applet у системному лотку і видалення пакету "raspi-firmware" із встановлень Debian 12;
- формалізація часткового відгалуження TDE за підпроєктом — the Linux Дистрибутив Автоматизації проєкту OpenSCADA;
- TDE > tdepowersave-trinity: Запобігання блокуванню-залипанню ознаки "blacklisted_running" після виконання однієї з програм у чорному переліку.
- TDE > basket-trinity: Виправлення не заміни обраних блоків у нотатку за вставлення RTE, просте додання перед блоком.
- TDE > tdepim-trinity > KOrganizer: Запобігання появі двох діалогів редагування елементу і нового елементу за подвійним клацанням на клітинці із елементами у місячному перегляді.
- TDE > krusader-trinity: Виправлення оновлення панелі джерела за операцій переміщення.
- 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 і SLAVE_CONNECTION_TIMEOUT_MAX із 10 у 30 для запобігання помилок відсутності підлеглого 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-ресурси, документація проєкту і підпроєктів
- доповнення сторінки бібліотеки промислових пристроїв описом нових шаблонів;
- доповнення сторінки бібліотеки низькорівневих сенсорів та чипів описом нових шаблонів;
- доповнення сторінки основної бібліотеки описом нових шаблонів.
Нові та значно оновлені частини
- Ядро OpenSCADA: 3:14:0 => 3:15:0
- (Реалізація властивостей Об'єктів Контролю, Реалізація користувацького ACL до вузлів контролю, Реалізація ініціативних підключень, Розширення менеджменту проєктів, Переклад Повідомлень — виправлення концептуальних змін попередніх оновлень)
- Підсистеми "Транспорти" OpenSCADA: 20 => 21
- DAQ.DAQGate: 2.13 => 2.14
- DAQ.JavaLikeCalc: 5.6 => 5.7
- 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.16
- 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
- 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
- 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(), ctrMkNode2(), _ctrMkNode(), ctrChkNode();
- new functions of the control interface for ACL: ctrMkNode3(), ctrChkNode2();
- _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.
- TCntrNode:
- 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 and their configuration, DAQ-Attributes, DAQ.DAQGate. 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 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. Appending dynamic control panel to the selected items in the table for fast control and accessing data of the complex fields.
- 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.
- userManager: Moving to the Control Interface commands to work in redundant systems.
- 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 додано до перепідключення файлу БД, оскільки ця помилка може виникати зі зміною структури файлу БД із зовнішнього джерела.
DAQ
- FIX: Fixed in remote archives detection for temporarily empty ones, that is no source.
- JavaLikeCalc: Implementing the "var" statement for true scope processing, that is defining new variables in functions with the statement and using global ones without.
- DAQGate: Improving algorithm of the archives detection with providing an information field with list of the archieving attributes.
- FIX:ModBus: Fixed in complete processing strings with encoding, that is registering all registers. The data requesting improved in the TCP variant for waiting tail to any first package size, that is not only the MBAP header in 7 bytes size.
Архіви-Історія
- Архіви значень доповнено виявленням подвійних посилань і видаленням їх усіх.
- 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: Expanding of call pageRefresh() by integrating the lag time.