Comm/Docu/ru/V24.odc

CommV24

MODULE CommV24;

	CONST
		bits4 = 0; bits5 = 1; bits6 = 2; bits7 = 3; stop15 = 4; stop2 = 5; even = 6; odd = 7;
		inXonXoff = 8; outXonXoff = 9; inRTS = 10; inDTR = 11; outCTS = 12; outDSR = 13;

	TYPE Connection = POINTER TO LIMITED RECORD END;

	PROCEDURE Open (device: ARRAY OF CHAR; baud: INTEGER; opts: SET; OUT conn: Connection);
	PROCEDURE Close (c: Connection);
	PROCEDURE SendByte (c: Connection; x: BYTE);
	PROCEDURE SendBytes (c: Connection; IN x: ARRAY OF BYTE; beg, len: INTEGER);
	PROCEDURE Available (c: Connection): INTEGER;
	PROCEDURE ReceiveByte (c: Connection; OUT x: BYTE);
	PROCEDURE ReceiveBytes (c: Connection; OUT x: ARRAY OF BYTE; beg, len: INTEGER);
	PROCEDURE SetBuffers (c: Connection; inpBufSize, outBufSize: INTEGER);
	PROCEDURE SetDTR (c: Connection; on: BOOLEAN);
	PROCEDURE SetRTS (c: Connection; on: BOOLEAN);
	PROCEDURE SetBreak (c: Connection; on: BOOLEAN);
	PROCEDURE CTSState (c: Connection): BOOLEAN;
	PROCEDURE DSRState (c: Connection): BOOLEAN;
	PROCEDURE CDState (c: Connection): BOOLEAN;

END CommV24.


Простой процедурный интерфейс для V24 и тому подобных последовательных устройств.


CONST bits4, bits5, bits6, bits7
Количество бит данных. Эти флажки можно включать в параметр opts процедуры Open. Можно указать не больше одного из них. Если не указано ни одного, принимается 8 бит.

CONST stop15, stop2
Количество бит остановки (1.5 или 2). Эти флажки можно включать в параметр opts процедуры Open. Можно указать не больше одного из них. Если не указано ни одного, принимается один бит.

CONST even, odd
Проверка четности. Эти флажки можно включать в параметр opts процедуры Open. Можно указать не больше одного из них. Если не указано ни одного, принимается, что проверки четности нет.

CONST inXonXoff, outXonXoff
Управление потоком XOn/XOff для ввода и вывода. Эти флажки можно включать в параметр opts процедуры Open.

CONST inRTS, inDTR, outCTS, outDSR
Эти флажки можно включать в параметр opts процедуры Open. 

TYPE Connection
LIMITED
Описатель (handle) соединения. Представляет V24-соединение через конкретное устройство.


PROCEDURE Open (device: ARRAY OF CHAR; baud: INTEGER; opts: SET; OUT conn: Connection)
Открывает указанное устройство (device, например, "COM3:") с заданным битрейтом (baud) и опциями (opts). Заметим, что нельзя открыть второе соединение для уже открытого устройства, нужно сначала явно закрыть первое.

Post
открылось успешно
	conn # NIL
не открылось
	conn = NIL

PROCEDURE Close (c: Connection)
Закрывает открытое соединение.

Pre
c # NIL	20
c is open	21

PROCEDURE SendByte (c: Connection; x: BYTE)

Pre
c # NIL	20
c is open	21

PROCEDURE SendBytes (c: Connection; IN x: ARRAY OF BYTE; beg, len: INTEGER)

Pre
c # NIL	20
c is open	21
LEN(x) >= beg + len	22
len > 0	23

PROCEDURE Available (c: Connection): INTEGER

Pre
c # NIL	20
c is open	21

PROCEDURE ReceiveByte (c: Connection; OUT x: BYTE)

Pre
c # NIL	20
c is open	21

PROCEDURE ReceiveBytes (c: Connection; OUT x: ARRAY OF BYTE; beg, len: INTEGER)

Pre
c # NIL	20
c is open	21
LEN(x) >= beg + len	22
len > 0	23

PROCEDURE SetBuffers (c: Connection; inpBufSize, outBufSize: INTEGER)

Pre
c # NIL	20
c is open	21

PROCEDURE SetDTR (c: Connection; on: BOOLEAN)

Pre
c # NIL	20
c is open	21
~(inDTR IN c.opts)	22

PROCEDURE SetRTS (c: Connection; on: BOOLEAN)

Pre
c # NIL	20
c is open	21
~(inRTS IN c.opts)	22

PROCEDURE SetBreak (c: Connection; on: BOOLEAN)

Pre
c # NIL	20
c is open	21

PROCEDURE CTSState (c: Connection): BOOLEAN

Pre
c # NIL	20
c is open	21

PROCEDURE DSRState (c: Connection): BOOLEAN

Pre
c # NIL	20
c is open	21

PROCEDURE CDState (c: Connection): BOOLEAN

Pre
c # NIL	20
c is open	21