Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / COM порт (2000) / 4 сообщений из 4, страница 1 из 1
28.04.2003, 12:43
    #32150014
M.I.V.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM порт (2000)
Как работать с СОМ портом под Windows 2000 (NT) ?
...
Рейтинг: 0 / 0
28.04.2003, 12:48
    #32150027
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM порт (2000)
...
Рейтинг: 0 / 0
28.04.2003, 12:52
    #32150036
Seryoga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM порт (2000)
CreateFile, ReadFile - почитай хелп.

http://rdpa.euro.ru/hard.htm - тут пример есть...
...
Рейтинг: 0 / 0
29.04.2003, 19:13
    #32151323
Fox_19
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COM порт (2000)
Открытие порта:
Var
FHandle: Thandle;

FHandle := CreateFile(
PChar(ComString),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);

Параметр 1: Имя порта - 'COM1', итд

Параметр 2: режим открытия GENERIC_READ - чтение, GENERIC_WRITE - запись

Параметр 3: режим разделения ресуртса. Примечание: 0 - неразделяемый (именно так описано открытие последовательного порта в WIN SDK, другие режимы не проверял).

Параметр 4: Режим безопасности. Имеет смысл в Windows NT, Windows 9x игнорирует его.

Параметр 5: Способ открытия. Для порта - OPEN_EXISTING - открыть, когда устройство реально существует.

Параметр6: режим наложения операций - FILE_FLAG_OVERLAPPED - разрешение таких операций. При этом операции чтения - записи, требующие значительного времени, выполняются фоново по отношению к основному потоку программы.

Параметр7: шаблон файла, для последовательного порта - всегда 0.

В случае нормального открытия порта FHandle - дескриптор порта, при неудаче содержит значение INVALID_HANDLE_VALUE.

Закрытие порта:
Закрытие порта выполняется вызовом CloseHandle(FHandle).

Настройка параметров передачи (скорость, кол-во бит, стоп биты)
Структура данных о настройках порта (device control block) DCB содержит информацию о настройках порта. Поля структуры:

DWORD DCBlength; // sizeof(DCB)
DWORD BaudRate // Скорость передачи (baud rate). Есть стандартный набор
// скоростей: все константы скоростей выглядят как CBR_<число>.
//Пример CBR_9600, CBR_115200.

Flags
DWORD fBinary: // режим проверки символа Eof - включение данного режима Windows
// не поддерживает ( по крайней мере сейчас). Маска $01
DWORD fParity: //Контроль четности Маска $02 - включение контроля четности
DWORD fOutxCtsFlow: // Маска $04 - Включение контроля сигнала CTS при выводе байтов.
DWORD fOutxDsrFlow: // Маска $08 - Включение контроля сигнала DSR при выводе байтов.
DWORD fDtrControl: // Маска $30 - Тип контроля сигнала DTR: значения
DTR_CONTROL_DISABLE деактивация сигнала.
DTR_CONTROL_ENABLE конкретное значение сигнала можно задавать через
вызов EscapeCommFunction.
DTR_CONTROL_HANDSHAKE Автоматическое управление сигналом.
DWORD fDsrSensitivity: // Маска $40 - Включение контроля сигнала DSR.
DWORD fTXContinueOnXoff:1; // XOFF continues Tx
DWORD fOutX: // Маска $100. Включение режима работы по XON XOFF при передаче
DWORD fInX: // Маска $200 -//- при приеме
DWORD fErrorChar: // Маска $400. Разрешение замещения при ошибочном приеме
// (несовпадение четности) принятого байта на член структуры ErrorChar.
DWORD fNull: // Маска $800 enable null stripping - пропускать при приеме символы NULL
DWORD fRtsControl: // Маска $3000. Тип контроля:
RTS_CONTROL_DISABLE
RTS_CONTROL_ENABLE
RTS_CONTROL_HANDSHAKE Аналогично сигналу DTR
RTS_CONTROL_TOGGLE - Высокий уровень пока, есть данные для передачи.

DWORD fAbortOnError // Маска $4000. Прекращение операций
// чтения - записи при возникновении ошибок
DWORD fDummy2:17; // Не используются


Получить текущую конфигурацию порта можно функцией GetCommState(Fhandle:Handle; fDCB:TDCB).
Установить соответственно SetCommDCB.
После установки параметров порта. Читать и писать можно через ReadFile и WriteFile.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / COM порт (2000) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]