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 • ‎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.

Интерфейс Пользователя

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

Special

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