UniSet 2.32.1
Классы | Открытые типы | Открытые члены | Открытые статические члены | Статические открытые данные | Защищенные типы | Защищенные члены | Защищенные данные | Полный список членов класса
Класс uniset::OPCUAExchange

#include <OPCUAExchange.h>

Граф наследования:uniset::OPCUAExchange:
Inheritance graph
[см. легенду]
Граф связей класса uniset::OPCUAExchange:
Collaboration graph
[см. легенду]

Классы

struct  Channel
 
struct  OPCAttribute
 
struct  ReadGroup
 
struct  WriteGroup
 

Открытые типы

enum  ExchangeMode {
  emNone = 0 , emWriteOnly = 1 , emReadOnly = 2 , emSkipSaveToSM = 3 ,
  emSkipExchange = 4 , emLastNumber
}
 
using Tick = uint8_t
 

Открытые члены

 OPCUAExchange (uniset::ObjectId id, uniset::ObjectId icID, const std::shared_ptr< SharedMemory > &shm=nullptr, const std::string &prefix="opcua")
 
virtual uniset::SimpleInfogetInfo (const char *userparam=0) override
 
- Открытые члены унаследованные от uniset::UniSetObject
 UniSetObject (const std::string &name, const std::string &section)
 
 UniSetObject (uniset::ObjectId id)
 
virtual CORBA::Boolean exist () override
 
virtual uniset::ObjectId getId () override
 
const uniset::ObjectId getId () const
 
std::string getName () const
 
virtual uniset::ObjectType getType () override
 
const std::string getStrType ()
 
virtual uniset::SimpleInfoapiRequest (const char *query) override
 
virtual void push (const uniset::TransportMessage &msg) override
 поместить сообщение в очередь
 
virtual void pushMessage (const char *msg, ::CORBA::Long mtype, const ::uniset::Timespec &tm, const ::uniset::ProducerInfo &pi, ::CORBA::Long priority, ::CORBA::Long consumer) override
 поместить текстовое сообщение в очередь
 
virtual Poco::JSON::Object::Ptr httpGet (const Poco::URI::QueryParameters &p) override
 
virtual Poco::JSON::Object::Ptr httpHelp (const Poco::URI::QueryParameters &p) override
 
uniset::ObjectPtr getRef () const
 
std::shared_ptr< UniSetObjectget_ptr ()
 
virtual timeout_t askTimer (uniset::TimerId timerid, timeout_t timeMS, clock_t ticks=-1, uniset::Message::Priority p=uniset::Message::High) override
 
- Открытые члены унаследованные от uniset::LT_Object
timeout_t checkTimers (UniSetObject *obj)
 
timeout_t getTimeInterval (uniset::TimerId timerid) const
 
timeout_t getTimeLeft (uniset::TimerId timerid) const
 
- Открытые члены унаследованные от uniset::UHttp::IHttpRequest
virtual Poco::JSON::Object::Ptr httpRequest (const std::string &req, const Poco::URI::QueryParameters &p)
 

Открытые статические члены

static std::shared_ptr< OPCUAExchangeinit_opcuaexchange (int argc, const char *const *argv, uniset::ObjectId icID, const std::shared_ptr< SharedMemory > &ic=nullptr, const std::string &prefix="opcua")
 
static void help_print (int argc, const char *const *argv)
 
static uint8_t firstBit (uint32_t mask)
 
static uint32_t getBits (uint32_t value, uint32_t mask, uint8_t offset)
 
static uint32_t setBits (uint32_t value, uint32_t set, uint32_t mask, uint8_t offset)
 
static uint32_t forceSetBits (uint32_t value, uint32_t set, uint32_t mask, uint8_t offset)
 

Статические открытые данные

static const size_t numChannels = 2
 

Защищенные типы

enum  Timers { tmUpdates }
 
typedef std::vector< std::shared_ptr< OPCAttribute > > IOList
 
- Защищенные типы унаследованные от uniset::LT_Object
typedef std::deque< TimerInfoTimersList
 

Защищенные члены

void channel1Thread ()
 
void channel2Thread ()
 
void channelThread (Channel *ch)
 
bool prepare ()
 
void channelExchange (Tick tick, Channel *ch, bool writeOn)
 
void updateFromChannel (Channel *ch)
 
void updateToChannel (Channel *ch)
 
void updateFromSM ()
 
void writeToSM ()
 
bool isUpdateSM (bool wrFunc) const noexcept
 
virtual void sysCommand (const uniset::SystemMessage *sm) override
 
virtual void askSensors (UniversalIO::UIOCommand cmd)
 
virtual void sensorInfo (const uniset::SensorMessage *sm) override
 
virtual void timerInfo (const uniset::TimerMessage *sm) override
 
virtual bool activateObject () override
 Активизация объекта (переопределяется для необходимых действий после активизации)
 
virtual bool deactivateObject () override
 Деактивация объекта (переопределяется для необходимых действий при завершении работы)
 
void readConfiguration ()
 
bool initIOItem (UniXML::iterator &it)
 
bool readItem (const std::shared_ptr< UniXML > &xml, UniXML::iterator &it, xmlNode *sec)
 
bool waitSM ()
 
bool tryConnect (Channel *ch)
 
void initOutputs ()
 
- Защищенные члены унаследованные от uniset::UniSetObject
virtual void processingMessage (const uniset::VoidMessage *msg)
 
virtual void onTextMessage (const uniset::TextMessage *tm)
 
VoidMessagePtr receiveMessage ()
 
VoidMessagePtr waitMessage (timeout_t msec=UniSetTimer::WaitUpTime)
 
void termWaiting ()
 
size_t countMessages ()
 
size_t getCountOfLostMessages () const
 
void uterminate ()
 
void thread (bool create)
 
void offThread ()
 
void onThread ()
 
virtual void callback ()
 
void setID (uniset::ObjectId id)
 
void setThreadPriority (Poco::Thread::Priority p)
 
void setMaxSizeOfMessageQueue (size_t s)
 
size_t getMaxSizeOfMessageQueue () const
 
bool isActive () const
 
void setActive (bool set)
 
virtual Poco::JSON::Object::Ptr httpGetMyInfo (Poco::JSON::Object::Ptr root)
 
Poco::JSON::Object::Ptr request_configure (const std::string &req, const Poco::URI::QueryParameters &p)
 
Poco::JSON::Object::Ptr request_configure_get (const std::string &req, const Poco::URI::QueryParameters &p)
 
Poco::JSON::Object::Ptr request_configure_by_name (const std::string &name, const std::string &props)
 
Poco::JSON::Object::Ptr request_params (const std::string &req, const Poco::URI::QueryParameters &p)
 
virtual Poco::JSON::Object::Ptr request_params_get (const std::string &req, const Poco::URI::QueryParameters &p)
 
virtual Poco::JSON::Object::Ptr request_params_set (const std::string &req, const Poco::URI::QueryParameters &p)
 
- Защищенные члены унаследованные от uniset::LT_Object
virtual std::string getTimerName (int id) const
 
TimersList getTimersList () const
 

Защищенные данные

xmlNode * confnode = { 0 }
 
timeout_t polltime = { 100 }
 
timeout_t updatetime = { 100 }
 
IOList iolist
 
size_t maxItem = { 0 }
 
Channel channels [numChannels]
 
uniset::Trigger noConnections
 
std::atomic_uint32_t currentChannel = { 0 }
 
uniset::timeout_t reconnectPause = { 10000 }
 
int filtersize = { 0 }
 
float filterT = { 0.0 }
 
std::string s_field
 
std::string s_fvalue
 
std::optional< std::regex > s_fvalue_re
 
std::shared_ptr< SMInterfaceshm
 
std::string prefix
 
std::string prop_prefix
 
PassiveTimer ptHeartBeat
 
uniset::ObjectId sidHeartBeat
 
int maxHeartBeat = { 10 }
 
IOController::IOStateList::iterator itHeartBeat
 
bool force = { false }
 
bool force_out = { false }
 
bool writeToAllChannels = { false }
 
timeout_t smReadyTimeout = { 15000 }
 
std::atomic_bool activated = { false }
 
std::atomic_bool cancelled = { false }
 
std::atomic_bool readconf_ok = { false }
 
int activateTimeout
 
uniset::ObjectId sidTestSMReady = { uniset::DefaultObjectId }
 
uniset::ObjectId sidRespond = {uniset::DefaultObjectId }
 
IOController::IOStateList::iterator itRespond
 
std::shared_ptr< LogAgregatorloga
 
std::shared_ptr< DebugStreamopclog
 
std::shared_ptr< LogServerlogserv
 
std::string logserv_host = {""}
 
int logserv_port = {0}
 
std::shared_ptr< ThreadCreator< OPCUAExchange > > thrChannel [numChannels]
 
uniset::ObjectId sidExchangeMode = { uniset::DefaultObjectId }
 
IOController::IOStateList::iterator itExchangeMode
 
long exchangeMode = { emNone }
 
VMonitor vmon
 
- Защищенные данные унаследованные от uniset::UniSetObject
std::shared_ptr< UInterfaceui
 
std::string myname
 
std::weak_ptr< UniSetManagermymngr
 
- Защищенные данные унаследованные от uniset::LT_Object
timeout_t sleepTime
 

Подробное описание

Процесс опроса OPC UA сервера

Перечисления

◆ ExchangeMode

Режимы работы процесса обмена

Элементы перечислений
emNone 

нормальная работа (по умолчанию)

emWriteOnly 

"только посылка данных" (работают только write-функции)

emReadOnly 

"только чтение" (работают только read-функции)

emSkipSaveToSM 

не писать данные в SM (при этом работают и read и write функции)

emSkipExchange 

отключить обмен

Методы

◆ activateObject()

bool uniset::OPCUAExchange::activateObject ( )
overrideprotectedvirtual

Активизация объекта (переопределяется для необходимых действий после активизации)

Переопределяет метод предка uniset::UniSetObject.

◆ deactivateObject()

bool uniset::OPCUAExchange::deactivateObject ( )
overrideprotectedvirtual

Деактивация объекта (переопределяется для необходимых действий при завершении работы)

Переопределяет метод предка uniset::UniSetObject.

◆ getInfo()

SimpleInfo * uniset::OPCUAExchange::getInfo ( const char * userparam = 0)
overridevirtual

Переопределяет метод предка uniset::UniSetObject.

◆ sensorInfo()

void uniset::OPCUAExchange::sensorInfo ( const uniset::SensorMessage * sm)
overrideprotectedvirtual

Переопределяет метод предка uniset::UniSetObject.

◆ sysCommand()

void uniset::OPCUAExchange::sysCommand ( const uniset::SystemMessage * sm)
overrideprotectedvirtual

Переопределяет метод предка uniset::UniSetObject.

◆ timerInfo()

void uniset::OPCUAExchange::timerInfo ( const uniset::TimerMessage * sm)
overrideprotectedvirtual

Переопределяет метод предка uniset::UniSetObject.

Данные класса

◆ confnode

xmlNode* uniset::OPCUAExchange::confnode = { 0 }
protected

xml-узел в настроечном файле

◆ exchangeMode

long uniset::OPCUAExchange::exchangeMode = { emNone }
protected

режим работы см. ExchangeMode

◆ force

bool uniset::OPCUAExchange::force = { false }
protected

флаг, означающий, что надо сохранять в SM, даже если значение не менялось

◆ force_out

bool uniset::OPCUAExchange::force_out = { false }
protected

флаг, включающий принудительное чтение/запись датчиков в SM

◆ iolist

IOList uniset::OPCUAExchange::iolist
protected

список входов/выходов

◆ polltime

timeout_t uniset::OPCUAExchange::polltime = { 100 }
protected

периодичность обновления данных, [мсек]

◆ sidExchangeMode

uniset::ObjectId uniset::OPCUAExchange::sidExchangeMode = { uniset::DefaultObjectId }
protected

идентификатор для датчика режима работы

◆ smReadyTimeout

timeout_t uniset::OPCUAExchange::smReadyTimeout = { 15000 }
protected

время ожидания готовности SM к работе, мсек

◆ updatetime

timeout_t uniset::OPCUAExchange::updatetime = { 100 }
protected

периодичность обновления данных в SM, [мсек]

◆ writeToAllChannels

bool uniset::OPCUAExchange::writeToAllChannels = { false }
protected

флаг, включающий запись во все каналы, по умолчанию только в активный