Открывает последовательный порт для ввода и вывода
Синтаксис
Использование
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 и биты данных = 5 | 1.5 |
Скорость передачи данных <= 110 и биты данных >= 6 | 2 |
Скорость передачи данных > 110 | 1 |
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 может быть использован любой правильно настроенный последовательный
порт.
См. также