Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Вниз

работ с com - портом   Найти похожие ветки 

 
ledzzz   (2002-12-29 14:14) [0]

Помогите,пожалуйста: как считать данные с com-порта? Особенно буду благодарен за примеры!


 
Ferrarium   (2002-12-29 15:43) [1]

Держи ссылку:
Начало:
http://www.delphikingdom.com/mastering/ports1.htm
Продолжение:
http://www.delphikingdom.com/mastering/ports2.htm
http://www.delphikingdom.com/mastering/ports3.htm
http://www.delphikingdom.com/mastering/ports4.htm
http://www.delphikingdom.com/mastering/ports5.htm


 
DED_MOROZ   (2002-12-31 09:30) [2]

function GetPort(): PChar; stdcall;
const
RxBufferSize = 256;
TxBufferSize = 256;

Var
inFile:TextFile;
FHandle: Thandle;
DCB: TDCB;
s,port,confiq: string;
CommTimeouts: TCommTimeouts;
BytesRead,BytesWritten: DWORD;
d: array[1..9] of Char;
d1: Char;
i:integer;
begin

if FileExists("confiq.ini")
then
begin
AssignFile(inFile,"confiq.ini") ; Reset(inFile);
try
begin
readln(inFile,port);readln(inFile,Confiq);
end;
finally
CloseFile(inFile);
end;
end else
begin
showmessage("Файл конфигурации порта не найден");
end;

FHandle := CreateFile(
PChar(port),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
{FILE_FLAG_OVERLAPPED or} FILE_ATTRIBUTE_NORMAL,
0);



if FHandle = INVALID_HANDLE_VALUE then begin
CloseHandle(FHandle);end ;

if not SetupComm(FHandle, RxBufferSize, TxBufferSize) then begin
CloseHandle(FHandle);Result := PChar("1");
Exit; end;

if not GetCommState(FHandle, DCB) then begin
CloseHandle(FHandle);Result := PChar("2");
Exit; end;

if not BuildCommDCB(@Confiq[1], DCB) then begin
CloseHandle(FHandle);Result := PChar("3");
Exit; end;

if not SetCommState(FHandle, DCB) then begin
CloseHandle(FHandle);Result := PChar("4");
Exit; end;

with CommTimeouts do
begin
ReadIntervalTimeout := 0;
ReadTotalTimeoutMultiplier := 0;
ReadTotalTimeoutConstant := 100;
WriteTotalTimeoutMultiplier := 0;
WriteTotalTimeoutConstant := 100;
end;

if not SetCommTimeouts(FHandle, CommTimeouts) then begin
CloseHandle(FHandle);Result := PChar("5-"+IntToStr(GetLastError));
Exit; end;

s:="";

d1 := #16;
if not WriteFile(FHandle, d1, Length(d1), BytesWritten, nil) then
begin CloseHandle(FHandle);Result := PChar("6-"+IntToStr(GetLastError));
Exit;
end;

if not ReadFile(FHandle, d, SizeOf(d), BytesRead, nil) then
ShowMessage("7- " + IntToStr(GetLastError))
else begin

s:="";
for i:=1 to SizeOf(d) do
begin
if ((d[i] = "0") or(d[i] = "1") or (d[i] = "2") or (d[i] = "3") or
(d[i] = "4") or (d[i] = "5") or (d[i] = "6") or (d[i] = "7") or
(d[i] = "8") or (d[i] = "9") or (d[i] = ".")) then begin
if d[i]="." then begin d[i]:=",";end;
s:=s+d[i]; end
else begin s:=s; end;
end;

d1 := #24;
if not WriteFile(FHandle, d1, Length(d1), BytesWritten, nil) then
begin CloseHandle(FHandle);
Result := PChar(s);
Exit;
end;
CloseHandle(FHandle);
end;
Result := PChar(s);
end;



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.035 c
6-5697
Vanya
2003-01-14 11:06
2003.03.03
Как мне перехватывать то, что идет по протоколу HTTP?


1-5499
Sharik_212
2003-02-20 15:55
2003.03.03
Показ формы


14-5838
nick-from
2003-02-12 11:50
2003.03.03
Просто прикол


14-5731
Muxaul
2003-02-15 13:01
2003.03.03
Работа с файлами


1-5584
jiura
2003-02-19 18:38
2003.03.03
MDI





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский