Возвращает значение для регистра состояния
SET KEY 228 TO BufferFull
COM_KEY(2, 227, 228) // Отслеживание порта 2
cName := SPACE(20) // Выполнение GET..READ
@ 10, 10 GET cName // может сопровождаться вызовом
READ // процедур обслуживания
// прерываний по инициативе порта.
COM_KEY(2) // Отключение отслеживания
RETURN
PROCEDURE COMMERRORS (A, B, C)
nMSR_Status := COM_EVENT(2, 2) // Чтение собранных MSR-данных
nLSR_Status := COM_EVENT(2, 2) // Чтение собранных LSR-данных
* Повторная активизация прерываний, сброс внутренних
* значений COM_EVENT().
COM_KEY(2, 227, 228)
IF ISBIT(nMSR_Status, MSR_RI) // Установлен бит вызова?
? "Обнаружен входящий вызов!"
ELSE
IF ISBIR(nLSR_Status, LSR_Break) // Проверка BREAK
?"Обнаружен BREAK!"
ENDIF
ENDIF
RETURN
PROCEDURE BUFFERFULL(A, B, C)
* Должен быть прочитан буфер приема!
COM_KEY(2, 227, 228) // Повторная активизация
cData := COM_READ(2) // Чтение всех данных
SELECT MESSDAT
REPLACE ComDat WITH cData // Сохранение данных
SKIP
SELECT INPUT
RETURN
See Also: COM_COUNT()
COM_EVENT()
COM_MSR()
LASTKLINE()
LASTKPROC()
COM_LSR()
Возвращает значение для регистра состояния линии (LSR).
------------------------------------------------------------------------------
Синтаксис
COM_LSR(<nComPort>) --> nLSR
Параметры
<nComPort> - номер последовательного порта в диапазоне от 1 до 4.
Возвращаемое значение
nLSR - число, содержащее комбинацию битов регистра состояния линии
(LSR), назначение которых приведено в таблице: