From OpenSCADAWiki
Jump to: navigation, search

API

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

  • SYS: Типовой конструктор ResMtx установлен в true для "isRecurs", поскольку это общая ситуация.
    • Большинство функций добавления в контейнер узлов расширено возвратом результирующего идентификатора/имени созданного узла для: chldAdd(), TSecurity::{usrAdd(),grpAdd()}, TTypeBD::open(), TTypeTransport::{inAdd(),outAdd()}, TValue.chldAdd(), DAQ.{TController::add(),TParameter::add(),BlockCalc.blkAdd()}, TTypeArchivator::{messAdd(),valAdd()}, TArchiveS::valAdd(), UI.VCAEngine::{wlbAdd(),prjAdd(),WLib.add(),Project.add(),Project.Page.pageAdd()}, UI.WebUser.uPgAdd().
    • TFld::Selected везде переименован в TFld::Selectable.
    • Вариант специальной функции strMess() с ограничением размера результирующего сообщения удален и заменен функцией strEncode() с типом TSYS::Limit.
    • chldList() и chldPresent() сделаны виртуальными.
  • DAQ,Special: Атрибут "run_st" в TPrmTmplLib и TSpecial переименован в runSt.
  • Archives: TArchiveS::messPut() очищено от аргумента "force".
  • Protocols.HTTP: Функции пользовательского API pgAccess(), pgCreator() перенесены из TProtocol в TProtocolIn.
  • Transports.In: Функция protocol() переименована в protocols() и удалена protocolFull().

Дополнения:

  • SYS: Добавлен общий механизм замков через контейнер замков, функция commonLock().
    • TConfig,*: Функции API пользователя для конфигурации TConfig::cfg() и TConfig::cfgSet() расширены контролем прав.
    • Дополнено функциями TCfg::toDefault() и TConfig::cfgToDefault() сброса конфигурационного контекста к типовому.
    • Объект TFunction дополнен признаком изменённости процедуры isChangedProg(), и флажок TFld::Selectable и функция ioAdd() дополнены результатом позиции добавленного ВВ.
    • Запрос Интерфейса Управления "load" расширен определением выбранной БД в атрибуте "force", для осуществления такой операции над конкретным узлом.
    • XMLNode: Функция получения атрибутов attr() расширена опциональным аргументом определения присутствия.
    • "Массив (Array)" пространства пользователя расширен функциями indexOf() и lastIndexOf().
    • Функция API пользователя SYS.fileRead() расширена аргументами смещения и размера блока чтения.
    • Функция API пользователя strEncode() дополнена поддержкой вариантов "ToLower" и "Limit".
    • API пользователя дополнено функцией strFromCharUTF() формирования строки из UTF-8, UTF-16, UTF-16LE, UTF-16BE, UTF-32, UTF-32LE, UTF-32BE.
    • Дополнено определением периодичности сервисного задания SERV_TASK_PER=10.
    • API пользователя дополнено функцией SYS.fileSize().
    • Добавлена функция str2atime() для конвертации времени в строке во время от эпохи UNIX с поддержкой GMT.
    • TError дополнено названиями кодов ошибок в перечислении "Codes", которые везде использованы.
    • Специальные названия архивов дополнено названием ALRM_ARCH_CH_NM ("<alarmsChange>"), для простой смены присутствующих нарушений.
    • Ограничения дополнены USER_ITS_LIMIT (1000000) для ограничения количества элементов вроде пользовательских массивов из DAQ.JavaLikeCalc.
  • DB: Добавлен контроль закрытия транзакций в ядре OpenSCADA функциями trTm_ClsOnOpen(), trTm_ClsOnReq() и trPr_ClsTask().
    • Добавлен контроль процесса пере-включения объектов БД функцией disabledByUser().
    • Дополнено конфигурацией "Время жизни открытых таблиц", для закрытия неактивных таблиц функцией tblLifeTime().
    • Атрибут TBD::mEn перенесён в защищённое пространство.
  • Транспорты:
    • In: Дополнено виртуальными функциями keepAliveReqs(), keepAliveTm() для правильного KeepAlive на Web.
    • Out: Дополнено сервисом закрытия выходных транспортов согласно временем жизни (неактивности), сервисной функцией outLifeTime().
      • Расширено полем общего контроля попыток в функции attempts().
      • Унифицировано контролем времени последнего запроса в функции lstReqTm().
      • Добавлена функция outAddrHelp() для получения общей помощи по адресу модулей выходных транспортов.
  • Protocol.HTTP: Расширено функцией пользовательского API setUser() для изменения автентифицированного пользователя.
  • DAQ: TController::alarmSet() расширено аргументом "force" для принуждения установки нарушений на объектах контроллеров в резервировании.
    • DAQ-параметры дополнены функцией пользовательского API alarmSet() и функцией vlSetRednt() унифицированной записи значений в резервировании.
    • TDAQS::rdRestDtTm() расширено возвратом double вместо float.
    • Дополнено функцией пользовательского API daqAt().
    • Функцию пользовательского API funcCall() расширено аргументом "err".
    • JavaLikeCalc: Функции пользовательского API charAt() и charCodeAt() расширено поддержкой UTF. Функции пользовательского API расширено isNaN() для bool, integer, real, string (особенно для проверки чисел в строке).
  • Архивы:
    • Объекты TMArchivator и TArchiveS дополнено функцией redntTm() и rdTm() для получения последнего времени резервирования архивов сообщений.
    • TArchiveS::rdRestDtOverTm() расширено возвратом double вместо float.
    • Архивы значений дополнено общей опцией autoIdMode() режима формирования Идентификатора автоматически создаваемых архивов с вариантами перечисления AutoIdMode::{BothPrmAttrId,OnlyPrmId,OnlyAttrId}.
    • Val: Добавлены функции API пользователя getVals() и setVals() для реализации общего механизма доступа к архивам/истории в массиве и с фиксированной периодичностью.
  • UI: Декларацию контекстной документации из описания некоторых узлов унифицировано функцией TUIS::docKeyGet().
    • VCAEngine: Добавлена функция пользовательского API уровня сеанса this.ownerSess().uiCmd(). Виджет исполнения дополнен функцией API пользователя this.attrList() для получения перечня атрибутов виджета.