merged AI doc, some new pages
This commit is contained in:
50
doc/pages/connection.md
Normal file
50
doc/pages/connection.md
Normal file
@@ -0,0 +1,50 @@
|
||||
\~english \page connection Complex I/O (PIConnection)
|
||||
\~russian \page connection Сложный ввод-вывод (PIConnection)
|
||||
|
||||
\~english
|
||||
|
||||
\a PIConnection is an abstract layer over physical I/O devices: it manages a **device pool**, **filters** (packet extraction), **senders** (timed output), and **diagnostics**. Several connections can share one physical device through the pool; each device has an associated read thread that you start/stop with \a startThreadedRead() and \a stopThreadedRead().
|
||||
|
||||
# Device pool
|
||||
|
||||
The device pool is a single per-application container of unique devices. Each \a PIConnection talks to real hardware through this pool, so one serial port or socket can feed multiple logical connections.
|
||||
|
||||
# Filters
|
||||
|
||||
A filter is a \a PIPacketExtractor plus a set of bound devices or other filters. When the read thread gets data from a device, that data can be passed to one or more filters. Filters have unique names; use \a filter(name) to get the \a PIPacketExtractor*, and \a filterBoundedDevices() for the list of bound devices/filters. One filter can receive from several sources and be bound to several others.
|
||||
|
||||
# Senders
|
||||
|
||||
Senders are named timers that periodically send data to bound devices. Create a sender or add a device to a sender with \a addSender(). Each sender runs a timer and calls the virtual \a senderData(); the returned value is sent to bound devices. Alternatively use \a setSenderFixedData() to send fixed data without calling \a senderData().
|
||||
|
||||
# Diagnostics
|
||||
|
||||
\a PIConnection creates a \a PIDiagnostics for each device or filter. Access them with \a diagnostic().
|
||||
|
||||
# Configuration
|
||||
|
||||
You can build a \a PIConnection from a config file section or configure it later with \a configureFromConfig() (see \ref config). Devices are described by full paths (see \a PIIODevice documentation). \a makeConfig() produces a string you can insert into a config file.
|
||||
|
||||
\~russian
|
||||
|
||||
\a PIConnection — абстрактный слой над физическими устройствами ввода-вывода: **пул устройств**, **фильтры** (извлечение пакетов), **отправители** (периодическая отправка) и **диагностика**. Несколько соединений могут использовать одно физическое устройство через пул; у каждого устройства есть поток чтения, запуск и остановка — \a startThreadedRead() и \a stopThreadedRead().
|
||||
|
||||
# Пул устройств
|
||||
|
||||
Пул устройств — единственный на приложение набор уникальных устройств. \a PIConnection обращается к железу через этот пул, поэтому один порт или сокет может обслуживать несколько логических соединений.
|
||||
|
||||
# Фильтры
|
||||
|
||||
Фильтр — это \a PIPacketExtractor и набор привязанных устройств или других фильтров. Когда поток чтения получает данные с устройства, они могут передаваться в один или несколько фильтров. У фильтров уникальные имена; \a filter(name) возвращает \a PIPacketExtractor*, \a filterBoundedDevices() — список привязанных устройств и фильтров. Один фильтр может получать данные из нескольких источников и быть привязан к нескольким.
|
||||
|
||||
# Отправители (senders)
|
||||
|
||||
Отправители — именованные таймеры, периодически отправляющие данные на привязанные устройства. Создание или добавление устройства — \a addSender(). У каждого отправителя свой таймер и вызов виртуального \a senderData(); возвращённое значение отправляется на устройства. Либо \a setSenderFixedData() — отправка фиксированных данных без вызова \a senderData().
|
||||
|
||||
# Диагностика
|
||||
|
||||
Для каждого устройства или фильтра создаётся \a PIDiagnostics. Доступ — \a diagnostic().
|
||||
|
||||
# Конфигурация
|
||||
|
||||
\a PIConnection можно собрать из секции конфига или настроить позже через \a configureFromConfig() (см. \ref config). Устройства задаются полными путями (см. документацию \a PIIODevice). \a makeConfig() формирует строку для вставки в конфиг.
|
||||
Reference in New Issue
Block a user