Для каждого последовательного порта может
Прием данных
Для каждого последовательного порта может быть зарезервирован буфер
размером до 64 Кбайтов, в который записываются все поступающие
символы, даже если Clipper-программа занята другим процессом.
Количество находящихся в буфере символов может быть проверено и
прочитано по частям.
Передача данных
Можно также, хотя это и не обязательно, зарезервировать буфер
передачи. В таком случае передача данных, запущенная функцией
COM_SEND(), управляется прерываниями, т.е. выполняется в фоновом
режиме. Для управления и контроля за буфером передачи применяется
несколько функций.
Прерывания при ошибках передачи
Если параметр <lTrapMode> имеет значение .T., то порт (УАПП) будет
инициировать прерывания при приеме данных и в фоновом режиме при
передаче данных. События, связанные с MSR или LSR, учитываться не
будут, что повлияет на отслеживание сигналов состояния и, особенно,
ошибок при передаче.
Эта возможность добавлена в связи с тем, что некоторые адаптеры
последовательных интерфейсов инициируют прерывания из-за "шума" во
входных линиях, которые, как правило, не шунтированы нагрузочным
сопротивлением. Выключение отслеживания переполнения буфера приема
может нарушить выполнение программы и привести к значительным потерям
информации.
Примечания
. MSR (Modem Status Register) - регистр состояния модема. LSR (Line
Status Register) - регистр состояния линии.
DTR (Data Terminal Ready) - готовность терминала или, другими словами,
готовность передатчика внешнего устройства к передаче данных.
. Внимание! CT II-функции COM_OPEN() и COM_INIT() не влияют на
управляющие сигналы в отличие от аналогичных функций других языков,
например BASIC. Для управления модемом через последовательный порт с
использованием Clipper необходимо устанавливать DTR и другие сигналы,