.tx2buffrq - метод

Назначение:Для выбранного сокета (выбор выполняется через sock.num) заранее запрашивает numpages страниц буфера (1 страница = 256 байт) для буфера TX2 этого сокета.
Синтаксис:sock.tx2buffrq(numpages as {byte | word}) as {byte | word}
Возвращает:Число страниц, которое действительно можно выделить.
См. также:sock.txbuffrq

ПараметрОписание
numpagesЗапрашиваемое число страниц буфера. Пока что максимально допустимое значение - 255.

Подробности

Буфер TX2 необходим, когда включены inband-команды (sock.inbandcommands = 1 - YES). Без него сокет не сможет передавать данные. Метод возвращает число страниц, которое действительно можно выделить. Фактически буфер выделяется при использовании метода sys.buffalloc. В отличие от буферов передачи (TX) и приёма (RX), свойства для считывания фактической ёмкости буфера TX2 в байтах нет. Ёмкость можно вычислить как num_pages * 256 - X (или = 0 при num_pages = 0), где "num_pages" - число страниц буфера, которое было ВЫДЕЛЕНО через sock.tx2buffrq. Вычитание "- X" связано с тем, что часть байт нужна для внутренних переменных буфера. X = 17 байт на 16-разрядных платформах и 33 байта на 32-разрядных. Тип платформы указан в документации на платформу.

Выделение буфера не сработает, если сокет, которому принадлежит этот буфер, не находится в состоянии простоя (sock.statesimple не равно 0 - PL_SSTS_CLOSED) на момент выполнения sys.buffalloc. Менять размеры буферов можно только у сокетов, находящихся в простое.

У старых устройств объём ОЗУ был меньше, поэтому аргумент numpages и возвращаемое методом значение имели тип byte. Максимально возможное число страниц поэтому не могло превышать 255. На новых устройствах с большим объёмом ОЗУ этот метод принимает и возвращает значения типа word. Чтобы узнать, какой тип используется, посмотрите объявление метода для вашей платформы.

Внимание

Пока что максимальное число страниц, которое можно выделить для буфера приёма (RX), по-прежнему ограничено значением 255. Это ограничение будет снято в будущих версиях TiOS.

Исходный материал Tibbo обновлён 12 сентября 2022Оригинал на docs.tibbo.com · Сообщить об ошибке