(Updating to match new version of source page) |
|||
Line 5: | Line 5: | ||
</div>--> | </div>--> | ||
− | + | Це оновлення [[Special:MyLanguage/Documents/Release_0.9|релізу 0.9 LTS]] виправляє біля 70 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3027 протоколі змін оновлення]. | |
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Linux Дистрибутив Автоматизації проєкту OpenSCADA]]}} | {{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Linux Дистрибутив Автоматизації проєкту OpenSCADA]]}} |
Revision as of 14:35, 26 May 2025
Це оновлення релізу 0.9 LTS виправляє біля 70 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у протоколі змін оновлення.
Linux Дистрибутив Автоматизації проєкту OpenSCADA
- актуальний (Debian) TDE-репозиторій було цілковито віддзеркалено щодо використаних частин цим проєктом із перепідписуванням усіх цих пакетів ключем OpenSCADA, і це було здійснено у теках TDE14.1 для версій >= 9 і TDE14.0 для < 9. Тобто разом із латаними пакетами, які було перенесено до TDE14.0 для старих версій Debian;
- формалізація часткового відгалуження TDE за підпроєктом — Linux Дистрибутив Автоматизації проєкту OpenSCADA;
- оновлення TDE до 14.1.3 потім до 14.1.4 із складанням латаного для Debian 8,10 ARMHF;
- відновлення запуску nm-applet у системному лотку і видалення пакету "raspi-firmware" із встановлень Debian 12;
- TDE > tdebase-trinity > KXKB-KLayouts: Відновлення завантаження типових параметрів XKb, а саме комбінацій клавіш перемикання розкладки клавіатури;
- TDE > Digikam: Відновлення складання за допомогою AutoTools у 14.1.4;
- ghostscript: Запобігання очищенню налаштувань прозорого тла у pdfi_create_DeviceRGB() попереднім викликом pdfi_setrgbfill(ctx), задля коректних прозорих фонів;
- TDE > tdegraphics-trinity > KSVG: Запобігання зациклюванню SVG-мініатюрника за NAN змінної "th_arc" деяких дуг;
- TDE > tdegraphics-trinity > KPDF: Оновлення локальної копії Poppler у KPDF для відновлення завантаження оригінального кольору заповнення і креслення, задля коректних прозорих фонів;
- TDE > tqt3-trinity: Запобігання падінню QTextEdit при вставлені RTE із параграфами на початок, шляхом оновлення змінної "lastFormatted";
- 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.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
- Transport.Sockets: 4.8 => 5.0
- Protocol.OPC_UA: 2.2 => 2.3
- 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
- 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
- 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", тобто видалення таких функцій.
КОНЦЕПТУАЛЬНЕ > Реалізація користувацького ACL до вузлів контролю
- Система:
- TCntrNode:
- нові функції nodeAccess(), nodeLoadACL(), nodeLoadACLSnthHgl();
- переведення із статичного із деяким вдосконаленням і адаптацією до ACL із сумісністю прямих правил для функцій інтерфейсу керування: ctrMkNode(), ctrChkNode();
- нове визначення-макрос інтерфейсу керування для ACL: ctrMkNode3() як посилання на ctrMkNode() із автоматичним аргументом переривання NULL, ctrChkNode2() і ctrChkNode3() як посилання на ctrChkNode();
- ctrMkNode() перемкнено у режим без виключення за відсутності контейнерних вузлів, просто не створювати і повертати NULL.
- TFld: cntrCmdMake() додано аргументом cntrO для зв'язування із Вузлом Контролю, і весь код адаптовано до цього.
- TConfig: cntrCmdMake() і cntrCmdProc() додано аргументом cntrO для зв'язування із Вузлом Контролю, і весь код адаптовано до цього.
- TCntrNode:
- Транспорти: TTransportS: cntrCmdPrm() додано аргументом cntrO для зв'язування із Вузлом Контролю, і весь код адаптовано до цього.
- Збір Даних: Адаптація до ACL у полях опису Об'єктів Контролеру і Параметру, DAQ-Шаблонах, JavaLikeCalc Функціях і більшості DAQ-Модулів. Типові власник-доступ для підсистеми Збір Даних встановлено у "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();
- 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:SYS: TMess: Adding 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. TMess::translDyn() forced to FALSE and the flag set to FALSE with switching to the SINGLE-LANGUAGE mode. FIX: Preventing to show the Translation Manager in the SINGLE-LANGUAGE mode.
- DB: fieldSQLSet() appended of warning some messages completely cleaning at saving not the dynamic set fields but a copy. Appended of registering new message for translation with warning the registering and ready for translation in the Translation Manager after setting new base messages to empty fields.
- 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 бібліотеки і проєкти
- 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: Додано креслення неперіодичних прямих даних на кшталт місяці. Реалізація округлення великих інтервалів точок Кривими Кубічної Безіє.
- tmplib_DevLib: Доповнено шаблоном "Ergomera 125 (ergomera125)" із ініціюючою імплементацією власного протоколу і документуванням.
- 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: Переключення креслення прямих даних на діаграмі у неперіодичний режим.
- wlb_Main:
- 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(), nodeMessSnthHgl(), 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().
Інтерфейс Користувача
- 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.
- VCAEngine: Доповнення надсиланням неопрацьованих повідомлень до сторінки, яка відкрила вихідну сторінку.
- WebCfgD: Імплементація обрання групи вузлів з утриманням Control або Shift у дереві навігації та групових операцій щодо видалення і встановлення. Розширено виклик pageRefresh() інтеграцією часу затримки.