From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Documents/Release 0.8.0/Update19 and the translation is 100% complete.

Other languages:
English • ‎российский • ‎українська

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

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

  • SYS.*: Прапорець TCfg::TransltText перенесено до TFld::TransltText а також використано замість TFld::NoStrTransl, який видалено.
  • Транспорти: Замок загального доступу до вихідного транспорту змінено на мютекс та аргумент "noRes" видалено з функції messIO() для попередження неочікуваних виходів з критичної секції запиту. Об'єкт блокування ресурсу nRes та його функція nodeRes() видалено з об'єкту вхідного транспорту.

Доповнення:

  • SYS:
    • strEncode() розширено режимом "ToLower" для перетворення у нижній регістр.
    • Параметри командного рядку доповнено предзавантаженням та прямим доступом-модифікацією за допомогою нової функції cmdOpt(), повне переключення з getCmdOpt() на cmdOpt().
    • Бінарне декодування у strDecode() розширено значенням аргументу "<text>" для формування текстової частини праворуч.
    • XMLNodeObj: Доповнено функцією користувацького API getElementsBy() — отримання переліку вузлів XML за ім'ям тегу або значенням атрибуту.
    • TArrayObj: arSet() адаптовано для додання у кінець масиву за негативним індексом.
  • DAQ.{AMRDevs,ICP_DAS},Special.FLibSYS: Власна імплементація функції atof() та strtod() у функції TSYS::str2real() та її короткому посиланні s2r() та для розуміння обох символів поділу дробової частини реального числа "." та ",". DAQ.OPC_UA.libOPC_UA: Функцію TSYS::str2real() розташовано та використано у окремій бібліотеці. Наразі вимкнено!
  • Транспорти: Додано загальний протокол ВВ за вхідними та вихідними транспортами, до ядра та всіх транспортних модулів.
  • UI.VCAEngine: Доповнено функціями користувача у просторі сеансу: reqTm(), reqUser(), userActTm().

SYS

  • XMLNode
    • Виправлено щодо надлишкового резервування розміру рядка у кодуванні серіалізації, що призводило до значної деградації її продуктивності, особливо на великих деревах. Це має значно підвищити продуктивність мережевої взаємодії за XML.
    • Уніфіковано та виправлено серіалізацію у XHTML щодо: запобігання самозавершенню тегів для "script", "div; запобігання кодуванню символів "'" та '"' у тексті (також для XML); кодування UTF8 символу 0xA0 у " ".
  • TRegExp виправлено у функції match() щодо запобігання зависанню та падінню.
  • Версію бібліотеки ядра встановлено у 2:6:0. Модульну версію підсистеми "Транспорти" піднято до 10.
  • TConfig: Запобігання рекурсії входу у cfgChange() за прапорцем mInCfgCh.
  • XMLNodeObj,XMLNode: Видалення дочірніх вузлів здійснено з кінця, для збільшення швидкості цієї операції.

БД

  • Додано конфігурабельне обмеження відображення вмісту таблиць, типово це 100 рядків.
  • {SQLite,MySQL,PostgreSQL,FireBird}: Додано обмеження предзавантаження fieldSeek() у 100 записів для запобігання тривалому безперервному підвисанню.

Збір даних

  • {DCON,ModBus,Siemens}: Об'єкти мютексу "enRes" та "reqRes" встановлено у рекурсивні, від Олексія Бондарчука.
  • SoundCard: Значно переглянуто та виправлено для роботи з реальним та віртуальним, на кшталт PulseAudio, обладнанням та перевірено на частотах вибірки до 192000.

Архіви

  • Архіватори значень та повідомлень доповнено вимірюванням максимального часу опрацювання.
  • FSArch: Попереджено багаторазове пакування-розпакування файлів. Додано перевірку та очищення від нульових архівних файлів. Буфери архівації повідомлень та інформаційних файлів значень зроблено безпечнішими щодо можливого читання випадкових даних.
  • DBArch: Доповнено пропуском помилкових архівів значень.

Транспорти

  • {SSL,Sockets}.out: Функціональний замок ресурсів транспортів поєднано з reqRes().
  • Вхідні транспорти доповнено вимірюванням поточного та максимального часу запиту до протоколу, у режимі "Налагодження (0)". Вихідні транспорти доповнено вимірюванням часу відгуку, у режимі "Налагодження (0)".

Протоколи

  • HTTP: Розширено переліком користувачів, дозволених до автентифікації. mNoFull перейменовано у mNotFull.

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

  • {QTCfg,Vision}: Додано збереження та відновлення розміру головного вікна та головних діалогів (розробка Vision) та властивостей розділювачів.
  • QTCfg: Виправлено вертикально-масштабовані віджети "Таблиці" та "Переліки" шляхом їх розташування у кінець стеку віджетів. Попереджено високе навантаження на очікувані відповіді діалогу прогресу.
  • VCAEngine: Обробка різних віджетів з великим періодом (у головній задачі сеансу) адаптовано до виконання у різних фазах чим завантажуючи основне завдання більш рівномірно та загалом менше. Додано контроль дій користувача за часом дії.
  • QTStarter: Розширено закриттям (вікон) та запуском у системному треї. Значно переглянуто на предмет повного створення інтерфейсу у циклі повідомлень Qt exec() та функції WinControl перенесено до StApp, нащадку QApplication. Власне меню QTStarter, з переліком модулів Qt, уніфіковано щодо статичного сховища дій для розширення меню та панелей інструментів вікон Qt модулів та іконки системного трею, поміщено також до властивості "menuStarterAddr" головного об'єкту додатку.
  • Vision:
    • Додано підлаштовування розміру вікна під розмір головної сторінки після повернення з максимізації або повного екрану та запуску у оригінальному розмірі.
    • Створення меню режиму виконання змінено у повний режим, тобто повне формування за потреби та повне очищення за її відсутності; для запобігання відображення меню у неактивному режимі у деяких оточеннях на кшталт Maemo та Unity.
    • Додано контроль за користувачем режиму виконання за допомогою специфічного до візуалізатору атрибуту "userSetVis" головної сторінки, розширення віджета статусу користувача та діалогу обрання.

Special

  • FLibSYS: VArch::set() розширено записом одного значення до архіватору архіву.