Open Com
 
Открывает последовательный порт для ввода и вывода

Синтаксис

Declare Function Open Com ( byref options As String, As filenum As Integer ) As Integer

Использование

result = Open Com( options, As[#] filenum )

Параметры

options
String(строка) содержит параметры, используемые в управлении порта.
filenum
Номер файла для привязки к порту.

Возвращаемое значение

Возвращает ноль (0) в случае успешного завершения и ненулевой код ошибки в противном случае.

Описание

Эта команда открывает последовательный порт ПК, что позволяет отправлять и получать данные с помощью обычных файловых команд, таких как Print #, Input #, Get #, ...

Основным параметром является String (строка), которая описывает, по крайней мере открытие порта связи. Она имеет формат:

"Comn: [ baudrate ][ , [ parity ][ , [ data_bits ][ , [ stop_bits ][ , [ extended_options ]]]]]"

где,
n
Com порт, для открытия. "1", "2", "3", "4", и т.д.. Некоторые платформы будут поддерживать больше последовательных портов в зависимости от того, как настроена операционная система. Если n не дано, "COM:" будет сопоставляться c "COM1:", за исключением Linux где "COM:" сопоставляется c "/dev/modem"
baudrate
"300" (по умолчанию), "1200", ..., и т.д..
parity
"N" (нет), "E" ( по умолчанию), "O" (нечетный), "S" (пробел), "M" (знак), "PE" (QB : проверка, контроль четности)
data_bits
"5", "6", "7" (по умолчанию) или "8".
stop_bits
"1", "1.5" или "2". (Значение по умолчанию зависит от скорости передачи данных и данных бит, см. таблицу ниже)

УсловиеПо умолчанию количество стоп-битов
Скорость передачи данных <= 110 и биты данных = 51.5
Скорость передачи данных <= 110 и биты данных >= 62
Скорость передачи данных > 1101

extended_options
Дополнительные опции. (См. таблицу ниже)

ОпцииДействие
'CSn'Установить продолжительность CTS (в мс) (n>=0), 0 = выключить, по умолчанию = 1000
'DSn'Установить DSR продолжительность (в мс) (n>=0), 0 = выключить, по умолчанию = 1000
'CDn'Установить продолжительность несущего обнаружения (в мс) (n>=0), 0 = выключить
'OPn'Установка 'Open Timeout' (в мс) (n>=0), 0 = выключить
'TBn'Установка размера 'Transmit Buffer' (n>=0), 0 = по умолчанию, зависит от платформы
'RBn'Установка размера 'Receive Buffer' (n>=0), 0 = по умолчанию, зависит от платформы
'RS'Подавить RTS обнаружения
'LF'Общение в режиме ASCII (добавить LF каждому CR) - Win32 не поддерживает это
'ASC'так же, как 'LF'
'BIN'Противоположность LF и это всегда будет работать
'PE'Включение проверки 'Parity'
'DT'Держит DTR включенным после CLOSE
'FE'Отбрасывает недопустимый символ при ошибке
'ME'Игнорировать все ошибки
'IRn'IRQ номер для COM (поддерживается только (?) на DOS)


Все элементы, за исключением COM-порта являются необязательными. Порядок baudrate, parity, data_bits, stop_bits фиксированный. Любой пропущенный фиксированный элемент ( baudrate, и т.д....) должен быть пустым.

Пример

Open Com "COM1:9600,N,,2" As 1

Открывает COM1 cо скоростью передачи данных 9600, без четности, 7 битами данных и 2 битами остановки.

Open Com "COM1:115200" As 1

Открывает COM1  cо скоростью передачи данных  115200 , с "четностью" , 7 битами данных и 1 битом остановки.

Различия платформ

  • На платформе Windows, "COM:" сопоставляется с "COM1:"
  • На платформе Linux
"COM:" сопоставляется с "/dev/modem"
"COM1:" сопоставляется с "/dev/ttyS0"
"COM2:" сопоставляется с "/dev/ttyS1", и т.д.
"/dev/xyz:" сопоставляется с "/dev/xyz", и т.д.
  • Серийный драйвер DOS является экспериментальным и может получить доступ к COM-портам с 1 по 4
Он использует следующий базовый io и IRQ по умолчанию:
COM1 - &h3f8 - IRQ4
COM2 - &h2f8 - IRQ3
COM3 - &h3e8 - IRQ4
COM4 - &h2e8 - IRQ3
Начиная с fbc-0.18.4, альтернативный IRQ может быть указан с помощью "IRn" варианта протокола, где n от 3 до 7.
В настоящее время не поддерживается: IRQ's на slave PIC, альтернативные базовые адреса ввода/вывода, ожидания и большинство ошибок, обнаруженных в QB аппаратном обеспечении потока управление, FIFO.
"COM:" сопоставляется с "COM1:"
Отличия диалектов

  • В диалекте -lang qb старый синтаксис OPEN "COMx:... поддерживается.

Отличия от QB

  • В QB синтаксис был OPEN "COMx:[baudrate] [,parity, [data_bits, [stop_bits, [extended_options]]]]" FOR INPUT|OUTPUT|RANDOM AS [#] n
  • В QB, только "COM1:" и "COM2:" поддерживаются. В FreeBASIC может быть использован любой правильно настроенный последовательный порт.

См. также