![]() |
PIP 5.6.1
Platform-Independent Primitives
|
Последовательный порт. Подробнее...
#include <piserial.h>
Классы | |
| struct | DeviceInfo |
| Информация о последовательном устройстве Подробнее... | |
Открытые типы | |
| enum | Parameters { ParityControl = 0x1 , ParityOdd = 0x2 , TwoStopBits = 0x4 } |
| Параметры PISerial. Подробнее... | |
| enum | Speed { S50 = 50 , S75 = 75 , S110 = 110 , S300 = 300 , S600 = 600 , S1200 = 1200 , S2400 = 2400 , S4800 = 4800 , S9600 = 9600 , S14400 = 14400 , S19200 = 19200 , S38400 = 38400 , S57600 = 57600 , S115200 = 115200 , S230400 = 230400 , S460800 = 460800 , S500000 = 500000 , S576000 = 576000 , S921600 = 921600 , S1000000 = 1000000 , S1152000 = 1152000 , S1500000 = 1500000 , S2000000 = 2000000 , S2500000 = 2500000 , S3000000 = 3000000 , S3500000 = 3500000 , S4000000 = 4000000 } |
| Скорость PISerial. Подробнее... | |
Открытые типы унаследованные от PIIODevice | |
| enum | DeviceMode { ReadOnly = 0x01 , WriteOnly = 0x02 , ReadWrite = 0x03 } |
| Режимы открытия PIIODevice. Подробнее... | |
| enum | DeviceOption { BlockingRead = 0x01 , BlockingWrite = 0x02 } |
| Общие опции, поддерживаемые некоторыми устройствами. Подробнее... | |
| enum | DeviceInfoFlag { Sequential = 0x01 , Reliable = 0x02 } |
| Характеристики канала устройства. Подробнее... | |
| typedef PIFlags< DeviceOption > | DeviceOptions |
| Битовая маска значений DeviceOption. | |
| typedef PIFlags< DeviceInfoFlag > | DeviceInfoFlags |
| Битовая маска значений DeviceInfoFlag. | |
Открытые члены | |
| PISerial () | |
| Создает пустой PISerial. | |
| PISerial (const PIString &device, PISerial::Speed speed=S115200, PIFlags< PISerial::Parameters > params=0) | |
| Создает PISerial с именем устройства "device", скоростью "speed" и параметрами "params". | |
| void | setSpeed (PISerial::Speed speed) |
| Устанавливает скорости приема и передачи в "speed". | |
| void | setOutSpeed (PISerial::Speed speed) |
| Устанавливает скорость передачи в "speed". | |
| void | setInSpeed (PISerial::Speed speed) |
| Устанавливает скорость приема в "speed". | |
| void | setDevice (const PIString &dev) |
| Устанавливает имя устройства в "dev". | |
| void | setParameters (PIFlags< PISerial::Parameters > parameters_) |
| Устанавливает параметры в "parameters_". | |
| void | setParameter (PISerial::Parameters parameter, bool on=true) |
| Устанавливает параметр "parameter" в "on". | |
| bool | isParameterSet (PISerial::Parameters parameter) const |
| Возвращает установлен ли параметр "parameter". | |
| PIFlags< PISerial::Parameters > | parameters () const |
| Возвращает параметры | |
| void | setDataBitsCount (int bits) |
| Устанавливает количество бит данных. Разрешены значения от 5 до 8, по умолчанию 8. | |
| int | dataBitsCount () const |
| Возвращает количество бит данных | |
| bool | setPin (int number, bool on) |
| Устанавливает пин с номером "number" в логический уровень "on". Разрешены номера 4 (DTR) и 7 (RTS) | |
| bool | isPin (int number) const |
| Возвращает логический уровень пина с номером "number". Разрешены номера от 1 до 9. | |
| bool | setBreak (bool enabled) |
| Переключает состояние передачи в break. Подробнее... | |
| void | setVTime (int t) |
| Устанавливает параметр VTime. | |
| PIString | device () const |
| Возвращает имя устройства. | |
| PISerial::Speed | outSpeed () const |
| Возвращает скорость передачи | |
| PISerial::Speed | inSpeed () const |
| Возвращает скорость приема | |
| virtual void | flush () override |
| Откидывает все буферизированные данные для передачи и приема. | |
| bool | read (void *read_to, int max_size, double timeout_ms) |
| Читает из устройства не более "max_size" байт в "read_to" с таймаутом "timeout_ms". Подробнее... | |
| PIString | readString (int size=-1, double timeout_ms=1000.) |
| Читает из устройства в течение таймаута "timeout_ms" или до "size" байт. Подробнее... | |
| PIByteArray | readData (int size=-1, double timeout_ms=1000.) |
| Читает из устройства в течение таймаута "timeout_ms" или до "size" байт. Подробнее... | |
| bool | send (const void *data, int size) |
| Пишет в порт не более "size" байт данных "data". Возвращает если количество отправленных байт = "size". | |
| bool | send (const PIByteArray &data) |
| Пишет в порт байтовый массив "data". Возвращает если количество отправленных байт = размер "data". | |
| void | interrupt () override |
| Прерывает блокирующую операцию устройства. | |
Открытые члены унаследованные от PIIODevice | |
| PIIODevice () | |
| Создает пустой PIIODevice. | |
| PIIODevice (const PIString &path, DeviceMode mode=ReadWrite) | |
| Создает PIIODevice с путём "path" и режимом открытия "mode". | |
| virtual | ~PIIODevice () |
| Уничтожает базовый объект устройства. | |
| DeviceMode | mode () const |
| Возвращает текущий режим открытия. | |
| void | setMode (DeviceMode m) |
| Устанавливает режим открытия без переоткрытия устройства. | |
| DeviceOptions | options () const |
| Возвращает текущие опции устройства. | |
| bool | isOptionSet (DeviceOption o) const |
| Возвращает, включена ли опция "o". | |
| void | setOptions (DeviceOptions o) |
| Полностью заменяет текущие опции устройства на "o". | |
| bool | setOption (DeviceOption o, bool yes=true) |
| Устанавливает опцию "o" в состояние "yes" и возвращает её предыдущее состояние. | |
| DeviceInfoFlags | infoFlags () const |
| Возвращает характеристики канала устройства. | |
| PIString | path () const |
| Возвращает текущий путь устройства. | |
| void | setPath (const PIString &path) |
| Устанавливает путь устройства без его переоткрытия. | |
| bool | isReadable () const |
| Возвращает, разрешает ли текущий режим чтение. | |
| bool | isWriteable () const |
| Возвращает, разрешает ли текущий режим запись. | |
| bool | isOpened () const |
| Возвращает, открыто ли сейчас устройство. | |
| bool | isClosed () const |
| Возвращает, закрыто ли сейчас устройство. | |
| virtual bool | canRead () const |
| Возвращает, возможно ли чтение прямо сейчас. | |
| virtual bool | canWrite () const |
| Возвращает, возможна ли запись прямо сейчас. | |
| void | setReopenEnabled (bool yes=true) |
| Включает или выключает автоматические попытки переоткрытия при потоковом чтении. | |
| void | setReopenTimeout (PISystemTime timeout) |
| Устанавливает задержку между автоматическими попытками переоткрытия. | |
| bool | isReopenEnabled () const |
| Возвращает, включено ли автоматическое переоткрытие. | |
| PISystemTime | reopenTimeout () |
| Возвращает задержку между автоматическими попытками переоткрытия. | |
| void | setThreadedReadSlot (ReadRetFunc func) |
| Устанавливает callback, вызываемый после успешного потокового чтения. Подробнее... | |
| void | setThreadedReadData (void *d) |
| Устанавливает пользовательские данные, передаваемые в callback потокового чтения. | |
| void | setThreadedReadBufferSize (int new_size) |
| Устанавливает размер буфера фонового чтения в байтах. Подробнее... | |
| int | threadedReadBufferSize () const |
| Возвращает размер буфера фонового чтения в байтах. | |
| const uchar * | threadedReadBuffer () const |
| Возвращает указатель на внутренний буфер потокового чтения. | |
| void * | threadedReadData () const |
| Возвращает пользовательские данные, передаваемые в callback потокового чтения. | |
| bool | isThreadedRead () const |
| Возвращает, запущено ли потоковое чтение. | |
| bool | isThreadedReadStopping () const |
| Возвращает, находится ли потоковое чтение в процессе остановки. | |
| void | startThreadedRead () |
| Запускает потоковое чтение. | |
| void | startThreadedRead (ReadRetFunc func) |
| Устанавливает callback потокового чтения в "func" и запускает потоковое чтение. | |
| void | stopThreadedRead () |
| Запрашивает остановку потокового чтения. | |
| void | terminateThreadedRead () |
| Прерывает потоковое чтение. Подробнее... | |
| bool | waitThreadedReadFinished (PISystemTime timeout={}) |
| Ожидает завершения потокового чтения, но не дольше "timeout". | |
| uint | threadedReadTimeout () const |
| Возвращает задержку между безуспешными попытками потокового чтения в миллисекундах. | |
| void | setThreadedReadTimeout (uint ms) |
| Устанавливает задержку между безуспешными попытками потокового чтения в миллисекундах. | |
| bool | isThreadedWrite () const |
| Возвращает, запущена ли потоковая запись. | |
| void | startThreadedWrite () |
| Запускает потоковую запись. | |
| void | stopThreadedWrite () |
| Запрашивает остановку потоковой записи. | |
| void | terminateThreadedWrite () |
| Прерывает потоковую запись. Подробнее... | |
| bool | waitThreadedWriteFinished (PISystemTime timeout={}) |
| Ожидает завершения потоковой записи, но не дольше "timeout". | |
| void | clearThreadedWriteQueue () |
| Очищает очередь заданий потоковой записи. | |
| void | start () |
| Запускает потоковое чтение и потоковую запись. | |
| void | stop () |
| Запрашивает остановку потокового чтения и потоковой записи. | |
| void | stopAndWait (PISystemTime timeout={}) |
| Останавливает оба фоновых потока и ожидает их завершения. | |
| virtual void | interrupt () |
| Прерывает блокирующую операцию устройства. | |
| ssize_t | read (void *read_to, ssize_t max_size) |
| Читает в "read_to" не более "max_size" байт. | |
| ssize_t | read (PIMemoryBlock mb) |
| Читает данные в блок памяти "mb". | |
| PIByteArray | read (ssize_t max_size) |
| Читает не более "max_size" байт и возвращает их как PIByteArray. | |
| virtual ssize_t | bytesAvailable () const |
| Возвращает количество байт доступных для чтения. Подробнее... | |
| ssize_t | write (const void *data, ssize_t max_size) |
| Записывает из "data" не более "max_size" байт. | |
| PIByteArray | readForTime (PISystemTime timeout) |
| Читает данные в течение "timeout" и возвращает накопленные байты. | |
| ullong | writeThreaded (const void *data, ssize_t max_size) |
| Помещает "data" в очередь потоковой записи и возвращает ID задания. | |
| ullong | writeThreaded (const PIByteArray &data) |
| Помещает массив байт "data" в очередь потоковой записи и возвращает ID задания. | |
| bool | configure (const PIString &config_file, const PIString §ion, bool parent_section=false) |
| Настраивает устройство из секции "section" файла "config_file". Подробнее... | |
| virtual PIConstChars | fullPathPrefix () const |
| Возвращает префикс устройства, используемый в полной строке пути. Creating devices by unambiguous string. | |
| PIString | constructFullPath () const |
| Возвращает полную строку описания этого устройства, fullPathPrefix() + "://" + ... | |
| void | configureFromFullPath (const PIString &full_path) |
| Настраивает устройство из параметров полной строки описания. | |
| PIVariantTypes::IODevice | constructVariant () const |
| Создает описание PIVariantTypes::IODevice для этого устройства. | |
| void | configureFromVariant (const PIVariantTypes::IODevice &d) |
| Настраивает устройство из PIVariantTypes::IODevice. | |
| ssize_t | write (const PIMemoryBlock &mb) |
| Записывает в устройство блок памяти "mb". | |
| bool | open () |
| Открывает устройство с текущими путём и режимом. | |
| bool | open (const PIString &_path) |
| Открывает устройство с путём "path". | |
| bool | open (DeviceMode _mode) |
| Открывает устройство с режимом "mode". | |
| bool | open (const PIString &_path, DeviceMode _mode) |
| Открывает устройство с путём "path" и режимом "mode". | |
| bool | close () |
| Закрывает устройство. | |
| ssize_t | write (PIByteArray data) |
| Записывает "data" в устройство. | |
| void | opened () |
| Вызывается после успешного открытия. | |
| void | closed () |
| Вызывается после успешного закрытия. | |
| void | threadedReadEvent (const uchar *readed, ssize_t size) |
| Вызывается после того, как потоковое чтение получило данные. | |
| void | threadedWriteEvent (ullong id, ssize_t written_size) |
| Вызывается после того, как потоковая запись обработала задание с ID "id". | |
Открытые члены унаследованные от 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< int > | availableSpeeds () |
| Возвращает все возможные скорости для последовательных портов. | |
| static PIStringList | availableDevices (bool test=false) |
| Возвращает пути всех доступных устройств в системе. Если "test", то каждое устройство будет опробовано на открытие | |
| static PIVector< DeviceInfo > | availableDevicesInfo (bool test=false) |
| Возвращает все доступные устройства в системе. Если "test", то каждое устройство будет опробовано на открытие | |
Открытые статические члены унаследованные от PIIODevice | |
| static PIIODevice * | createFromFullPath (const PIString &full_path) |
| Пытается создать новое устройство по префиксу, настраивает с помощью configureFromFullPath() и возвращает его. Подробнее... | |
| static PIIODevice * | createFromVariant (const PIVariantTypes::IODevice &d) |
| Пытается создать новое устройство по префиксу, настраивает с помощью configureFromVariant() и возвращает его. | |
| static PIString | normalizeFullPath (const PIString &full_path) |
| Возвращает нормализованную полную строку пути для "full_path". | |
| static void | splitFullPath (PIString fpwm, PIString *full_path, DeviceMode *mode=0, DeviceOptions *opts=0) |
| Разбирает полную строку пути на путь, режим и опции. | |
| static PIStringList | availablePrefixes () |
| Возвращает префиксы всех зарегистрированных устройств | |
| static PIStringList | availableClasses () |
| Возвращает имена классов всех зарегистрированных устройств. | |
Открытые статические члены унаследованные от 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 PIObject * | findByName (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++ для метаданных зарегистрированных методов. | |
Защищенные члены | |
| PIString | constructFullPathDevice () const override |
| Переопределите для построения device-specific части полной строки пути. По умолчанию возвращает path(). | |
| void | configureFromFullPathDevice (const PIString &full_path) override |
| Переопределите для настройки устройства из device-specific параметров полной строки пути. По умолчанию вызывает setPath(). | |
| PIPropertyStorage | constructVariantDevice () const override |
| Переопределите для построения device-specific свойств варианта. По умолчанию возвращает PIPropertyStorage со свойством "path". | |
| void | configureFromVariantDevice (const PIPropertyStorage &d) override |
| Переопределите для настройки устройства из PIPropertyStorage. Режим и опции уже применены. Реализация по умолчанию применяет "path". | |
| bool | configureDevice (const void *e_main, const void *e_parent=0) override |
| Переопределите для настройки устройства из записей "e_main" и необязательной "e_parent", приведённых к PIConfig::Entry*. | |
| void | optionsChanged () override |
| Переопределите для реакции на изменение опций устройства. | |
| void | threadedReadBufferSizeChanged () override |
| Переопределите для реакции на новое значение threadedReadBufferSize(). | |
| ssize_t | readDevice (void *read_to, ssize_t max_size) override |
| Базовое чтение Подробнее... | |
| ssize_t | writeDevice (const void *data, ssize_t max_size) override |
| Переопределите для записи данных в устройство | |
| DeviceInfoFlags | deviceInfoFlags () const override |
| Переопределите для возврата актуальных DeviceInfoFlags. По умолчанию возвращает 0. | |
| virtual void | received (const void *data, int size) |
| Выполняется при успешном вызове любой функции чтения. Реализация по умолчанию ничего не делает | |
| bool | openDevice () override |
| Переопределите для открытия устройства, возвращаемое значение будет установлено в переменную "opened_". Не используйте напрямую, только через open()! | |
| bool | closeDevice () override |
| Переопределите для закрытия устройства; обратное возвращаемое значение сохраняется в "opened_". | |
Защищенные члены унаследованные от PIIODevice | |
| virtual bool | configureDevice (const void *e_main, const void *e_parent=0) |
| Переопределите для настройки устройства из записей "e_main" и необязательной "e_parent", приведённых к PIConfig::Entry*. | |
| virtual bool | openDevice ()=0 |
| Переопределите для открытия устройства, возвращаемое значение будет установлено в переменную "opened_". Не используйте напрямую, только через open()! | |
| virtual bool | closeDevice () |
| Переопределите для закрытия устройства; обратное возвращаемое значение сохраняется в "opened_". | |
| virtual ssize_t | readDevice (void *read_to, ssize_t max_size) |
| Переопределите для чтения данных из устройства | |
| virtual ssize_t | writeDevice (const void *data, ssize_t max_size) |
| Переопределите для записи данных в устройство | |
| virtual bool | threadedRead (const uchar *readed, ssize_t size) |
| Вызывается после успешного потокового чтения; по умолчанию вызывает внешний callback, заданный через setThreadedReadSlot(). | |
| virtual PIString | constructFullPathDevice () const |
| Переопределите для построения device-specific части полной строки пути. По умолчанию возвращает path(). | |
| virtual void | configureFromFullPathDevice (const PIString &full_path) |
| Переопределите для настройки устройства из device-specific параметров полной строки пути. По умолчанию вызывает setPath(). | |
| virtual PIPropertyStorage | constructVariantDevice () const |
| Переопределите для построения device-specific свойств варианта. По умолчанию возвращает PIPropertyStorage со свойством "path". | |
| virtual void | configureFromVariantDevice (const PIPropertyStorage &d) |
| Переопределите для настройки устройства из PIPropertyStorage. Режим и опции уже применены. Реализация по умолчанию применяет "path". | |
| virtual void | optionsChanged () |
| Переопределите для реакции на изменение опций устройства. | |
| virtual DeviceInfoFlags | deviceInfoFlags () const |
| Переопределите для возврата актуальных DeviceInfoFlags. По умолчанию возвращает 0. | |
| virtual void | threadedReadBufferSizeChanged () |
| Переопределите для реакции на новое значение threadedReadBufferSize(). | |
Защищенные члены унаследованные от PIObject | |
| PIObject * | emitter () const |
| Возвращает объект-источник, который вызвал текущее событие. Подробнее... | |
| virtual void | propertyChanged (const char *name) |
| Виртуальный метод, вызываемый после изменения свойства "name" через setProperty(). | |
Дополнительные унаследованные члены | |
Открытые атрибуты унаследованные от PIIODevice | |
| bool | reopenEnabled |
| setReopenEnabled, по умолчанию "true". | |
| int | reopenTimeout |
| setReopenTimeout, по умолчанию 1_s. | |
| int | threadedReadBufferSize |
| setThreadedReadBufferSize в байтах, по умолчанию 4096. | |
Относящиеся к классу функции унаследованные от PIIODevice | |
| template<typename T > | |
| T | readDeviceSetting (const PIString &name, const T &def, const PIConfig::Entry *em, const PIConfig::Entry *ep) |
| Вспомогательная функция для чтения настроек устройства из записей конфигурации. Подробнее... | |
| #define | REGISTER_DEVICE(class) |
| Включить создание экземпляров устройства с помощью метода PIIODevice::createFromFullPath(). Подробнее... | |
| #define | PIIODEVICE(class, prefix) |
| Используйте этот макрос вместо PIOBJECT при объявлении своего PIIODevice. Подробнее... | |
Относящиеся к классу функции унаследованные от PIObject | |
| #define | piCoutObj |
| Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdOut) для наследников PIObject. | |
| #define | piCerrObj |
| Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdErr) для наследников PIObject. | |
| #define | PIOBJECT(name) |
| Поместите этот макрос внутрь объявления прямого наследника PIObject, чтобы включить регистрацию событий, обработчиков и метаданных класса. | |
| #define | PIOBJECT_SUBCLASS(name, parent) |
| Поместите этот макрос внутрь объявления наследника PIObject, чтобы унаследовать зарегистрированные методы и цепочку классов от "parent". | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
Объявляет зарегистрированный метод-обработчик событий с сигнатурой ret name(). | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| Объявляет зарегистрированный метод-обработчик событий с одним аргументом. | |
| #define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
| Объявляет зарегистрированный метод-обработчик событий с двумя аргументами. | |
| #define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2) |
| Объявляет зарегистрированный метод-обработчик событий с тремя аргументами. | |
| #define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Объявляет зарегистрированный метод-обработчик событий с четырьмя аргументами. | |
| #define | EVENT_HANDLER EVENT_HANDLER0 |
| Аналог EVENT_HANDLER0. | |
| #define | EVENT_VHANDLER0(ret, name) virtual ret name() |
Объявляет виртуальный зарегистрированный метод-обработчик с сигнатурой virtual ret name(). | |
| #define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| Объявляет виртуальный зарегистрированный метод-обработчик с одним аргументом. | |
| #define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
| Объявляет виртуальный зарегистрированный метод-обработчик с двумя аргументами. | |
| #define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2) |
| Объявляет виртуальный зарегистрированный метод-обработчик с тремя аргументами. | |
| #define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Объявляет виртуальный зарегистрированный метод-обработчик с четырьмя аргументами. | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| Аналог EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| Объявляет метод-событие без аргументов. | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| Объявляет метод-событие с одним аргументом. | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| Объявляет метод-событие с двумя аргументами. | |
| #define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
| Объявляет метод-событие с тремя аргументами. | |
| #define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3); |
| Объявляет метод-событие с четырьмя аргументами. | |
| #define | EVENT EVENT0 |
| Аналог EVENT0. | |
| #define | RAISE_EVENT0(src, event) |
| Совместимый вспомогательный макрос, вызывающий событие "event" у объекта-источника "src". | |
| #define | RAISE_EVENT1(src, event, v0) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с одним аргументом. | |
| #define | RAISE_EVENT2(src, event, v0, v1) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с двумя аргументами. | |
| #define | RAISE_EVENT3(src, event, v0, v1, v2) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с тремя аргументами. | |
| #define | RAISE_EVENT4(src, event, v0, v1, v2, v3) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с четырьмя аргументами. | |
| #define | CONNECTU(src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" объекта "dest". Подробнее... | |
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" объекта "dest". Подробнее... | |
| #define | CONNECTL(src, event, functor) |
| Соединяет событие "event" объекта "src" к лямбда-функции "functor". Подробнее... | |
| #define | CONNECT0(ret, src, event, dest, handler) |
| Устаревший совместимый макрос, который соединяет событие с зарегистрированным обработчиком через явное указание сигнатуры. Подробнее... | |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с одним аргументом. Подробнее... | |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с двумя аргументами. Подробнее... | |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с тремя аргументами. Подробнее... | |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с четырьмя аргументами. Подробнее... | |
| #define | CONNECT CONNECT0 |
| Аналог CONNECT0. Подробнее... | |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода. Подробнее... | |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с одним аргументом. Подробнее... | |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с двумя аргументами. Подробнее... | |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с тремя аргументами. Подробнее... | |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с четырьмя аргументами. Подробнее... | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| Аналог WEAK_CONNECT0. Подробнее... | |
| #define | DISCONNECT0(ret, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с зарегистрированным обработчиком. | |
| #define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с одним аргументом и зарегистрированного обработчика. | |
| #define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с двумя аргументами и зарегистрированного обработчика. | |
| #define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с тремя аргументами и зарегистрированного обработчика. | |
| #define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с четырьмя аргументами и зарегистрированного обработчика. | |
| #define | DISCONNECT DISCONNECT0 |
| Аналог DISCONNECT0. | |
| #define | HANDLER(handler) |
| Низкоуровневый вспомогательный макрос, который разворачивается в точку входа зарегистрированного обработчика. | |
Последовательный порт.
Этот класс предоставляет доступ к последовательному порту, например, COM-порт.
Начиная с версии 1.16.0 можно в качестве path использовать PISerial::DeviceInfo::id() USB идентификатор для USB устройств.
| enum PISerial::Parameters |
Параметры PISerial.
| Элементы перечислений | |
|---|---|
| ParityControl | Включить генерацию и проверку контроля чётности |
| ParityOdd | Нечётный контроль чётности вместо чётного |
| TwoStopBits | Два стоповых бита вместо одного |
| enum PISerial::Speed |
Скорость PISerial.
| bool PISerial::setBreak | ( | bool | enabled | ) |
Переключает состояние передачи в break.
Если включено, отсылается непрерывный поток нулей. Возвращает успешна ли смена состояния.
| bool PISerial::read | ( | void * | data, |
| int | size, | ||
| double | timeout_ms | ||
| ) |
Читает из устройства не более "max_size" байт в "read_to" с таймаутом "timeout_ms".
Читает в указатель "read_to" не более "max_size" байт и не дольше чем "timeout_ms" миллисекунд.
Если "timeout_ms" < 0 метод ожидает бесконечно, пока не будет прочитано "max_size" байт.
Если "size" <= 0, то метод немедленно возвращает false.
Для чтения данных неизвестного размера используется метод readData().
| PIString PISerial::readString | ( | int | size = -1, |
| double | timeout_ms = 1000. |
||
| ) |
Читает из устройства в течение таймаута "timeout_ms" или до "size" байт.
Читает всё или не более "size" байт и не дольше чем "timeout_ms" миллисекунд.
Если "timeout_ms" < 0 метод ожидает бесконечно, пока не будет прочитано "max_size" байт.
Если "size" <= 0, то читает всё в течении "timeout_ms" миллисекунд.
Если "size" <= 0 и "timeout_ms" <= 0, то метод немедленно возвращает пустую строку.
Этот метод аналогичен readData(), но возвращает строку.
| PIByteArray PISerial::readData | ( | int | size = -1, |
| double | timeout_ms = 1000. |
||
| ) |
Читает из устройства в течение таймаута "timeout_ms" или до "size" байт.
Читает всё или не более "size" байт и не дольше чем "timeout_ms" миллисекунд.
Если "timeout_ms" < 0 метод ожидает бесконечно, пока не будет прочитано "max_size" байт.
Если "size" <= 0, то читает всё в течении "timeout_ms" миллисекунд.
Если "size" <= 0 и "timeout_ms" <= 0, то метод немедленно возвращает пустую строку.
Этот метод аналогичен readString(), но возвращает массив байт.
|
overrideprotectedvirtual |
Базовое чтение
Читает в указатель "read_to" не более "max_size" байт. Если установлена опция PIIODevice::BlockingRead, то этот метод ожидает хотя бы одного байта.
Переопределяет метод предка PIIODevice.