6. Subsystem "Transports" (TTransportS)
"Transports" subsystem is represented by the TTransportS object, which contains modular objects of the transports' types TTipTransport on the subsystem-level. Each type of transport contains objects TTransportIn of the incoming and TTransportOut of the outgoing transports. The overall structure of the subsystem is shown in Fig. 6.
Fig. 6. The layered structure of the transports subsystem.
The root object of the "Transports" subsystem's module provides information about the specific type of module and about the external OpenSCADA hosts/stations. As part of the single module it can be implemented the own general-module functionality. In general, for all modules, the access methods for both: inbound and outbound transports of the specific module are contained.
The object of the incoming transport TTransportIn provides an interface to the implementation of the modular method of incoming transport.
The object of the outgoing transport TTransportOut provides an interface to the implementation of the modular method of outgoing transport.
6.1. The object of the «Transports» subsystem (TTransportS)
Data:
The structure of the external OpenSCADA hosts/stations (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 ); - Constructor of the structure initialization.
- string user_open; - The user who created the record about the external host/station.
- string id; - Id of the external host/station.
- string name; - The name of an external host/station.
- string transp; - Transport which is used to access an external host/station.
- string addr; - Address for the transport, which is used to access an external host/station.
- string user; - The users of the external host/station.
- string pass; - The password of the external host/station user.
- bool link_ok; - The sign "Connection with the external host/station is done".
Public methods:
- int subVer( ); - Subsystem's version.
- void inTrList( vector<string> &ls ); - Full list of incoming transports.
- void outTrList( vector<string> &ls ); - Full list of outgoing transports.
- bool sysHost( ); - Sign - "Show the system hosts".
- void setSysHost( bool vl ); - Setting of the sign - "Show the system hosts".
- string extHostsDB( ); - Database for the storing the list of external hosts.
- void extHostList( const string &user, vector<string> &list ); - The list of external hosts.
- bool extHostPresent( const string &user, const string &id ); - Check for an external host presence id on behalf of the user user ( "*" - for the system hosts).
- AutoHD<TTransportOut> extHost( TTransportS::ExtHost host, const string &pref = "" ); - Creation - request of the outgoing transport to service the external host host with the prefix of the identification of the system node pref.
- ExtHost extHostGet( const string &user, const string &id ); - Getting the information object from the external host <id> on behalf of the user <user> ( "*" - for the system hosts).
- void extHostSet( const ExtHost &host ); - Setting of the external host/station <host>.
- void extHostDel( const string &user, const string &id ); - Deleting of the external host/station <id> on behalf of the user user ( "*" - for the system hosts).
- int cntrIfCmd( XMLNode &node, const string &senderPref, const string &user = "" ); - Transfer of the control area request of the OpenSCADA <node> to the remote station.
- void subStart( ); - Start of the subsystem.
- void subStop( ); - Stop of the subsystem.
- TElem &inEl( ); - DB structure of the incoming transports
- TElem &outEl( ); - DB structure of the outgoing transports
- AutoHD<TTipTransport> at( const string &id ); - Addressing/connection to the type of transport <id>.
6.2. The modular object of the transports' type (TTipTransport)
Inherits: | TModule. |
Inherited: | By the root object of the subsystem's "Transports" modules.. |
Public methods:
- void inList( vector<string> &list ); - The list of the incoming transports.
- bool inPresent( const string &name ); - Check for an incoming transport presence.
- void inAdd( const string &name, const string &db = "*.*" ); - Addition of the incoming transport.
- void inDel( const string &name, bool complete = false ); - Deleting of the incoming transport. It is possible to completely delete with the database included, by setting the <complete> sign.
- AutoHD<TTransportIn> inAt( const string &name ); - Connection to the incoming transport.
- void outList( vector<string> &list ); - The list of the outgoing transports.
- bool outPresent( const string &name ); - Check for an outgoing transport presence.
- void outAdd( const string &name, const string &db = "*.*" ); - Addition of the outgoing transport.
- void outDel( const string &name, bool complete = false ); - Deleting of the outgoing transport. It is possible to completely delete with the database included, by setting the <complete> sign.
- AutoHD<TTransportOut> outAt( const string &name ) - Connection to the outgoing transport.
- TTransportS &owner( ); - "Transports" subsystem - the owner of the transport's type.
Protected methods:
- virtual TTransportIn *In( const string &name, const string &db ); - The modular method of the creating/opening of the new "incoming" transport.
- virtual TTransportOut *Out( const string &name, const string &db ); - The modular method of the creating/opening of the new "outgoing" transport.
6.3. The object of the incoming transports (TTransportIn)
Inherits: | TCntrNode, TConfig. |
Inherited: | By the objects of incoming transports of the subsystem's "Transports" modules. |
Public methods:
- TTransportIn( const string &id, const string &db, TElem *el ); - Initializing constructor.
- string id( ); - Transport's Id.
- string workId( ); - Full ID including the ID of the module.
- string name( ); - Transport's name.
- string dscr( ); - Transport's description.
- string addr( ); - Address.
- string protocol( ); - Linked transport protocol.
- virtual string getStatus( ); - Getting the status of the incoming transport.
- bool toStart( ); - The sign "To start".
- bool startStat( ); - The status "Running".
- string DB( ); - Transport's DB address.
- string tbl( ); - Transport's DB table.
- string fullDB( ); - The full name of the transport's DB table.
- void setName( const string &inm ); - Setting the name of transport in <inm>.
- void setDscr( const string &idscr ); - Setting the description of transport in <idscr>.
- virtual void setAddr( const string &addr ); - Setting the address of transport in <addr>.
- void setProtocol( const string &prt ); - Setting of the linked transport protocol.
- void setToStart( bool val ); - Setting of the sign "To start".
- void setDB( const string &vl ); - Setting of the transport's DB address.
- virtual void start( ); - Start of the transport.
- virtual void stop( ); - Stop of the transport.
- TTipTransport &owner( ); - Transport's type – the owner of the incoming transport.
Protected attributes:
- bool run_st; - The sign «Run».
6.4. The object of the outgoing transports (TTransportOut)
Inherits: | TCntrNode, TConfig. |
Inherited: | By the objects of outgoing transports of the subsystem's "Transports" modules. |
Public methods:
- TTransportOut( const string &id, const string &db, TElem *el ); - Initializing constructor.
- string id( ); - Transport's Id.
- string workId( ); - Full ID including the ID of the module.
- string name( ); - Transport's name.
- string dscr( ); - Transport's description.
- string addr( ); - Transport's address.
- int prm1( ); - The first backup parameter.
- int prm2( ); - The second backup parameter.
- bool toStart( ); - The sign "To start".
- bool startStat( ); - The status «Running».
- virtual string getStatus( ); - Getting the status of the transport.
- string DB( ); - Transport's DB address.
- string tbl( ); - Transport's DB table.
- string fullDB( ); - The full name of the transport's DB table.
- void setName( const string &inm ); - Setting the name of transport.
- void setDscr( const string &idscr ); - Setting the description of transport.
- virtual void setAddr( const string &addr ); - Setting the address of transport.
- void setPrm1( int vl ); - Setting of the first backup parameter.
- void setPrm2( int vl ); - Setting of the second backup parameter.
- void setToStart( bool val ); - Setting of the sign "To start".
- void setDB( const string &vl ); - Setting of the transport's DB address.
- virtual void start( ); - Start of the transport.
- virtual void stop( ); - Stop of the transport.
- virtual int messIO( const char *obuf, int len_ob, char *ibuf = NULL, int len_ib = 0, int time = 0, bool noRes = false ); - Sending of the data over the transport. The waiting time <time> of the connection is specified in milliseconds. <noRes> is used by the protocols for exclusive blocking of the transport for the time of working with him and to avoid its own blocking by the function.
- void messProtIO( XMLNode &io, const string &prot ); - Sending of the data in the XML tree <in> over the transport using the transport protocol <prot>.
- TTipTransport &owner( ); - Type of transport - the owner of outgoing transport.
Protected attributes:
- bool run_st; - The sign «Running».