From OpenSCADAWiki
Jump to: navigation, search

Программный интерфейс OpenSCADA для реализации доступа к архивным данным представлен объектами и виртуальными функциями вызовов из ядра OpenSCADA:

  • TTypeArchivator->TModule — Корневой объект модуля подсистемы "Архивы":
    • TMArchivator *AMess(const string &id, const string &db ); — Вызывается при открытии или создании нового объекта архиватора сообщений id данным модулем с хранилищем в db.
    • TVArchivator *AVal(const string &id, const string &db ); — Вызывается при открытии или создании нового объекта архиватора значений id данным модулем с хранилищем в db.
  • TMArchivator — Объект архиватора сообщений с реализуемым способом архивирования и расположением хранилища:
    • void start( ); — Запуск архиватора. Архиватор начинает принимать сообщения и размещать их в хранилище.
    • void stop( ); — Останов архиватора.
    • time_t begin( ); — Начало данных в архиваторе согласно текущему состоянию хранилища.
    • time_t end( ); — Конец данных в архиваторе согласно текущему состоянию хранилища.
    • void put( vector<TMess::SRec> &mess ); — Вызов на размещение сообщений mess в хранилище.
    • void get( time_t b_tm, time_t e_tm, vector<TMess::SRec> &mess, const string &category = "", char level = 0, time_t upTo = 0 ); — Запрос сообщений mess в архиве за промежуток времени b_tm ... e_tm согласно шаблону категории category и уровню с ограничением на время запроса до upTo.
  • TVArchivator — Объект архиватора значений с реализуемым способом архивирования и расположением хранилища:
    • void setValPeriod( double per ); — Вызывается при смене периодичности значений архиватора.
    • void setArchPeriod( int per ); — Вызывается при смене периодичности архивирования.
    • void start( ); — Запуск архиватора. Архиватор начинает принимать сообщения и размещать их в хранилище.
    • void stop( bool full_del = false ); — Останов архиватора с возможностью полного удаления его данных в хранилище, если установлен full_del.
    • TVArchEl *getArchEl( TVArchive &arch ); — Запрос объекта-представителя архива arch, обслуживаемого архиватором.
  • TVArchEl — Объект представителя архива значений в хранилище архиватора:
    • void fullErase( ); — Вызывается для полного удаления части архива в архиваторе.
    • int64_t end( ); — Время окончания архива в архиваторе.
    • int64_t begin( ); — Время начала архива в архиваторе.
    • TVariant getValProc( int64_t *tm, bool up_ord ); — Запрос на обработку получения одного значения из архива за время tm и доводкой к верхнему значению в сетке дискретизации up_ord.
    • void getValsProc( TValBuf &buf, int64_t beg, int64_t end ); — Запрос на обработку модулем получения данных группы значений buf за указанный промежуток времени.
    • void setValsProc( TValBuf &buf, int64_t beg, int64_t end ); — Запрос на обработку модулем размещения данных группы значений buf за указанный промежуток времени.