From OpenSCADAWiki
Jump to: navigation, search
Other languages:
English • ‎mRussian • ‎Українська

Це оновлення релізу 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.

UI

  • {QTCfg,Vision}: Main window and main dialogs (developing for Vision) size and splitter's properties storing and restoring were added.
  • QTCfg: Fix vertical scalable widgets "Tables" and "Lists" by their placing at the end of the widgets stack. Prevented from high load at the respond waiting progress dialog.
  • VCAEngine: Different big (from the main task of the session) perioded widgets processing adapted to execution into different phases then to make the main task loading plainer and lesser at all. Added control for user action by its last action time.
  • QTStarter: Expanded for close (windows) and starting into the system tray. Significantly revised for the interface fully creation into the Qt events loop of exec() and WinControl functions moved to the StApp descendant of QApplication. Self menu of QTStarter with the Qt modules list was unified as the static storage of the actions for extending menus and toolbars of windows of the Qt modules and the system tray icon, placed also into the property "menuStarterAddr" of the application main object.
  • Vision:
    • The main window size was set to fit the master page size after return from maximizing or the full-screen and opening in the original size.
    • Runtime menu creation moved to whole mode that is full creation at needs and full clearing at not needs, for prevent the menu show at its inactive mode into some environments like Maemo and Unity.
    • Added control for the runtime user by a visualizer specific attribute "userSetVis" of the main page and by expanding of the user's status widget and the selection dialog.

Special

  • FLibSYS: VArch::set() expanded for single value writing to the archiver of the archive.