Страница 1 из 1
com порт в делфи
Добавлено: 06 дек 2006, 16:43
matroskin
подскажите плз как работать с ком портом в делфи.. как читать с него данные.
работал с портами только в паскале, непосредственно обращаясь к адресу порта
в виндовозе хп такая фишка не прокатит..
Re: com порт в делфи
Добавлено: 06 дек 2006, 16:49
LAngel
Оффициально, работа организована через [syntax="delphi"] hPort := CreateFile(
PChar('\\.\' + PortName),
GENERIC_READ or GENERIC_WRITE, 0, 0,
OPEN_EXISTING, 0, 0);[/syntax]
Есть множество компонентов для работы с com-портами.
Так же есть программы, разрешающие приложению доступ до порта напрямую.
Re: com порт в делфи
Добавлено: 06 дек 2006, 16:57
matroskin
LAngel писал(а):Оффициально, работа организована через [syntax="delphi"] hPort := CreateFile(
PChar('\\.\' + PortName),
GENERIC_READ or GENERIC_WRITE, 0, 0,
OPEN_EXISTING, 0, 0);[/syntax]
Есть множество компонентов для работы с com-портами.
Так же есть программы, разрешающие приложению доступ до порта напрямую.
т.е. это инициализация порта?
Re: com порт в делфи
Добавлено: 07 дек 2006, 08:28
LAngel
matroskin писал(а):т.е. это инициализация порта?
Нет это открытие "хендла" порта, с которым можно потом общаться с помощью функций:
ReadFile, WriteFile
настройки параметров порта, и его иниализация проводятся функциями
G(S)etCommState, G(S)etCommTimeouts
а вообще можно почитать
тут
Re: com порт в делфи
Добавлено: 07 дек 2006, 08:50
somewhere
" писал(а):т.е. это инициализация порта?
Это "получение прав пользования" этим портом, чтобы по Exception'у не получить. :-)
Re: com порт в делфи
Добавлено: 07 дек 2006, 11:13
matroskin
LAngel писал(а):Нет это открытие "хендла" порта, с которым можно потом общаться с помощью функций:
ReadFile, WriteFile
настройки параметров порта, и его иниализация проводятся функциями
G(S)etCommState, G(S)etCommTimeouts
а вообще можно почитать
тут
пасибо, почитаю=)
Re: com порт в делфи
Добавлено: 07 дек 2006, 11:14
matroskin
somewhere писал(а):Это "получение прав пользования" этим портом, чтобы по Exception'у не получить. :-)
пасибо, разбераюсь уже
Re: com порт в делфи
Добавлено: 13 дек 2006, 14:22
matroskin
Все написал, работает вроде

Но есть одно НО - я читаю 9 байт с ком порта в строку s1, но вывести эту строку почемуто не могу (закоментированная строка)- возникает ошибка типа - нет доступа к адресу ... вот, так в чем ошибка? :/
[syntax="delphi"] hPort := CreateFile(
function ReadCom :boolean;
var
d: array[1..100] of Char;
BytesRead: DWORD;
i: Integer;
s1:string;
Begin
if not Windows.ReadFile(fHandle, d, 9, BytesRead, nil) then
ShowMessage('cant read')
else
begin
s1:='';
for i:=1 to BytesRead do
begin
s1:=s1 + d
;
end;
//mm1.Lines.Add(s1);
edt1.Text:=s1;
end;
End;[/syntax]