Метод .rplbuffrq

Назначение:Для выбранного сокета (выбор выполняется через sock.num) возвращает строку с «предварительным просмотром» данных из буфера RX. Данные из буфера НЕ удаляются.
Синтаксис:sock.cmdbuffrq(numpages as {byte | word}) as {byte | word}
Возвращает:Фактическое число страниц, которое можно выделить.
См. также:sock.cmdbuffrq, sock.rplbuffsize

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

Подробности

Буфер RPL - это буфер, в котором хранятся исходящие внутриполосные ответы (сообщения). Само выделение происходит при вызове метода sys.buffalloc. Если ёмкость буфера RPL равна 0, сокет не может отправлять внутриполосные ответы.

В отличие от буферов TX и RX, на 16-разрядных платформах нет свойства, которое возвращало бы фактическую ёмкость буфера RPL в байтах. Её можно вычислить как num_pages * 256 - X (или 0, если num_pages = 0), где "num_pages" - число страниц буфера, которое было ВЫДЕЛЕНО через sock.rplbuffrq. Вычитание X нужно потому, что часть байтов занимают внутренние переменные буфера. X = 17 байт на 16-разрядных платформах и 33 байта на 32-разрядных. Тип платформы указан в документации на вашу платформу.

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

Буфер RPL нужен, только когда включены внутриполосные команды (sock.inbandcommands = 1 - YES).

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

Внимание

На данный момент максимальное число страниц, которое можно выделить для буфера RX, по-прежнему ограничено значением 255. В будущих версиях TiOS это ограничение будет снято.

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