Метод .redir
| Назначение: | Для выбранного последовательного порта (выбор выполняется через ser.num) перенаправляет принимаемые данные (RX) в буфер передачи (TX) того же или другого последовательного порта либо другого объекта, поддерживающего совместимые буферы. |
| Синтаксис: | ser.redir(redir as pl_redir) as pl_redir |
| Возвращает: | Возвращает 0 - PL_REDIR_NONE, если перенаправление не удалось, или то же значение, что было передано в аргументе redir. |
| См. также: | Перенаправление буферов |
| Параметр | Описание |
| redir | Зависит от платформы. См. список констант pl_redir в спецификациях платформ. |
Подробности
Перенаправление данных (иногда его называют «замыканием буферов») обеспечивает эффективный обмен данными между портами, сокетами и т. п. в случаях, когда данные не нужно изменять или разбирать, а важно получить максимально возможную пропускную способность.
Аргумент redir и значение, возвращаемое методом, имеют тип «enum pl_redir». Перечисление pl_redir задаёт набор межобъектных констант платформы, включающий все возможные перенаправления для этой платформы. Значение redir, равное 0 - PL_REDIR_NONE, отменяет перенаправление. Когда для конкретного последовательного порта включено перенаправление, событие on_ser_data_arrival для этого порта не генерируется.
После перенаправления буфера приёма (RX) некоторые связанные с ним свойства и методы фактически возвращают данные буфера передачи (TX), в который он перенаправлен:
- ser.rxbuffsize фактически вернёт размер буфера передачи (TX)
- ser.rxclear фактически очистит буфер передачи (TX)
- ser.rxlen покажет объём данных в буфере передачи (TX)
Если перенаправление выполняется на открытом в данный момент последовательном порту (ser.enabled = 1 - YES), этот порт будет закрыт автоматически.