при заполнении буфера приема на
данных путем отслеживания XOFF-символа:
* Открытие порта с активизацией режима непосредственной передачи
COM_OPEN(1, 1000)
* Передача данных до приема XOFF-символа
nPos := 1
DO WHILE .NOT. COM_SOFT_R(1) .AND. nPos <= LEN(cString)
COM_SEND(1, SUBSTR(cString, nPos, 1))
nPos := nPos + 1
ENDDO
See Also: COM_SEND()
COM_SOFT()
COM_SOFT_S()
Возвращает флаг автоматической посылки XOFF-символа.
------------------------------------------------------------------------------
Синтаксис
COM_SOFT_S(<nComPort>) --> lXOFF
Параметры
<nComPort> - номер последовательного порта в диапазоне от 1 до 4.
Возвращаемое значение
lXOFF - логическое значение .T. при заполнении буфера приема на 75%
или более, а иначе .F..
Описание
Функция возвращает состояние флага, устанавливаемого при посылке
XOFF-символа в процессе автоматической программной приостановки
передачи. Посылка XON-символа при освобождении буфера до 50% вызывает
сброс этого флага.
Примечания
. Выбор оптимального размера буфера приема зависит от скорости
передачи и рассчитывается, исходя из необходимости обеспечивать прием
символов, передаваемых удаленной стороной до ее реакции на
приостановку передачи.
Другими словами, 25% объема буфера должны вместить то количество
символов, которое может быть передано за время равное сумме удвоенного
времени распространения и времени реакции программы.
Примеры
. Освобождение буфера приема по флагу автоматической передачи XOFF:
IF = COM_SOFT_S(1)
? "Пора освободить буфер!"
...
ENDIF
See Also: COM_READ()
COM_SOFT()
XMOBLOCK()
Формирует блок данных для передачи по протоколу XMODEM.
------------------------------------------------------------------------------