Описание библиотеки SysLibCom

Библиотека SysLibCom содержит:

Блоки библиотеки SysLibCom используются совместно, поэтому отдельные примеры работы каждого блока не приводятся. В разделе Пример представлен общий пример программы, демонстрирующий применение всех блоков.

SysComOpen

Функция SysComOpen типа данных DWORD открывает последовательный порт.

Имя переменной

Тип данных

Описание

Входные переменные

Port

PORTS

Открываемый порт (например: COM1); Порт определяется перечислением PORTS

SysComOpen возвращает дескриптор порта, который используется при вызове других функций библиотеки. В случае ошибки, возвращается 16#FFFFFFFF.

PORTS

Перечисление PORTS:

TYPE PORTS : BYTE (COM1:=1, COM2, COM3, COM4, COM5, COM6, COM7, COM8);

END_TYPE

SysComSetSettings

Функция SysComSetSettings типа BOOL устанавливает скорость, число стоповых бит, контроль паритета, таймаут, размер буфера и период опроса для последовательного порта. Требуемые параметры передаются посредством указателя на структуру COMSETTINGS.

Имя переменной

Тип данных

Описание

Входные переменные

dwHandle

DWORD

Дескриптор порта, возвращаемый SysComOpen

ComSettings

REF_TO COMSETTINGS

Указатель на структуру COMSETTINGS

Возвращает TRUE при успешной установке параметров, иначе FALSE.

COMSETTINGS

Элементы структуры COMSETTINGS определены следующим образом:

Имя переменной

Тип данных

Описание

Port

PORTS

Номер порта (см. PORTS)

dwBaudRate

DWORD

Скорость: 4800, 9600, 19200, 38400, 57600, 115200 (на данный момент реализована работа с данными скоростями, в дальнейшем список поддерживаемых скоростей будет расширен)

byStopBits

BYTE

0 = один стоп бит;

1 = полтора;

2 = два

byParity

BYTE

0 = нет бита контроля;

1 = нечетность;

2 = четность

dwTimeout

DWORD

Таймаут интерфейса в мс, по умолчанию 0

dwBufferSize

DWORD

Размер встроенного буфера, по умолчанию 0

dwScan

DWORD

Время полинга последовательного интерфейса, должно быть 0

SysComSetSettingsEx

Данная функция типа BOOL применяется для установки расширенных параметров порта. В дополнение к параметрам, определяемым SysComOpen, она задает управление потоком и размер символов. Требуемые параметры передаются посредством указателя на структуру COMSETTINGSEX. Возвращает TRUE при успешной установке параметров, иначе FALSE. В зависимости от аппаратной реализации, не всегда возможно многократно менять параметры открытого порта. В этом случае, закройте его и откройте заново.

Имя переменной

Тип данных

Описание

Входные переменные

dwHandle

DWORD

Дескриптор порта, возвращаемый SysComOpen

ComSettingsEx

REF_TO COMSETTINGSEX

Указатель на структуру COMSETTINGSEX

COMSETTINGSEX

Элементы структуры COMSETTINGSEX определены следующим образом:

Имя переменной

Тип данных

Описание

Size

INT

Размер структуры в байтах. Используйте sizeof() для заполнения этого поля

Port

PORTS

Номер порта (см. PORTS)

dwBaudRate

DWORD

Скорость: 4800, 9600, 19200, 38400, 57600, 115200

byStopBits

BYTE

0 = один стоп бит;

1 = полтора;

2 = два

byParity

BYTE

0 = нет бита контроля;

1 = нечетность;

2 = четность

dwTimeout

DWORD

Таймаут интерфейса в мс, по умолчанию 0

dwBufferSize

DWORD

Размер встроенного буфера, по умолчанию 0

dwScan

DWORD

Время полинга последовательного интерфейса; должно быть 0, если в документации изготовителя аппаратуры нет иных указаний

cByteSize

BYTE

4...8: размер символа в битах

fOutxCtsFlow

BOOL

TRUE означает контроль потока передачи по сигналу CTS

fDtrControl

BYTE

DTR всегда 0 для открытого порта.

1: DTR

2: Управление по DTR

fDsrSensitivity

BOOL

При TRUE запрещен прием при отсутствии сигнала DSR

fRtsControl

BYTE

0: RTS всегда 0 для открытого порта;

1: RTS всегда 1 для открытого порта;

2: Драйвер держит RTS пока буфер приемника заполнен менее чем на половину. Драйвер снимает RTS, если буфер заполнен более чем на три четверти;

3: Управление по RTS: драйвер устанавливает RTS на время передачи. После передачи всех данных из буфера RTS снимается

fOutxDsrFlow

BOOL

Разрешает управление по DSR. При переходе DSR в ноль передача приостанавливается

SysComClose

Функция SysComClose типа BOOL закрывает COM порт. Возвращает TRUE при успешном завершении, иначе FALSE.

Имя переменной

Тип данных

Описание

Входные переменные

dwHandle

DWORD

Дескриптор порта, возвращаемый SysComOpen

SysComWrite

SysComWrite — это функция типа DINT, записывающая данные в порта на передачу. Возвращает число реально записанных байт.

Имя переменной

Тип данных

Описание

Входные переменные

dwHandle

DWORD

Дескриптор порта, возвращаемый SysComOpen

BufferAddress

DWORD

Указатель на буфер, содержащий данные для передачи. (Используйте оператор REF — полную информацию по указателю см. в Руководстве пользователя ALTA IDE)

BytesToWrite

DWORD

Число байт в буфере

dwTimeout

DWORD

Время в мс, после которого функция обязана завершиться

SysComRead

Функция типа DINT читает принятые данные из порта. Возвращает число считанных байтов.

Имя переменной

Тип данных

Описание

Входные переменные

dwHandle

DWORD

Дескриптор порта, возвращаемый SysComOpen

BufferAddress

DWORD

Указатель на буфер, куда копируются принятые данные. (Используйте оператор REF)

BytesToRead

DWORD

Число считаемых байт

dwTimeout

DWORD

Время в мс, после которого функция обязана завершиться

SysComGetVersion2300

Функция типа DWORD всегда возвращает 100. Используется для внутренней автоматической проверки версии. В прикладных программах ее вызывать не нужно.