From OpenSCADAWiki
Jump to: navigation, search
Line 5: Line 5:
 
</div>-->
 
</div>-->
  
This update of the [[Special:MyLanguage/Documents/Release_0.9|0.9 LTS release]] fixes about 70 bugs and appends MANY improvements with several of significant-conceptual ones, which you can read wholly in [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3021 the update ChangeLog].
+
Це оновлення [[Special:MyLanguage/Documents/Release_0.9|релізу 0.9 LTS]] виправляє біля 70 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3021 протоколі змін оновлення].
  
 
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]}}
 
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]}}

Revision as of 10:05, 22 April 2025

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

Це оновлення релізу 0.9 LTS виправляє біля 70 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у протоколі змін оновлення.

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.