PIP 5.6.1
Platform-Independent Primitives
Открытые члены | Открытые статические члены | Защищенные члены | Полный список членов класса
Класс PIConnection

Маршрутизирует данные между общими устройствами, извлекателями пакетов, каналами и периодическими отправителями. Подробнее...

#include <piconnection.h>

Граф наследования:PIConnection:
Inheritance graph
[см. легенду]

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

 PIConnection (const PIString &name=PIString::fromAscii("connection"))
 Создает пустое соединение с именем "name".
 
 PIConnection (const PIString &config, const PIString &name)
 Создает соединение и сразу настраивает его из секции "name" файла "config".
 
 PIConnection (PIString *string, const PIString &name)
 Создает соединение и сразу настраивает его из секции "name", хранящейся в "string".
 
 ~PIConnection ()
 Освобождает все привязки, принадлежащие этому соединению.
 
bool configureFromConfig (const PIString &config, const PIString &name=PIString::fromAscii("connection"))
 Перенастраивает соединение из секции "name" файла "config". Подробнее...
 
bool configureFromString (PIString *string, const PIString &name=PIString::fromAscii("connection"))
 Перенастраивает соединение из секции "name", хранящейся в "string". Подробнее...
 
PIString makeConfig () const
 Сериализует текущее состояние соединения в одну секцию конфигурации.
 
PIIODeviceaddDevice (const PIString &full_path, PIIODevice::DeviceMode mode=PIIODevice::ReadWrite, bool start=false)
 Добавляет устройство "full_path" в общий пул устройств и привязывает его к этому соединению. Подробнее...
 
void setDeviceName (PIIODevice *dev, const PIString &name)
 Назначает устройству "dev" псевдоним "name" внутри этого соединения.
 
PIStringList deviceNames (const PIIODevice *dev) const
 Возвращает все псевдонимы устройства "dev" в этом соединении.
 
bool removeDevice (const PIString &full_path)
 Отвязывает устройство "full_path" от этого соединения. Подробнее...
 
void removeAllDevices ()
 Удаляет все устройства, привязанные к этому соединению. Подробнее...
 
PIIODevicedeviceByFullPath (const PIString &full_path) const
 Возвращает привязанное устройство по нормализованному полному пути.
 
PIIODevicedeviceByName (const PIString &name) const
 Возвращает привязанное устройство по псевдониму.
 
PIVector< PIIODevice * > boundedDevices () const
 Возвращает все устройства, привязанные к этому соединению.
 
PIPacketExtractoraddFilter (const PIString &name, const PIString &full_path_name, PIPacketExtractor::SplitMode mode=PIPacketExtractor::None)
 Создает или повторно использует фильтр "name" и привязывает к нему источник "full_path_name". Подробнее...
 
PIPacketExtractoraddFilter (const PIString &name, const PIIODevice *dev, PIPacketExtractor::SplitMode mode=PIPacketExtractor::None)
 Создает или повторно использует фильтр "name" и привязывает к нему устройство "dev".
 
PIPacketExtractoraddFilter (PIPacketExtractor *filter, const PIString &full_path_name)
 Привязывает существующий объект извлекателя "filter" к источнику "full_path_name".
 
PIPacketExtractoraddFilter (PIPacketExtractor *filter, const PIIODevice *dev)
 Привязывает существующий объект извлекателя "filter" к устройству "dev".
 
bool removeFilter (const PIString &name, const PIString &full_path_name)
 Отвязывает источник "full_path_name" от фильтра "name". Подробнее...
 
bool removeFilter (const PIString &name, const PIIODevice *dev)
 Отвязывает устройство или вышестоящий фильтр "dev" от фильтра "name".
 
bool removeFilter (const PIString &name)
 Удаляет фильтр "name" вместе со всеми его привязками.
 
void removeAllFilters ()
 Удаляет все фильтры из этого соединения.
 
PIVector< PIPacketExtractor * > filters () const
 Возвращает все фильтры, принадлежащие этому соединению.
 
PIStringList filterNames () const
 Возвращает имена всех фильтров, принадлежащих этому соединению.
 
PIPacketExtractorfilter (const PIString &name) const
 Возвращает фильтр "name" или nullptr, если такого фильтра нет.
 
PIVector< PIIODevice * > filterBoundedDevices (const PIString &name) const
 Возвращает все источники, привязанные к фильтру "name".
 
bool addChannel (const PIString &name_from, const PIString &name_to)
 Добавляет канал маршрутизации от "name_from" к "name_to". Подробнее...
 
bool addChannel (const PIString &name_from, const PIIODevice *dev_to)
 Добавляет канал маршрутизации от "name_from" к устройству "dev_to".
 
bool addChannel (const PIIODevice *dev_from, const PIString &name_to)
 Добавляет канал маршрутизации от устройства "dev_from" к "name_to".
 
bool addChannel (const PIIODevice *dev_from, const PIIODevice *dev_to)
 Добавляет канал маршрутизации от устройства "dev_from" к устройству "dev_to".
 
bool removeChannel (const PIString &name_from, const PIString &name_to)
 Удаляет канал маршрутизации от "name_from" к "name_to".
 
bool removeChannel (const PIString &name_from, const PIIODevice *dev_to)
 Удаляет канал маршрутизации от "name_from" к устройству "dev_to".
 
bool removeChannel (const PIIODevice *dev_from, const PIString &name_to)
 Удаляет канал маршрутизации от устройства "dev_from" к "name_to".
 
bool removeChannel (const PIIODevice *dev_from, const PIIODevice *dev_to)
 Удаляет канал маршрутизации от устройства "dev_from" к устройству "dev_to".
 
bool removeChannel (const PIString &name_from)
 Удаляет все исходящие каналы, начинающиеся в "name_from".
 
bool removeChannel (const PIIODevice *dev_from)
 Удаляет все исходящие каналы, начинающиеся от устройства "dev_from".
 
void removeAllChannels ()
 Удаляет все каналы маршрутизации из этого соединения.
 
PIVector< PIPair< PIString, PIString > > channels () const
 Возвращает все каналы маршрутизации как пары источника и назначения.
 
void addSender (const PIString &name, const PIString &full_path_name, float frequency, bool start=false)
 Создает или повторно использует отправитель "name" и привязывает к нему устройство "full_path_name". Подробнее...
 
void addSender (const PIString &name, const PIIODevice *dev, float frequency, bool start=false)
 Создает или повторно использует отправитель "name" и привязывает к нему устройство "dev".
 
bool removeSender (const PIString &name, const PIString &full_path_name)
 Отвязывает устройство "full_path_name" от отправителя "name". Подробнее...
 
bool removeSender (const PIString &name, const PIIODevice *dev)
 Отвязывает устройство "dev" от отправителя "name".
 
bool removeSender (const PIString &name)
 Удаляет отправитель "name" вместе с состоянием его таймера.
 
bool setSenderFixedData (const PIString &name, const PIByteArray &data)
 Назначает фиксированную нагрузку "data" отправителю "name".
 
bool clearSenderFixedData (const PIString &name)
 Очищает фиксированную нагрузку отправителя "name".
 
PIByteArray senderFixedData (const PIString &name) const
 Возвращает фиксированную нагрузку, настроенную для отправителя "name".
 
float senderFrequency (const PIString &name) const
 Возвращает частоту таймера отправителя. Подробнее...
 
void removeAllSenders ()
 Удаляет все отправители из этого соединения.
 
void startThreadedRead (const PIString &full_path_name)
 Запускает потоковое чтение для источника "full_path_name".
 
void startThreadedRead (const PIIODevice *dev)
 Запускает потоковое чтение для устройства "dev".
 
void startAllThreadedReads ()
 Запускает потоковое чтение для всех устройств, привязанных к общему пулу.
 
void startSender (const PIString &name)
 Запускает таймер отправителя "name".
 
void startAllSenders ()
 Запускает таймеры всех отправителей.
 
void start ()
 Запускает все потоковые чтения и все отправители.
 
void stopThreadedRead (const PIString &full_path_name)
 Останавливает потоковое чтение для источника "full_path_name".
 
void stopThreadedRead (const PIIODevice *dev)
 Останавливает потоковое чтение для устройства "dev".
 
void stopAllThreadedReads ()
 Останавливает потоковое чтение для всех привязанных устройств.
 
void stopSender (const PIString &name)
 Останавливает таймер отправителя "name".
 
void stopAllSenders ()
 Останавливает таймеры всех отправителей.
 
void stop ()
 Останавливает все потоковые чтения и все отправители.
 
void destroy ()
 Останавливает соединение и удаляет все привязанные устройства.
 
bool isEmpty () const
 Возвращает, нет ли сейчас у соединения привязанных устройств.
 
PIDiagnosticsdiagnostic (const PIString &full_path_name) const
 Возвращает объект диагностики для устройства или фильтра "full_path_name".
 
PIDiagnosticsdiagnostic (const PIIODevice *dev) const
 Возвращает объект диагностики, связанный с устройством или фильтром "dev".
 
int writeByFullPath (const PIString &full_path, const PIByteArray &data)
 Записывает "data" в устройство, найденное по полному пути "full_path".
 
int writeByName (const PIString &name, const PIByteArray &data)
 Записывает "data" в устройство, найденное по псевдониму "name".
 
int write (PIIODevice *dev, const PIByteArray &data)
 Записывает "data" непосредственно в устройство "dev".
 
- Открытые члены унаследованные от PIObject
 PIObject (const PIString &name=PIString())
 Создает объект и инициализирует его свойство name.
 
virtual ~PIObject ()
 Уничтожает объект, вызывает deleted() и отключает его от событийного графа.
 
PIString name () const
 Возвращает свойство name этого объекта.
 
virtual const char * className () const
 Возвращает зарегистрированное имя класса этого объекта.
 
virtual uint classNameID () const
 Возвращает хэш от className().
 
virtual const char * parentClassName () const
 Возвращает зарегистрированное имя родительского класса, либо пустую строку для корня.
 
bool debug () const
 Возвращает, включен ли вывод piCoutObj для этого объекта.
 
void setName (const PIString &name)
 Устанавливает свойство name этого объекта.
 
void setDebug (bool debug)
 Включает или отключает вывод piCoutObj для этого объекта.
 
PIVariant property (const char *name) const
 Возвращает свойство объекта по имени "name".
 
void setProperty (const char *name, const PIVariant &value)
 Устанавливает свойство "name" в значение "value" и создаёт его при необходимости. Подробнее...
 
bool isPropertyExists (const char *name) const
 Возвращает, существует ли свойство "name".
 
void setThreadSafe (bool yes)
 Включает или отключает внутренний мьютекс объекта во время выполнения обработчиков. Подробнее...
 
bool isThreadSafe () const
 Возвращает, включен ли внутренний мьютекс объекта для выполнения обработчиков.
 
bool execute (const PIString &method, const PIVector< PIVariantSimple > &vl)
 Выполняет зарегистрированный метод или метод-обработчик по имени с переданными аргументами. Подробнее...
 
bool execute (const PIString &method)
 Перегрузка execute() для метода без аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0)
 Перегрузка execute() для одного аргумента.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Перегрузка execute() для двух аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Перегрузка execute() для трёх аргументов.
 
bool execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Перегрузка execute() для четырёх аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Ставит выполнение зарегистрированного метода в очередь объекта-исполнителя. Подробнее...
 
bool executeQueued (PIObject *performer, const PIString &method)
 Перегрузка executeQueued() для метода без аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Перегрузка executeQueued() для одного аргумента.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Перегрузка executeQueued() для двух аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Перегрузка executeQueued() для трёх аргументов.
 
bool executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Перегрузка executeQueued() для четырёх аргументов.
 
void dump (const PIString &line_prefix=PIString()) const
 Выводит диагностическую информацию об объекте в проектный поток вывода.
 
PIStringList scopeList () const
 Возвращает зарегистрированную цепочку наследования объекта, включая его собственный класс.
 
PIStringList methodsEH () const
 Возвращает полные сигнатуры всех зарегистрированных событий и обработчиков для области этого класса.
 
bool isMethodEHContains (const PIString &name) const
 Возвращает, существует ли зарегистрированное событие или обработчик с таким именем.
 
PIString methodEHArguments (const PIString &name) const
 Возвращает список типов аргументов зарегистрированного метода через запятую.
 
PIString methodEHFullFormat (const PIString &name) const
 Возвращает полную зарегистрированную сигнатуру метода.
 
PIString methodEHFromAddr (const void *addr) const
 Возвращает имя зарегистрированного метода для указанного адреса точки входа.
 
void piDisconnect (const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает соединения этого объекта-источника с конкретным обработчиком объекта-приемника для события "sig".
 
void piDisconnect (const PIString &sig, PIObject *dest)
 Разрывает все соединения этого объекта-источника от события "sig" к объекту-приемнику "dest".
 
void piDisconnect (const PIString &sig)
 Разрывает все соединения этого объекта-источника от события "sig".
 
bool isPIObject () const
 Возвращает, указывает ли этот указатель на ещё существующий экземпляр PIObject.
 
template<typename T >
bool isTypeOf () const
 Возвращает, принадлежит ли этот объект классу "T" или одному из его зарегистрированных потомков.
 
template<typename T >
T * cast () const
 Возвращает этот объект, приведённый к типу "T", если isTypeOf<T>() успешно, иначе nullptr.
 
void callQueuedEvents ()
 Выполняет все отложенные доставки, поставленные в очередь этому объекту-исполнителю.
 
bool maybeCallQueuedEvents ()
 Выполняет отложенные доставки только если этот объект использовался как исполнитель. Подробнее...
 
void deleteLater ()
 Планирует отложенное удаление объекта. Подробнее...
 
void deleted (PIObject *o)
 Вызывается непосредственно перед уничтожением объекта. Подробнее...
 

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

static PIVector< PIConnection * > allConnections ()
 Возвращает все существующие в приложении объекты PIConnection.
 
static PIVector< PIIODevice * > allDevices ()
 Возвращает все устройства, которые сейчас хранятся в общем пуле устройств.
 
static bool setFakeMode (bool yes)
 Включает или выключает режим имитации общего пула устройств и возвращает предыдущее состояние.
 
static bool isFakeMode ()
 Возвращает, работает ли общий пул устройств в режиме имитации.
 
- Открытые статические члены унаследованные от PIObject
static bool execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Статическая удобная обёртка над execute().
 
static bool execute (PIObject *o, const PIString &method)
 Статическая перегрузка execute() без аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0)
 Статическая перегрузка execute() для одного аргумента.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Статическая перегрузка execute() для двух аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Статическая перегрузка execute() для трёх аргументов.
 
static bool execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Статическая перегрузка execute() для четырёх аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl)
 Статическая удобная обёртка над executeQueued().
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method)
 Статическая перегрузка executeQueued() без аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0)
 Статическая перегрузка executeQueued() для одного аргумента.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1)
 Статическая перегрузка executeQueued() для двух аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2)
 Статическая перегрузка executeQueued() для трёх аргументов.
 
static bool executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3)
 Статическая перегрузка executeQueued() для четырёх аргументов.
 
static PIObject::Connection piConnect (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, void *ev_h, void *e_h, int args, const char *loc)
 Низкоуровневый помощник прямого соединения, лежащий под устаревшими макросами CONNECT*.
 
static PIObject::Connection piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0)
 Низкоуровневый помощник соединения по имени, лежащий под CONNECTU() и CONNECTU_QUEUED().
 
static PIObject::Connection piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc)
 Низкоуровневый помощник, который соединяет событие с лямбдой или обёрткой функтора.
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает соединения объекта-источника "src" с конкретным обработчиком объекта-приемника для события "sig".
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest)
 Разрывает все соединения объекта-источника "src" от события "sig" к объекту-приемнику "dest".
 
static void piDisconnect (PIObject *src, const PIString &sig)
 Разрывает все соединения объекта-источника "src" от события "sig".
 
static void raiseEvent (PIObject *sender, const uint eventID)
 Внутренний помощник доставки для зарегистрированных событий без аргументов.
 
template<typename T0 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0())
 Внутренний помощник доставки для зарегистрированных событий с одним аргументом.
 
template<typename T0 , typename T1 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1())
 Внутренний помощник доставки для зарегистрированных событий с двумя аргументами.
 
template<typename T0 , typename T1 , typename T2 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2())
 Внутренний помощник доставки для зарегистрированных событий с тремя аргументами.
 
template<typename T0 , typename T1 , typename T2 , typename T3 >
static void raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2(), const T3 &v3=T3())
 Внутренний помощник доставки для зарегистрированных событий с четырьмя аргументами.
 
static PIObjectfindByName (const PIString &name)
 Возвращает первый живой объект с именем "name", либо nullptr.
 
static bool isPIObject (const PIObject *o)
 Возвращает, указывает ли "o" на ещё существующий экземпляр PIObject.
 
static bool isPIObject (const void *o)
 Перегрузка isPIObject() для нетипизированного указателя.
 
template<typename T >
static bool isTypeOf (const PIObject *o)
 Возвращает, принадлежит ли "o" классу "T" или одному из его зарегистрированных потомков.
 
template<typename T >
static bool isTypeOf (const void *o)
 Перегрузка isTypeOf() для нетипизированного указателя.
 
static PIString simplifyType (const char *a, bool readable=true)
 Упрощает запись типа C++ для метаданных зарегистрированных методов.
 

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

virtual void dataReceived (const PIString &from, const PIByteArray &data)
 Вызывается после получения сырых данных от источника "from".
 
virtual void packetReceived (const PIString &from, const PIByteArray &data)
 Вызывается после того, как фильтр "from" выдает пакет.
 
virtual PIByteArray senderData (const PIString &sender_name)
 Возвращает динамическую нагрузку для отправителя "sender_name".
 
- Защищенные члены унаследованные от PIObject
PIObjectemitter () const
 Возвращает объект-источник, который вызвал текущее событие. Подробнее...
 
virtual void propertyChanged (const char *name)
 Виртуальный метод, вызываемый после изменения свойства "name" через setProperty().
 

Events

void dataReceivedEvent (const PIString &from, const PIByteArray &data)
 Генерируется при получении сырых данных от источника "from".
 
void packetReceivedEvent (const PIString &from, const PIByteArray &data)
 Генерируется, когда фильтр "from" выдает пакет.
 
void qualityChanged (const PIIODevice *dev, PIDiagnostics::Quality new_quality, PIDiagnostics::Quality old_quality)
 Генерируется при изменении качества диагностики устройства "device".
 

Дополнительные унаследованные члены

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

Маршрутизирует данные между общими устройствами, извлекателями пакетов, каналами и периодическими отправителями.

Complex Input/Output point.

PIConnection использует общий для процесса пул устройств, поэтому несколько соединений могут разделять одно физическое устройство. Сырые данные устройств могут передаваться в именованные фильтры, маршрутизироваться по каналам, контролироваться диагностикой и отправляться периодическими отправителями.

Synopsis

PIConnection provides abstract layer over physical devices, filtering and connecting data streams. Each PIConnection works through Device Pool, so several PIConnections can read from single physical device. General scheme:

Device pool concept

Device pool is static object, single for each application, which contains unique devices. Each PIConnection works with real devices through Device pool. Each device has assosiated thread for read and it can be started or stopped with PIConnection functions startThreadedRead() and stopThreadedRead().

Filters

PIConnection filter is a PIPacketExtractor and assosiated array of devices or other filters. When read thread is successfully read from device this data can be passed to one or more filters. Each filter has name and filter names should be unique. You can use this name for access to PIPacketExtractor* with function filter(), or get array of assosiated devices and filters with function filterBoundedDevices(). One filter can receive data from several sources, and can be bounded to several filters.

Diagnostics

PIConnection create PIDiagnostics for each device or filter. You can access to these objects with functions diagnostic().

Senders

PIConnection can send data to devices with named timers ("senders"). You can create sender or add device to sender with function addSender(). Each sender has internal timer and every tick execute virtual function senderData(). Returns value of this function sended to bounded devices. You can assign fixed send data to sender with function setSenderFixedData(). In this case sender will NOT execute senderData(), but send assigned data.

Configuration

You can create PIConnection from config file section or configure it later with function configureFromConfig(). Devices describes with its full pathes, for details see Creating devices by unambiguous string. Example:

Also PIConnection can create PIString with its configuration with function makeConfig(). This string can be directly inserted into the config file.

Методы

◆ configureFromConfig()

bool PIConnection::configureFromConfig ( const PIString config,
const PIString name = PIString::fromAscii ("connection") 
)

Перенастраивает соединение из секции "name" файла "config".

Внимание: все устройства, фильтры и каналы удаляются перед настройкой!

◆ configureFromString()

bool PIConnection::configureFromString ( PIString string,
const PIString name = PIString::fromAscii ("connection") 
)

Перенастраивает соединение из секции "name", хранящейся в "string".

Внимание: все устройства, фильтры и каналы удаляются перед настройкой!

◆ addDevice()

PIIODevice * PIConnection::addDevice ( const PIString full_path,
PIIODevice::DeviceMode  mode = PIIODevice::ReadWrite,
bool  start = false 
)

Добавляет устройство "full_path" в общий пул устройств и привязывает его к этому соединению.

Возвращает общий экземпляр устройства или nullptr, если создание не удалось. Если "start" равно true, потоковое чтение запускается сразу.

◆ removeDevice()

bool PIConnection::removeDevice ( const PIString full_path)

Отвязывает устройство "full_path" от этого соединения.

Общий объект устройства удаляется из пула только тогда, когда им больше не пользуется ни одно соединение.

◆ removeAllDevices()

void PIConnection::removeAllDevices ( )

Удаляет все устройства, привязанные к этому соединению.

Устройства остаются в общем пуле, пока на них ссылаются другие соединения.

◆ addFilter()

PIPacketExtractor * PIConnection::addFilter ( const PIString name,
const PIString full_path_name,
PIPacketExtractor::SplitMode  mode = PIPacketExtractor::None 
)

Создает или повторно использует фильтр "name" и привязывает к нему источник "full_path_name".

Если фильтра с именем "name" не существует, соединение создаст новый фильтр с режимом разделения "mode" и привяжет к нему устройство "full_path_name" или фильтр "full_path_name". Если фильтр с именем "name" уже существует, устройство "full_path_name" или фильтр "full_path_name" добавляется к этому фильтру. Эта функция возвращает PIPacketExtractor *, связанный с этим фильтром.

Заметки
Внимание! "mode" актуален только если был создан новый фильтр!
См. также
PIPacketExtractor

◆ removeFilter()

bool PIConnection::removeFilter ( const PIString name,
const PIString full_path_name 
)

Отвязывает источник "full_path_name" от фильтра "name".

Удаляет сам фильтр, когда у него больше не остается привязанных источников.

◆ addChannel()

bool PIConnection::addChannel ( const PIString name_from,
const PIString name_to 
)

Добавляет канал маршрутизации от "name_from" к "name_to".

Оба конца канала могут ссылаться на полный путь устройства, псевдоним устройства или имя фильтра.

◆ addSender()

void PIConnection::addSender ( const PIString name,
const PIString full_path_name,
float  frequency,
bool  start = false 
)

Создает или повторно использует отправитель "name" и привязывает к нему устройство "full_path_name".

Если отправителя с именем "name" не существует, соединение создаст новый отправитель, привяжет к нему устройство "full_path_name" и запускает таймер отправителя с частотой "frequency". Если отправитель с именем "name" уже существует, устройство "full_path_name" добавляется к этому отправителю Если "start" равно true, отправитель запускается немедленно. В противном случае можно запустить отправителя с помощью функций startSender().

Заметки
Внимание! "frequency" актуален только если был создан новый отправитель!
См. также
startSender()

◆ removeSender()

bool PIConnection::removeSender ( const PIString name,
const PIString full_path_name 
)

Отвязывает устройство "full_path_name" от отправителя "name".

Если к этому отправителю не привязано устройств, он будет удален. Возвращает успешность удаления отправителя.

◆ senderFrequency()

float PIConnection::senderFrequency ( const PIString name) const

Возвращает частоту таймера отправителя.

Возвращает -1, если отправителя не существует, и 0, если он существует, но не запущен.