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() для отримання переліку атрибутів віджету.