This is an old revision of
Doc/API/part6 from 2009-04-27 17:59:00..
6. Подсистема "Транспорты" (TTransportS)
Подсистема «Транспорты» представлена объектом TTransportS который содержит, на уровне подсистемы, модульные объекты типов транспортов TTipTransport. Каждый тип транспорта содержит объекты входящих TTransportIn и исходящих TTransportOut транспортов. Общая структура подсистемы приведена на рис. 6.

Рис. 6. Слоистая структура подсистемы транспортов.
Корневой объект модуля подсистемы "Транспорты" содержит информацию о конкретно взятом типе модуля и внешних OpenSCADA хостах/станциях. В рамках отдельно взятого модуля может быть реализована собственная общемодульная функциональность. В общем, для всех модулей, содержатся методы доступа к входящим и исходящим транспортам конкретно взятого модуля.
Объект входящего транспорта TTransportIn предоставляет интерфейс к реализации модульного метода входящего транспорта.
Объект исходящего транспорта TTransportOut предоставляет интерфейс к реализации модульного метода исходящего транспорта.
6.1. Объект подсистемы «Транспорты» (TTransportS)
Данные:
Структура внешних OpenSCADA хостов/станций (class TTransportS::ExtHost):
- ExtHost( const string &iuser_open, const string &iid, const string &iname, const string &itransp, const string &iaddr, const string &iuser, const string &ipass ); -- Конструктор инициализации структуры.
- string user_open; -- Пользователь создавший запись про внешний хост/станцию.
- string id; -- Идентификатор внешнего хоста/станции.
- string name; -- Имя внешнего хоста/станции.
- string transp; -- Транспорт, использующийся для доступа к внешнему хосту/станции.
- string addr; -- Адрес для транспорта, который используется для доступа к внешнему хосту/станции.
- string user; -- Пользователь внешнего хоста/станции.
- string pass; -- Пароль пользователя внешнего хоста/станции.
- bool link_ok; -- Признак "Связь с внешним хостом/станцией установлена".
Публичные методы:
- int subVer( ); -- Версия подсистемы.
- void inTrList( vector<string> &ls ); -- Полный список входящих транспортов.
- void outTrList( vector<string> &ls ); -- Полный список исходящих транспортов.
- bool sysHost( ); -- Признак - "Отображать системные хосты".
- void setSysHost( bool vl ); -- Установка признак - "Отображать системные хосты".
- string extHostsDB( ); -- БД хранения перечня внешних хостов.
- void extHostList( const string &user, vector<string> &list ); -- Список внешних хостов.
- bool extHostPresent( const string &user, const string &id ); -- Проверка наличия внешнего хоста <id> от имени пользователя <user> ("*" - для системных хостов).
- AutoHD<TTransportOut> extHost( TTransportS::ExtHost host, const string &pref = "" ); -- Создание - запрос исходящего транспорта для обслуживания внешнего хоста <host> с префиксом идентификации узла системы <pref>.
- ExtHost extHostGet( const string &user, const string &id ); -- Получение информационного объекта внешнего хоста <id> от имени пользователя <user> ("*" - для системных хостов).
- void extHostSet( const ExtHost &host ); -- Установка внешнего хоста/станции <host>.
- void extHostDel( const string &user, const string &id ); -- Удаление внешнего хоста/станции <id> от имени пользователя <user> ("*" - для системных хостов).
- void subStart( ); -- Запуск подсистемы.
- void subStop( ); -- Останов подсистемы.
- TElem &inEl( ); -- Структура БД входящих транспортов.
- TElem &outEl( ); -- Структура БД исходящих транспортов.
- AutoHD<TTipTransport> at( const string &id ); -- Обращение/подключение к типу транспорта <id>.
6.2. Модульный объект типа транспортов (TTipTransport)
| Наследует: | TModule. |
| Наследуется: | Корневыми объектами модулей подсистемы «Транспорты». |
Публичные методы:
- void inList( vector<string> &list ); -- Список входящих транспортов.
- bool inPresent( const string &name ); -- Проверка на наличие входящего транспорта.
- void inAdd( const string &name, const string &db = "*.*" ); -- Добавление входящего транспорта.
- void inDel( const string &name, bool complete = false ); -- Удаление входящего транспорта. Возможно полное удаление, включающее и БД, путём установки признака <complete>.
- AutoHD<TTransportIn> inAt( const string &name ); -- Подключение к входящему транспорту.
- void outList( vector<string> &list ); -- Список исходящих транспортов.
- bool outPresent( const string &name ); -- Проверка на наличие исходящего транспорта.
- void outAdd( const string &name, const string &db = "*.*" ); -- Добавление исходящего транспорта.
- void outDel( const string &name, bool complete = false ); -- Удаление исходящего транспорта. Возможно полное удаление, включающее и БД, путём установки признака <complete>.
- AutoHD<TTransportOut> outAt( const string &name ) -- Подключение к исходящему транспорту.
- TTransportS &owner( ); -- Подсистема "Транспорты" - владелец типом транспорта.
Защищённые методы:
- virtual TTransportIn *In( const string &name, const string &db ); -- Модульный метод создания/открытия нового «входящего» транспорта.
- virtual TTransportOut *Out( const string &name, const string &db ); -- Модульный метод создания/открытия нового «исходящего» транспорта.
6.3. Объект входящих транспортов (TTransportIn)
| Наследует: | TCntrNode, TConfig. |
| Наследуется: | Объектами входящих транспортов модулей подсистемы «Транспорты». |
Публичные методы:
- TTransportIn( const string &id, const string &db, TElem *el ); -- Инициализирующий конструктор.
- const string &id( ); -- Идентификатор транспорта.
- string workId( ); -- Полный идентификатор, включая идентификатор модуля.
- string name( ); -- Имя транспорта.
- string dscr( ); -- Описание транспорта.
- string addr( ); -- Адрес.
- string protocol( ); -- Связанный транспортный протокол.
- virtual string getStatus( ); -- Получение статуса входящего транспорта.
- bool toStart( ); -- Признак «Запускать транспорт».
- bool startStat( ); -- Состояние «Транспорт запущен».
- string DB( ); -- Адрес БД транспорта.
- string tbl( ); -- Таблица БД транспорта.
- string fullDB( ); -- Полное имя таблицы БД транспорта.
- void setName( const string &inm ); -- Установка имени транспорта в <inm>.
- void setDscr( const string &idscr ); -- Установка описания транспорта в <idscr>.
- virtual void setAddr( const string &addr ); -- Установка адреса транспорта в <addr>.
- void setProtocol( const string &prt ); -- Установка связного транспортного протокола.
- void setToStart( bool val ); -- Установка признака "Запускать транспорт".
- void setDB( const string &vl ); -- Установка адреса БД транспорта.
- virtual void start( ); -- Запуск транспорта.
- virtual void stop( ); -- Останов транспорта.
- TTipTransport &owner( ); -- Тип транспорта – владелец входящим транспортом.
Защищённые атрибуты:
- bool run_st; -- Признак «Запущен».
6.4. Объект исходящих транспортов (TTransportOut)
| Наследует: | TCntrNode, TConfig. |
| Наследуется: | Объектами исходящих транспортов модулей подсистемы «Транспорты». |
Публичные методы:
- TTransportOut( const string &id, const string &db, TElem *el ); -- Инициализирующий конструктор.
- const string &id( ); -- Идентификатор транспорта.
- string workId( ); -- Полный идентификатор, включая идентификатор модуля.
- string name( ); -- Имя транспорта.
- string dscr( ); -- Описание транспорта.
- string addr( ); -- Адрес транспорта.
- int prm1( ); -- Первый резервный параметр.
- int prm2( ); -- Второй резервный параметр.
- bool toStart( ); -- Признак «Запускать транспорт».
- bool startStat( ); -- Состояние «Транспорт запущен».
- virtual string getStatus( ); -- Получение статуса транспорта.
- string DB( ); -- Адрес БД транспорта.
- string tbl( ); -- Таблица БД транспорта.
- string fullDB( ); -- Полное имя таблицы БД транспорта.
- void setName( const string &inm ); -- Установка имени транспорта.
- void setDscr( const string &idscr ); -- Установка описания транспорта.
- virtual void setAddr( const string &addr ); -- Установка адреса транспорта.
- void setPrm1( int vl ); -- Установка первого резервного параметра.
- void setPrm2( int vl ); -- Установка второго резервного параметра.
- void setToStart( bool val ); -- Установка признака «Запускать транспорт».
- void setDB( const string &vl ); -- Установка адреса БД транспорта.
- virtual void start( ); -- Запуск транспорта.
- virtual void stop( ); -- Останов транспорта.
- virtual int messIO( const char *obuf, int len_ob, char *ibuf = NULL, int len_ib = 0, int time = 0 ); -- Отправка данных через транспорт. Время ожидания <time> соединения указывается в милисекундах.
- void messProtIO( XMLNode &io, const string &prot ); -- Отправка данных в дереве XML <in> через транспорт, используя транспортный протокол <prot>.
- TTipTransport &owner( ); -- Тип транспорта – владелец исходящим транспортом.
Защищённые атрибуты:
- bool run_st; -- Признак «Запущен».