From OpenSCADAWiki
Jump to: navigation, search
(Updating to match new version of source page)
 
Line 71: Line 71:
 
* SelfSystem: Додано примусове оновлення аутентифікації за атрибутом "rqAuthForce". Додано переспрямування запитів хостів за атрибутом "reforwardHost", у вхідній частині.
 
* SelfSystem: Додано примусове оновлення аутентифікації за атрибутом "rqAuthForce". Додано переспрямування запитів хостів за атрибутом "reforwardHost", у вхідній частині.
  
{{CntHdr|UI}}
+
{{CntHdr|Інтерфейс Користувача}}
* VCAEngine,Vision: Logical groups separator of Widget's attributes is changed from ":" to ": " everywhere, mostly for allow the user attribute value's items separation and description it with the symbol ":". To view "Table" of the primitive FormEl into root tag "tbl" added attribute "sortEn" to direct sorting by columns and header's item option "sort" for point to initiate sorting column.
+
* VCAEngine,Vision: Розділювач логічних груп атрибутів віджетів всюди змінено із ":" у ": ", переважно для можливості опису формату значення користувацьких атрибутів із типовим символом розділювача ":". У вигляді "Таблиця" примітиву FormEl до кореневого тегу "tbl" додано атрибут "sortEn" з метою прямого сортування за стовпчиками та параметр елементу заголовку "sort" для вказання на рядок для сортування при ініціалізації.
* FIX:Vision,WebVision: Mode "XY" of the primitive "Diagram" fixed for build by sorting by 'X' disable, only the hierarchical order. For primitive "Diagram" to data block "<nowiki>data:<dt/></nowiki>" option "Approximation (aprox)" is added.
+
* FIX:Vision,WebVision: Режим "XY" примітиву "Діаграма" виправлено на предмет вимкнення побудови за сортованими даними за 'X', тільки за ієрархічною послідовністю. Для примітиву "Діаграма" до блоку даних "<nowiki>data:<dt/></nowiki>" додано параметр "Aproximation (aprox)".
* FIX:UI.QTCfg: External host's status processing mostly improved and fixed. FIX: Timeouts of external host are set configurable by the option "TmConChk". FIX: The options StartUser and StartPath are moved under a resource allocation by the type MtxString.
+
* FIX:UI.QTCfg: Опрацювання статусів зовнішніх хостів значно покращено та виправлено. FIX: Таймаути зовнішніх хостів зроблено конфігурабельними, за параметром "TmConChk". FIX: Параметри StartUser та StartPath пересунуто під захоплювач ресурсу типу MtxString.
* FIX:VCAEngine: The function's resources locking is added for SesPage::setEnable().
+
* FIX:VCAEngine: Додано захоплювач функціонального ресурсу у SesPage::setEnable().
** FIX: setNoTransl() at the attributes loading disabled by some problematic and no a sene.
+
** FIX: setNoTransl() вимкнено у завантажені атрибутів, у зв'язку із деякою проблемністю та відсутністю сенсу.
** Force inheritance of links types is added, independent from the attribute local modification.
+
** Додано примусове успадковування типів зв'язків, незалежно від локальної зміни цих атрибутів.
** To project objects were added a property "EnableByNeed" to control the projects ready after start and prevent long connection by the deferred enabling.
+
** До об'єкту проекту додано властивість "EnableByNeed", для контролю за готовністю цього проекту після старту та попередження тривалого підключення через відкладене увімкнення.
** Try to enable for disabled pages, at an alarm set action, is prevented by some strange crash here observed, only into LTS.
+
** Попереджено спробу увімкнення вимкненої сторінки під час встановлення порушення, через спостереження дивних падінь тут, тільки у LTS.
** The runtime note messages are added: "User is changed to ...", "User is connected ...", "User is disconnected ...".
+
** Додано повідомлення зауваження часу виконання: "Користувача змінено на ...", "Користувач підключений ...", "Користувач відключений ...".
 
* FIX:Vision:
 
* FIX:Vision:
** FIX: Too important fixes made in way of adapting to stable work with remote VCA servers:
+
** FIX: Здійснено дуже важливі виправлення на предмет адаптації до стабільної роботи із серверами СВК:
*** The module's attributes VCAStation, UserStart, UserPass and UserStBar::{user,pass,VCAStation} were moved under resources locking by the MtxString.
+
*** Атрибути модуля VCAStation, UserStart, UserPass та UserStBar::{user,pass,VCAStation} пересунуто під захоплювач ресурсу типу MtxString.
*** To both runtime and development parts were added an initial connection with the restore connection timeout, for allow to load the VCA-server resources.
+
*** До обох частин, виконання та розробки, додано ініціююче підключення із часом таймауту відновлення підключення, з метою забезпечити завантаження ресурсів серверу СВК.
*** Processing of the information dialog about a connection lost was moved to a single request (and thread) from updatePage().
+
*** Опрацювання інформаційного діалогу про втрату підключення було пересунуто до одного запиту (та потоку) із updatePage().
** FIX: View "Table" of the primitive "FormEl" significant expanded by: global table's attributes: "hHdrVis", "vHdrVis"; row attributes "colorText", "font"; column attributes "color", "colorText", "font".
+
** FIX: Вигляд "Таблиця" примітиву "FormEl" значним чином розширено: глобальними атрибутами таблиці: "hHdrVis", "vHdrVis"; атрибутами рядка "colorText", "font"; атрибутами стовпчика "color", "colorText", "font".
** FIX:Included to container's pages align processing rewrote to trace on the widget's geometry update and to the misaligned scroll-bars appearing sometime prevent.
+
** FIX:Вирівнювання сторінок, вкладених у контейнер, переписано на предмет відстеження оновлення геометрії віджету та запобігання появі срічок гортання у випадку невідповідного вирівнювання.
** FIX: The palette restoring to visibleCheck function is added for prevent FormEl's artifacts at last.
+
** FIX: Додано відновлення палітри до функції visibleCheck для запобігання артефактів у примітиві FormEl, на кінець.
** FIX: Mouse events at all enabled for "FormEl" primitive and some artifications like ticks lost into Slider fixed.
+
** FIX: Повідомлення миші в цілому включено для примітиву "FormEl" та виправлено деякі артефакти на кшталт втрати рисок у слайдері.
** FIX: Context menu problem for views List, Tree and Table of the primitive FormEl is fixed.
+
** FIX: Виправлено проблеми контекстного меню для виглядів "Перелік", "Дерево" та "Таблиця" примітиву "FormEl".
** Requests to an external host moved to using cntrIfCmd().
+
** Запити до зовнішніх хостів пересунуто до використання cntrIfCmd().
** Remote authentication moved to allow use the host authentication by default and the same connection for check it.
+
** Віддалену аутентифікацію розширено на використання аутентифікації хоста, по замовченню, та самого підключення для її перевірки.
** Timeout of tries of restoring connection to a remote station set to progressive up to the pointed one and the error message display after the timeout value in 3 seconds.
+
** Таймаут спроб відновлення підключення до віддаленої станції зроблено прогресивним, до вказаного значення, та відображення повідомлення помилки здійснюється після значення таймауту у три секунди.
  
 
{{CntHdr|Спеціальне}}
 
{{CntHdr|Спеціальне}}
 
* SystemTests: Тести БД розширено тестом сканування.
 
* SystemTests: Тести БД розширено тестом сканування.

Latest revision as of 10:42, 25 April 2020

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

Це оновлення релізу 0.8 LTS виправляє біля 35 помилок та додає деякі удосконалення, які цілком ви можете почитати у протоколі змін оновлення.

API
!!!!:Зміни:

  • SYS,Transport,DAQ.DAQGate,UI.{QTCfg,Vision,WebCfgD}: Імплементація підняття зовнішніх хостів розширенням функції extHostList(), переспрямуванням запитів функцією cntrIfCmd() та вхідної частини власного протоколу системи. *: pthread_mutex, MtxAlloc та MtxString переміщено до об'єкту обгортки мютексів ResMtx.
  • DAQ: API функцій tplE(), tplIOE(), errE() перейменовано у elTmpl(), elTmplIO(), elErr().
  • Archive: m_start, run_st, m_db перейменовано у mStart, runSt, mDB.

Доповнення:

  • SYS: Об'єкт блокування RW ресурсів розширено функціями (синоніми) lock(), tryLock() та unlock().
    • Додано додатковий макрос контролю часу FTM2.
    • TFunction: Додано віртуальні функції prog() та setProg() для контролю через абстрактний об'єкт.
    • Розширено функцію API користувача SYS.sleep() для прийняття першого аргументу часу у секундах як реального та можливості встановлення його значення до наносекунд.
  • DB: До БД додано захоплювач ресурсу таблиць TBD::resTbls.
  • DAQ.BlockCalc: До блоків додано функції API користувача cntr(), cfg(), cfgSet().
  • Archive: messPut(), messGet() та такі ж функції API користувача розширено аргументами "arch" для можливості прямого визначення запитуваних архіваторів.
    • Функцію API користувача messGet() розширено аргументом "upTo", для прямого контролю цього таймауту.
    • До функцій запиту повідомлень додано результат, як час зупинки опрацювання. Значним чином для можливості продовження від позиції після перерваного за таймаутом тривалого запиту.
    • Додано глобальний параметр архівації значень для примушування часу отриманих значень до поточного, замість часу джерела.
    • До об'єкту архіву значень додано параметр заповнення прохідних значень попереднім.
  • Transport: До вихідного транспорту додано час запуску-підключення.
  • UI.VCAEngine: До віджету часу виконання додано функції API користувача mess{Debug,Info,Note,Warning,Err,Crit,Alert,Emerg}() до яких включено шлях цього віджету як категорію.
  • Special.FLibSYS: Функції часу доповнені функцією tmSleep() для надання швидкого доступу до короткого сну.

SYS

  • Версію бібліотеки ядра піднято до 2.4. DB,DAQ,Archive,Transport: Версію типу підсистем піднято до 8.
  • TCntrNode: Попереджено звільнення заблокованих вузлів та підключення до вимкнених шляхом відповідного блокування ресурсу "mUse".
  • {DAQ,Transport}.*: Діапазон пріоритетів завдань розширено до 199 де 100-199 використано для політики планування завдань SCHED_FIFO.
  • Системні конфігураційні поля "workdir", "moddir", "icodir" встановлено у тільки для читання, у інтерфейсі конфігурації, значним чином для попередження помилкових змін та можливості їх зміни тільки шляхом редагування конфігураційного файлу.
  • Security: Адаптовано для запобігання зберігання паролів у відкритому вигляді натомість зберігається їх хеш, для: OpenSCADA хосту (Transports), Protocol.SelfSystem, UI.Vision. Використання crypt_r() включено тільки для "__USE_GNU" інакше паролі зберігатимуться у відкритому вигляді.
  • data/debian: Сервісний скрипт openscada.init перенесено до окремого пакету openscada-server.

БД

  • Всі модулі БД переписано для відкриття таблиць без виключень у конструкторі.
  • FIX:MySQL,SQLite,PostgreSQL: Попереджено порушення послідовності запитів "BEGIN;" та "COMMIT;" під високою конкурентною активністю доступу.
  • FIX:DB.PostgreSQL: Виправлено на предмет кодування символів "'" '"' шляхом заміни методом дублювання. FIX: Виправлено зациклення після невдалої корекції структури таблиці.

Збір даних

  • Функцію користувацького API funcCall() значним чином розширено на предмет фіксації її результуючої функції для повторного використання та, як наслідок, значного підвищення продуктивності.
  • *,LogicLev,ModBus: Додано DAQ резервування динамічних атрибутів.
  • ModBus,Siemens,DCON: Пропуск реальних запитів на першій та останній ітераціях, тільки виконання процедур.
  • FIX:OPC_UA: Модуль для клієнта перейменовано у "Клієнт OPC-UA" та для серверу у "Сервер OPC-UA".
    • Protocol: Дозволено роботу у режимі опитування вхідного транспорту та включено по замовченню. Сервіс "Publish" тепер доступний у LTS!
    • FIX:libOPC_UA: Виправлено контроль номеру послідовності пакетів, для серверної частини, шляхом відокремлення від цього значення вхідних пакетів.
      • FIX: Керування номером послідовності клієнтської частини також уніфіковано та виправлено щодо попередження повтору цього значення.
      • Додано раннє опрацювання підтверджень (Acknowledgements) у запиті "Publish".
      • Вимкнено мітку часу (TimeStamps) у клієнтському запиті "Write", оскільки деякі клієнти відповідають 0x80730000 (OpcUa_BadWriteNotSupported).
      • Вдала адаптація до роботи із UAExpert 1.4.
  • JavaLikeCalc: Додано підтримку визначення та виклику вкладених функцій. Операції "||" та "&&" формально встановлено у однаковий пріоритет. Перевірку щодо ВВ переміщено перед константами для можливості їх перевизначення. Додано постійну "EVAL", як синонім до EVAL_REAL.
  • FIX:Siemens: Виправлено проблему падіння під час високої та частої взаємодії, заміну фрагменту (за допомогою "assign") всюди замінено на "replace". FIX:LibnoDave: gethostbyname() замінено на її потоко-незалежний варіант.
  • BlockCalc: Додано у опрацювання блоком спеціальний атрибут "this".

Архів

  • messPut() розширено для незалежного запису до таблиці порушень.
  • DBArch,FSArch: Дозволено запит повідомлень для однакового часу початку та кінця.
  • FIX:FSArch: Додано перевірку та запобігання дублікатам із рівним часом, категорією, рівнем (у випадку параметру "prevDblTmCatLev").
    • Розширено на предмет ранньої перевірки лімітів та цієї перевірки при помилках розпакування, задля попередження таким чином переповнення сховищ із щільним обмеженням та малим розміром.
    • В цілому виправлено перевірку дублікатів. Час у кеші змінено із time_t на int64_t (у мікросекундах).
    • Отримання із XML зроблено дещо оптимальнішим. Отримання із "plain" дозволено для повідомлень із часом який дорівнює кінцю.
  • FIX:DBArch: Алгоритм отримання повідомлень переписано для запиту хвилинами.
    • Структуру таблиці значень та повідомлень встановлено адаптивною та переміщено до об'єктів TMArchivator та ModVArchEl.
    • Додано нову опцію архіватора повідомлень: "Зберігати час як чисте ціле".
    • "Розмір архіву (днів)" для значень та повідомлень адаптовано для встановлення у нуль (<0.1) та вимкнення таким чином цього обмеження загалом.
    • Вимкнено закриття використаної таблиці після будь-якого запиту розміщення.

Транспорт

  • FIX:SSL,Sockets: gethostbyname() та getservbyname() замінено на їх багатопотокові варіанти.
  • FIX:Serial,Sockets: На час читання результату, вихідного транспорту, додано очікування даних у випадку нуля та/або помилки EAGAIN. FIX: Виправлено помилки запису вихідного транспорту. Можливі помилки читань після помилкового переривання select(), із ознакою що деякі дані присутні (інколи стається), уніфіковано та краще налаштовано під різні режими запиту та режими не запиту вихідного транспорту.

Протокол

  • SelfSystem: Додано примусове оновлення аутентифікації за атрибутом "rqAuthForce". Додано переспрямування запитів хостів за атрибутом "reforwardHost", у вхідній частині.

Інтерфейс Користувача

  • VCAEngine,Vision: Розділювач логічних груп атрибутів віджетів всюди змінено із ":" у ": ", переважно для можливості опису формату значення користувацьких атрибутів із типовим символом розділювача ":". У вигляді "Таблиця" примітиву FormEl до кореневого тегу "tbl" додано атрибут "sortEn" з метою прямого сортування за стовпчиками та параметр елементу заголовку "sort" для вказання на рядок для сортування при ініціалізації.
  • FIX:Vision,WebVision: Режим "XY" примітиву "Діаграма" виправлено на предмет вимкнення побудови за сортованими даними за 'X', тільки за ієрархічною послідовністю. Для примітиву "Діаграма" до блоку даних "data:<dt/>" додано параметр "Aproximation (aprox)".
  • FIX:UI.QTCfg: Опрацювання статусів зовнішніх хостів значно покращено та виправлено. FIX: Таймаути зовнішніх хостів зроблено конфігурабельними, за параметром "TmConChk". FIX: Параметри StartUser та StartPath пересунуто під захоплювач ресурсу типу MtxString.
  • FIX:VCAEngine: Додано захоплювач функціонального ресурсу у SesPage::setEnable().
    • FIX: setNoTransl() вимкнено у завантажені атрибутів, у зв'язку із деякою проблемністю та відсутністю сенсу.
    • Додано примусове успадковування типів зв'язків, незалежно від локальної зміни цих атрибутів.
    • До об'єкту проекту додано властивість "EnableByNeed", для контролю за готовністю цього проекту після старту та попередження тривалого підключення через відкладене увімкнення.
    • Попереджено спробу увімкнення вимкненої сторінки під час встановлення порушення, через спостереження дивних падінь тут, тільки у LTS.
    • Додано повідомлення зауваження часу виконання: "Користувача змінено на ...", "Користувач підключений ...", "Користувач відключений ...".
  • FIX:Vision:
    • FIX: Здійснено дуже важливі виправлення на предмет адаптації до стабільної роботи із серверами СВК:
      • Атрибути модуля VCAStation, UserStart, UserPass та UserStBar::{user,pass,VCAStation} пересунуто під захоплювач ресурсу типу MtxString.
      • До обох частин, виконання та розробки, додано ініціююче підключення із часом таймауту відновлення підключення, з метою забезпечити завантаження ресурсів серверу СВК.
      • Опрацювання інформаційного діалогу про втрату підключення було пересунуто до одного запиту (та потоку) із updatePage().
    • FIX: Вигляд "Таблиця" примітиву "FormEl" значним чином розширено: глобальними атрибутами таблиці: "hHdrVis", "vHdrVis"; атрибутами рядка "colorText", "font"; атрибутами стовпчика "color", "colorText", "font".
    • FIX:Вирівнювання сторінок, вкладених у контейнер, переписано на предмет відстеження оновлення геометрії віджету та запобігання появі срічок гортання у випадку невідповідного вирівнювання.
    • FIX: Додано відновлення палітри до функції visibleCheck для запобігання артефактів у примітиві FormEl, на кінець.
    • FIX: Повідомлення миші в цілому включено для примітиву "FormEl" та виправлено деякі артефакти на кшталт втрати рисок у слайдері.
    • FIX: Виправлено проблеми контекстного меню для виглядів "Перелік", "Дерево" та "Таблиця" примітиву "FormEl".
    • Запити до зовнішніх хостів пересунуто до використання cntrIfCmd().
    • Віддалену аутентифікацію розширено на використання аутентифікації хоста, по замовченню, та самого підключення для її перевірки.
    • Таймаут спроб відновлення підключення до віддаленої станції зроблено прогресивним, до вказаного значення, та відображення повідомлення помилки здійснюється після значення таймауту у три секунди.

Спеціальне

  • SystemTests: Тести БД розширено тестом сканування.