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

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

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

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

  • SYS: Ресурсы конфигурации отделены в cfgRes(). ModSched: Отделен захват ресурсов в "schM".
  • FIX:SYS: Функцию API пользователя SYS.strDecode() исправлено на предмет использования аргумента 2 по умолчанию.
  • TCntrNode: Флаги MkDisable, Disable, MkEnable, Enable переименованы в DoDisable, Disabled, DoEnable, Enabled. Режим отложенного удаления окончательно убрано, как флажок NodeShiftDel, удаление последнего аргумента в функции nodeDel() и chldDel().

Дополнения:

  • SYS: Добавлено короткую функцию-ссылку rRnd() на TSYS::realRound() (в области имен OSCADA). Добавлено статический вариант функции TSYS::getCmdOpt_() для возможности использования в основной пускающей программе. Объект API пользователя XMLNodeObj расширено функцией clear() для обеспечения быстрой очистки узла от потомков, текста и/или атрибутов.
  • TRegExp: расширено опцией 'u' для разрешения UTF-8 символов и установлено её принудительно для локали UTF-8.
  • Transport: Объекты API пользователя дополнены функциями: In::{status,addr}, Out::{status,addr,timings}.
  • Archive: Объекты API пользователя дополнены функциями: TVArchive::{status,archivatorList,getVal}(), TVArchivator::status().

SYS

  • Переключено на сборку с помощью автоматического построителя пакетов OpenSCADA и предоставления сервисных обновлений "0.8.13.{S}" пользователям, подписанным на техническую поддержку, oscada.org/ru/uslugi/tekh-podderzhka/.
  • Основную стартовую программу "openscada" значительным образом переписано для обеспечения создания настоящего режима демона: проверка и переключение в режим демона сначала; обработка CoreDumpAllow для оставшегося в работе процесса; проверка и создание PID-файла для рабочего процесса; непосредственно запуск ядра OpenSCADA.
  • FIX:TCntrNode: Разрешено предоставление отключенных узлов (Disabled) в их перечне, как и проверку на наличие.
  • FIX: Предупреждено падение рано-запущенных функций у load_() DAQ.JavaLikeCalc, по командной строке "openscada --help". Подсистему DAQ установлено в упорядоченную и для определения приоритетного режима модулей добавлено свойство модуля "HighPriority", для размещения их первыми.
  • FIX: debian/rules упрощено и унифицировано. Установлено "dh_installinit --no-start" для предотвращения автоматического запуска этого сервиса. debian/control: Добавлено зависимости для сборки с Qt5.
  • FIX:Скрипты инициализации:
    • FIX:Debian: значительно улучшено, упрощено, адаптировано к PID и исправлено удалением принудительной установки LC_ALL, которая ломала индивидуальную установку LC_NUMERIC=C для отличных от C, POSIX или Английских локалей.
    • ALTLinux: значительно улучшено, упрощено, адаптировано к использованию PID и расширено аргументом "--retry TERM/30/KILL/5".
    • Gentoo: значительно улучшено, упрощено, адаптировано к использованию PID и очищено.
    • RH: значительно улучшено, упрощено, адаптировано к PID и расширено аргументом "-d 30".
  • TVarObj: Блокирование ресурсов общих данных объектов API пользователя Res заменено на pthread_mutex_t, а также использовано для подключения к объектам.
  • signal() заменено на sigaction() и добавлено восстановление оригинальных обработчиков при разрушении TSYS.
  • TArchives,TCntrNode,UI.VCAEngine: Все оставшиеся операции с TArrayObj перенесены на arGet() и arSet().

БД

  • FIX:FireBird: Предупреждено исправление таблиц для ключей с типом blr_varying. Шаблон конфигурации AX_LIB_FIREBIRD несколько адаптировано для конфигураций и сборки с заголовками в */include/firebird, как в SuSE, и 64-битными библиотеками, как в Mandriva64.
  • MySQL: Смысл поля адреса "имена" изменено на "уставки" (кодирование-сравнение-движок) для добавления во время создания БД и команды SET.
  • FIX:PostgreSQL: Добавлено обход проблемы дублирования одних и пропуск других записей в запросе fieldSeek(), путём добавления "ORDER BY" к этому запросу и принудительной их сортировки. Зависимости сборки в макросе AX_LIB_POSTGRESQL несколько исправлены в результате.
  • FIX:SQLite: Адаптировано к описанию ключей как порядковой позиции ключа.

Сбор данных

  • FIX:ModBus,DAQGate,OPC_UA: Исправлено возврат после условия "!p->enableStat() || !p->owner().startStat()" в функции установки значения, для предотвращения последующей и реальной записи.
  • FIX:OPC_UA:
    • FIX: libOPC_UA: Сервис TranslateBrowsePathsToNodeIdsRequest исправлено для случая некорректных путей, добавлено дополнительные сообщения отладки.
    • FIX: Исправлено ожидание и сборку частей больших сообщений входного протокола.
    • FIX: Вход: Исправлено возможное отбрасывание лишних частей запросов после полных запросов, которые не требуют немедленного ответа и не являются ошибочными.
    • FIX: Тип OpcUa_Int64 исправлено расширением iN{u}() и oN{u}().
    • Добавлено поддержку типа Массив(Array) простых типов, добавлено обработку AId_DataType для типа Array в серверной части.
    • Для контроля за ограничениями добавлено вкладку "Данные", добавлено лимит limRetrQueueTm() для контроля времени очереди переотправки.
    • К сервису "RepublishRequest" добавлено и использовано ошибку OpcUa_BadMessageNotAvailable.
    • Главное целое заменено с OpcUa_Int32 на OpcUa_Int64.
  • FIX:Siemens: Версию LibnoDave обновлено до 0.8.5 (последняя от 05/17/13), исправлено приведение указателя к целому путём замены приведения в long.
  • ICP_DAS: обновлено libi8k.a и заголовки, сторожевой таймер EnableWDT() для LP-8x81 заменено на EnableSysWDT().
  • FIX:JavaLikeCalc: Расширено командами виртуальной машины AddAss, SubAss, MulAss, DivAss для оптимального выполнения операций ++, --, +=, -=, *=, /=, сразу с присвоением; значительным образом для операций с типом данных "Строка" и предупреждения лишнего перевыделения памяти там с каждым добавлением. FIX: Функции виртуальной машины Равно (Equal) и НеРавно (NotEqual) подстроено под возможность корректной обработки неопределённых свойств объекта путём общей обработки как Вещественное для всех типов кроме "Строка". Установлено использование общего временного регистра для бинарных операций типа "a = b+c+d+e;", в значительной степени с целью оптимизации скорости в добавлении строк.

Транспорт

  • Sockets: Добавлено свойство MSS для контроля за размером TCP-сегмента на плохих каналах.

Архив

  • FIX: Исправлено обработку mLastGet для значений, на предмет исключения записи в нективный буфер.
  • FIX:FSArch: Исправлено процедуру ремонта файлов значений для значений фиксированных типов и добавлено наконец код ремонта для нефиксированного типа (как строка). Успешно выполнено всю цепь тестов, всех типов фиксации, для механизма последовательной упаковки и исправления ошибок архивных файлов. Свойство командной строки "copyErrValFiles" заменено наличием каталога "errors" для копирования ошибок сюда.
    • FIX: Исправлено обработку удаления файлов за лимитом на предмет удаления свежего-нового файла архива в случае когда их два.
    • FIX: Архивацию Строк окончательно исправлено после предыдущего неполного исправления на предмет последнего значения.
    • FIX: Добавлено проверку на отсутствие свободного места хранилища для предотвращения зависанию и потере данных сообщений и значений.
    • Лимит сообщений в плоском формате расширено до 100000 символов.
    • Добавлено вкладку "Файлы" для сообщений и значений с детальной информацией про файлы архива.

Протокол

  • SelfSystem: Добавлено свойство ЛимитОдногоХостаПользователя (SingleUserHostLimit) для контроля ограничений и сообщения про ошибку в случае достижения. Расширено статусом - Активные сеансы аутентификации.
  • HTTP: Расширено статусом - Активные сеансы аутентификации.

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

  • FIX:VCAEngine,Vision,WebVision:
    • FIX: Для примитива "Диаграмма" расширено вариант адреса "data:{XMLNodeData}" на предмет возможности отсутствия "tm", "tm_grnd" и установки их в секундах, по атрибуту 's'. Исправлено назначение загруженных но не добавленных в буфер значений, для вариантов прямой адресации "line:{value}" и "data:{XMLNodeData}".
    • FIX: Вид "Кнопка" примитива FormEl адаптирована к масштабированию изображения ко всему размеру виджета и разрешению накрывать всё пространство этого изображения.
    • Добавлено поддержку типа "XY" в примитив "Диаграмма", где Y по нечётным и X по чётным параметрам.
    • Добавлено правильное масштабирование размера вложенных виджетов по масштабированию крайней точки, для корректной подстройки один к одному на любом масштабе.
    • К примитиву ElFigure добавлено атрибут "mirror" с целью предоставления возможности зеркалирования вида примитива. Для UI.Vision внедрено только основные функции и некоторые проблемы с дугой сейчас присутствуют.
  • FIX:QTStarter: Для ожидания уничтожения задания UI тайм-аут установлено в 60 секунд и разрешена генерация исключения в случае исчерпания времени уничтожения.
  • FIX:QTCfg:
    • FIX:LineEdit: Вид "Целое" исправлено на предмет установки разрешённых границ значений [-2147483647:2147483647]
    • TextEdit: Установлено принудительный перенос слов, значительным образом для длинных описаний. Добавлено вертикальную подгонку этих полей к полному размеру страницы, для заполненных. Переписано для удаления внутреннего разместителя.
  • FIX:VCAEngine:
    • FIX: Исправлено ссылку на атрибут виджета из виджета с помощью "wdg:a_XXX" и предотвращено его падение в главном статусе.
    • FIX: Операции API пользователя mime() и mimeSet() использовано, проверено и исправлено на предмет редактирования источника примитива "Диаграмма", сохранения в таблице сеанса и отражения результата, для SVG.
    • Захват ресурса функции библиотеки виджетов и проекта во время загрузки и включения по потребности для предупреждения многократного входа и выполнения. Предупреждает падение и доступность неполных данных у удалённых исполнителей сеанса проекта.
  • FIX:Vision:
    • FIX:FormEl: Исправлено случайные отличие между реальным и видимым значением, значительным образом для дискретных видов ComboBox и CheckBox.
    • FIX:ElFigure: Предупреждено зависание на нулевой длине между центром и первым радиусом. Временно удалено из scaleRotate() и unScaleRotate() добавление остатка размещения виджета в родительском контейнере для предотвращения в некоторых случаях щелей между заполнениями. Исходные тексты значительным образом почищены, в продолжение. Исправлено некоторые ошибки. Начато реализацию для зеркалирования. Добавлено несколько более разумный контроль за контрольными точками 1 и 2 дуги.
    • FIX: Предотвращено двойное освобождение в связи с запоздалым восстановлением пользователя и пароля после смены пользователя на недопустимого для чтения из сеанса проекта.
    • FIX: Исправлено удалённое получение перечня проектов и сеансов для удалённого пользователя, в поле пользователя запуска.
    • FIX: Разрешённые значения координат ограничено в [-1000000:1000000] в связи с замораживанием обновления фигур в Qt по причине очень больших значений.
    • FIX: Удалено принудительные и глобальные текстовые стили "font-weight", "font-style" примитива "Документ" и установлено их только в случае наличия соответствующих свойств в атрибуте шрифта виджета, чтобы обеспечить нормальную работу тегов "<B>" и "<I>".
    • FIX: Сообщения "Исчерпано время ожидания" во время попыток восстановления запущенного сеанса, через фоновое ожидание загрузки данных проекта, подавлено и предупреждено закрытие главного окна.
    • Печать и экспорт примитива "Документ" разрешено из контекстного меню. Печать по умолчанию установлено для одного и большого (не менее чем вдвое от главной страницы) документа. Экспорт по умолчанию установлено для одного и большого (не менее чем вдвое от главной страницы) документа или диаграммы.
    • К статусу конфигурационной страницы модуля добавлено перечень главных открытых окон, для удалённого контроля.
  • WebVision: Пользователь "root" или пользователи в группе "root" допущены к многократному открытию сеансов при любых условиях.