From OpenSCADAWiki
Jump to: navigation, search
(Created page with "{{CntHdr|Протокол}} * SelfSystem: Загрузка XML расширена использованием опций LD_NoTxtSpcRemEnBeg и разрешением про...")
(Created page with "{{CntHdr|Интерфейс Пользователя}} * {WebUser,WebVision}: Расширены использованием унифицированного сервисно...")
 
Line 74: Line 74:
 
* HTTP: Значительным образом унифицирован для создания сервисных страниц с помощью одной функции pgCreator(). Функция pgCreator() первично реализована как функцию API пользователя модульного объекта HTTP и разрешена для использования в WEB-подмодулях для создания собственных сервисных страниц с общим стилем. Внешние вызовы к WEB подмодулям расширены функциями HTTP_GET(), HTTP_POST() с аргументом TProtocolIn *iprt, а старые вызовы HttpGet(), HttpPost() также продолжают проверяться и поддерживаться. Основной диалог выбора расширен изображениями и контекстной помощью к присутствующим WWW-модулям. Шаблон главной страницы отделён от основного шаблона с целью предоставления полностью специфичной пользователю главной страницы.
 
* HTTP: Значительным образом унифицирован для создания сервисных страниц с помощью одной функции pgCreator(). Функция pgCreator() первично реализована как функцию API пользователя модульного объекта HTTP и разрешена для использования в WEB-подмодулях для создания собственных сервисных страниц с общим стилем. Внешние вызовы к WEB подмодулям расширены функциями HTTP_GET(), HTTP_POST() с аргументом TProtocolIn *iprt, а старые вызовы HttpGet(), HttpPost() также продолжают проверяться и поддерживаться. Основной диалог выбора расширен изображениями и контекстной помощью к присутствующим WWW-модулям. Шаблон главной страницы отделён от основного шаблона с целью предоставления полностью специфичной пользователю главной страницы.
  
{{CntHdr|UI}}
+
{{CntHdr|Интерфейс Пользователя}}
* {WebUser,WebVision}: Expanded to using the unified service interface from Protocol.HTTP by pgCreator() and the new HTTP call functions HTTP_GET, HTTP_POST.
+
* {WebUser,WebVision}: Расширены использованием унифицированного сервисного интерфейса из Protocol.HTTP с помощью pgCreator() и новых функций HTTP_GET, HTTP_POST вызова HTTP.
* QTStarter: X Session manager disabled from restart the closed at exit programms. Expanded by a command line argument "--noX11" for allow the Qt disabling.
+
* QTStarter: Отключен менеджер сеансов X от перезапуска закрытых при выходе программ. Расширен параметром командной строки "--noX11", чтобы позволить отключение Qt.
* QTCfg: Dangerous missed page refreshing prevented into applying changes on widgets of the replacing page, "Apply dialog for changes missing prevent". Moved from QMutex and QWaitCondition to ResMtx and CondVar, mostly to prevent here hangs on the system time changing.
+
* QTCfg: Предотвращено опасное обновление отсутствующей страницы в принятии изменений на виджетах страницы которая замещается, "Диалог принятия для предупреждения потери изменений". Использование QMutex и QWaitCondition заменено на ResMtx и CondVar, в основном для предотвращения зависаний при смене времени системы.
* VCAEngine: FuncM resources lock set for a recursive to prevent dead locks. Session calculation time expanded by its maximum value. Adapted to TUIS::mimeGet() using.
+
* VCAEngine: Блокирование ресурсов FuncM установлено в рекурсивное для предотвращения "мёртвых" блокирований. Время вычисления сеанса расширено максимальным значением. Адаптирован к использованию TUIS::mimeGet().
* Vision: Visualizer specific attributes are alowed for the primitives and an attribute "sclWin" added and used to primitive "Diagram" for trends view in scale by window drawn by mouse. To primitive "Diagram" of the mode "Trend" the sliding by mouse is added in the time axis. Widget's tooltip and statustip set to show at not full transparent widget's parts.
+
* Vision: Разрешено объявление специфических для визуализатора атрибутов примитивов и атрибут "sclWin" добавлен и использован для примитива "Диаграмма" с целью масштабирования содержимого трендов, путём отрисовки окна мышей. Для примитива "Диаграмма", в режиме "Тренд", добавлено скольжение мышей по шкале времени. ToolTip и StatusTip виджета установлены для отображения на не полностью прозрачных частях виджета.
* WebVision: Adapted to asynchronous calls for all regular updatings by servGet() and makeEl() adapting to it. SVG images show fixed by correct mime processing into UI.VCAEngine and TUIS::mimeGet() using. View "Button" of primitive "FormEl": fixed for next line processing, fixed for true text and image represent. For primitive "Text" set "line-height" for prevent upper font's padding and its representing for rotated texts moved to use CSS property "transform: rotate({X}deg)". * The prototype "Media" processing some fix for "fit" toggle and container's scale changing. Font's behaviour was expanded to support for text decorations "underline" and "line-through".
+
* WebVision: Адаптирован к асинхронным вызовам для всех регулярных обновлений с помощью servGet() и также makeEl() адаптирован к этому. Исправлено отображение SVG изображений путём корректной обработки "mime" в UI.VCAEngine и использования TUIS::mimeGet(). Вид "Кнопка" примитива "FormEl": исправлена обработка следующей строки, исправлен на предмет корректного отображения текста и изображения. Для примитива "Текст" установлено "line-height" с целью предотвращения верхнего отступа шрифта и в его представлении для повёрнутых текстов использовано CSS свойство "transform: rotate({X}deg)". Обработка примитива "Media" несколько исправлена на предмет переключения "fit" и изменения масштаба контейнера. Поведение шрифта расширено поддержкой декорации текста "underline" и "line-through".
* WebUser: Semantics of the page's function expanded by two objects' arguments "This object" and "Protocol's object".
+
* WebUser: Семантика функции страницы расширена двумя объектными аргументами "Этот объект" и "Объект протокола".
* WebCfgD: A new design created.
+
* WebCfgD: Создан новый дизайн. Адаптация к функциям HTTP_GET, HTTP_POST вызова HTTP и перевод всего на общий построитель страниц HTTP::pgCreator().

Latest revision as of 09:34, 25 April 2020

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

Это обновление релиза 0.8 LTS исправляет около 60 ошибок и добавляет некоторые улучшения, которые целиком вы можете почитать в протоколе изменений обновления.

API
!!!!:Изменения:

  • SYS: Множество функций установлено как константы, после дополнения некоторых объектов копирующими конструкторами.
    • TConfig::cfgChange() дополнена аргументом предыдущего значения конфигурации "pc".
    • TVariant: В строковом типе расширена преобладающим использованием STL-строки, кроме полей которые помечены как "stdStringOmit", в основном для TCfg как константа.
    • Функции load() и load_() узла расширены аргументом TConfig *cfg для возможности прямой загрузки после сканирующего запроса. Удален аргумент "force" функции узла load() и заменен предварительным вызовом modifG().
    • Объект захвата ресурса ЧтенияЗапии "Res" переименован в "ResRW".
    • Функция TModule::modFunc(), получения ссылки на экспортированные функции, расширена вызовом без исключений и результатом.
    • Функция strNoSpace() расширена контролем обрабатываемых символов и переименована в strTrim(). Обрабатываемые по умолчанию символы установлены в " \n\t\r".
    • time2str() и tm2s() астрономического времени переименованы в atime2str() и atm2s() и время начала, соответствующих относительных функций, было изменено с микросекунд на секунды.
    • taskSleep(), в аргументе "cron", заменена на чистое (строка) представления для возможности получения начальной точки к обнаруженной смене астрономических часов и соответствующей коррекции цели крона, а также измерения использованного времени для taskUtilizTm().
    • TVariant::propClear() расширен на предмет очистки одного указанного свойства.
    • taskUtilizTm() расширен аргументом "max" для получения этого максимального значения, и само значение изменено на секунды.
    • Добавлена функция taskDescr() для получения ссылки на структуру описания текущего задания.
  • DAQ: Вариант "Постоянная", конфигурационного поля шаблона, переименован в "Переменную" а, соответственно, "Публичная постоянная" в "Постоянная".
  • Archive: Архиватор значений расширен поддержкой режима аккумуляции, в основном для Archive.DBArch. Атрибут "tm", результирующего массива функции API "getMess", заменён на тип "int".
  • Protocol: API входной части приведён к виду рабочей (Work) ветви на предмет добавления функций srcAddr(), setSrcAddr() и изменения mess().

Дополнения:

  • SYS: Добавлена системная опцию "clockRT" для выбра часов планирования задач CLOCK_REALTIME иначе это CLOCK_MONOTONIC (по умолчанию сейчас).
    • Добавлен объект управления условными переменными "CondVar".
    • К объекту TCntrNode добавлена функция mess_sys(), с целью создания системных сообщений с путём этого узла в категории и расположения в начале этого сообщения, с помощью новой функции nodeNameSYSM().
    • К объекту TCntrNode добавлена функцию err_sys(), с целью создания объекта ошибки с путём и размещением узла.
    • Добавлены функциональные шаблоны fmin() и fmax().
    • Для функции strTrim() создан короткий вызов sTrm() и он везде использован.
    • TSecurity: Добавлена функция пользовательского API User::groups() и Group::user().
    • Добавлена функцию пользовательского API TVal::isCfg().
  • DB: Для функции пользовательского API SQLReq() добавлено направление ошибок от исключений на атрибут "err" результирующего массива.
  • DAQ.JavaLikeCalc: Список функций строки расширен trim().
  • Transport: Функция messIO() пользовательского API расширена размером входного буфера.
  • Transport.Serial: Добавлена функцию sendbreak() к пользовательскому API выходного транспорта.
  • UI: Расширен функцией mimeGet() для определения типа "mime" по исходной информации, расширению файла и его содержимому.
  • Special.FLibSYS: Дополнен функцией вычисления "Message Digest 5 (MD5)" с OpenSSL и функцией floatExtract() для извлечения экспоненты и мантиссы из значения реального типа.

SYS

  • TCntrNode: Концепция управления ресурсами заменена на стабилизированную в рабочей (Work) ветви.
  • Исправлено множество ошибок и предупреждений из отчёта PVS-Studio, благодаря Максиму Кочеткову.
  • Все части адаптированы к новому аргументу "cfg" функций загрузки, предзагрузки dataSeek() и прямой загрузки после сканирующего запроса.
  • Новые функции mess_sys(), err_sys() объекта TCntrNode использованы везде в ядре OpenSCADA и модулях.
  • Модульная версия подсистем "БД", "DAQ", "Архив", "Транспорт" поднята до 9 и для подсистем "Protocol", "UI" поднята до 8. Версия библиотеки установлена в 2:5:0.
  • Функции LibZ переписаны для некоторой унификации и оптимизации использования памяти.
  • Адаптировано и несколько исправлено для сборки GCC v6, с C++11 по умолчанию.
  • Минимальный уровень сообщений для всех конфигураций установлен в "Информация(1)".

БД

  • {.,FireBird,MySQL,PostgreSQL,SQLite}: К функции fieldSeek() и dataSeek() добавлен режим предзагрузки сканирования с целью значительного увеличения производительности тут.
  • *: getVal() расширен и унифицирован.
  • {SQLite,MySQL,PostgreSQL,FireBird}: Расширены на предмет использования NULL для сохранения/представления общего EVAL.
  • PostgreSQL: Объект БД расширен статистикой контроля активности и задержек.

Сбор данных

  • Состояние исполнения заданий расширено максимальным временем использования.
  • DAQGate: Адаптирован для сохранения назначения параметров по станциями, с целью обеспечить их раннее восстановление без необходимости синхронизации. Добавлен опциональный контроль за автоматическим удалением параметров и атрибутов.
  • LogicLev: Установка значения атрибута "f_frq" изменена на реальную частоту, полученную из структуры описания этого задания.
  • OPC_UA.libOPC_UA: К серверной части добавлена поддержка кусков. Куски проверены для входных запросов на небезопасных и безопасных подключениях. Исправлено размещение в очереди и дальнейшая обработка запросов публикации, и сообщений в целом, для безопасных подключений и для подтверждения обычных после прямой обработки.
  • JavaLikeCalc: Добавлена поддержка динамического связывания с внешними функциями путём: function {nm} = "{addr}"; {nm}();. Вызов объектных функций оптимизирован на предмет прямой передачи имени в команду вызова. Расширен оператором "delete" для освобождения объектов и их свойств.
  • System: Расширен источником данных "ФС". Автоматическое создание источников расширено режимами "Быстрые" и "Медленные".

Архив

  • Предотвращены лишние записи прямо архиватору в TVArchive::setVals(). getMess() исправлен на предмет двойного вызова функции модуля get(), через использование fmin().
  • {.,FSArch}: Добавлена информацию последнего чтения буфера и использование этого свойства в целом исправлено. Предотвращены исключения в archivatorAttach() и остановка объекта архиватора чтобы обеспечить возможность ранньего запуска архива.
  • DBArch: Часть архивации сообщений исправлена в "needMeta" и добавлен отказ в доступе к архиватору до удачного получения "meta". Чтение архива значений сделано оптимальным по времени, до десяти раз, через использование ключа "MARK" и сканирующего запроса. Часть архивации значений расширена группировкой архивов в одной таблице, в основном для увеличения производительности.

Транспорт

  • К диалогу ручного запроса выходного транспорта добавлен размер входного буфера.
  • Serial: Выходной транспорт расширен проверкой и использованием I2C. Контроль потока дополнен режимом RTS переключателя (true/false) и фильтраций эхо.
  • Sockets: Чтение ответа выходного транспорта после FD_ISSET в "ложь" расширено путём чтения SO_ERROR сокета и ожиданием прерывание по любой ошибке сокета. Выходной транспорт переключен на две попытки проверки SO_ERROR, на время чтения ответа, чтобы дать некоторое время на чтение через временами продолжительное чтение состояния SO_ERROR.
  • SSL: Расширен прямыми методами: TLSv1.1, TLSv1.2, DTLSv1.

Протокол

  • SelfSystem: Загрузка XML расширена использованием опций LD_NoTxtSpcRemEnBeg и разрешением пробелов в начале и конце текстовых элементов.
  • HTTP: Значительным образом унифицирован для создания сервисных страниц с помощью одной функции pgCreator(). Функция pgCreator() первично реализована как функцию API пользователя модульного объекта HTTP и разрешена для использования в WEB-подмодулях для создания собственных сервисных страниц с общим стилем. Внешние вызовы к WEB подмодулям расширены функциями HTTP_GET(), HTTP_POST() с аргументом TProtocolIn *iprt, а старые вызовы HttpGet(), HttpPost() также продолжают проверяться и поддерживаться. Основной диалог выбора расширен изображениями и контекстной помощью к присутствующим WWW-модулям. Шаблон главной страницы отделён от основного шаблона с целью предоставления полностью специфичной пользователю главной страницы.

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

  • {WebUser,WebVision}: Расширены использованием унифицированного сервисного интерфейса из Protocol.HTTP с помощью pgCreator() и новых функций HTTP_GET, HTTP_POST вызова HTTP.
  • QTStarter: Отключен менеджер сеансов X от перезапуска закрытых при выходе программ. Расширен параметром командной строки "--noX11", чтобы позволить отключение Qt.
  • QTCfg: Предотвращено опасное обновление отсутствующей страницы в принятии изменений на виджетах страницы которая замещается, "Диалог принятия для предупреждения потери изменений". Использование QMutex и QWaitCondition заменено на ResMtx и CondVar, в основном для предотвращения зависаний при смене времени системы.
  • VCAEngine: Блокирование ресурсов FuncM установлено в рекурсивное для предотвращения "мёртвых" блокирований. Время вычисления сеанса расширено максимальным значением. Адаптирован к использованию TUIS::mimeGet().
  • Vision: Разрешено объявление специфических для визуализатора атрибутов примитивов и атрибут "sclWin" добавлен и использован для примитива "Диаграмма" с целью масштабирования содержимого трендов, путём отрисовки окна мышей. Для примитива "Диаграмма", в режиме "Тренд", добавлено скольжение мышей по шкале времени. ToolTip и StatusTip виджета установлены для отображения на не полностью прозрачных частях виджета.
  • WebVision: Адаптирован к асинхронным вызовам для всех регулярных обновлений с помощью servGet() и также makeEl() адаптирован к этому. Исправлено отображение SVG изображений путём корректной обработки "mime" в UI.VCAEngine и использования TUIS::mimeGet(). Вид "Кнопка" примитива "FormEl": исправлена обработка следующей строки, исправлен на предмет корректного отображения текста и изображения. Для примитива "Текст" установлено "line-height" с целью предотвращения верхнего отступа шрифта и в его представлении для повёрнутых текстов использовано CSS свойство "transform: rotate({X}deg)". Обработка примитива "Media" несколько исправлена на предмет переключения "fit" и изменения масштаба контейнера. Поведение шрифта расширено поддержкой декорации текста "underline" и "line-through".
  • WebUser: Семантика функции страницы расширена двумя объектными аргументами "Этот объект" и "Объект протокола".
  • WebCfgD: Создан новый дизайн. Адаптация к функциям HTTP_GET, HTTP_POST вызова HTTP и перевод всего на общий построитель страниц HTTP::pgCreator().