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

Вниз

Как работать с COM портами в DELPHI   Найти похожие ветки 

 
Lipa   (2002-12-02 16:39) [0]

Пожалуста подскажите, як считать через COM порт число (числа) в бинарном виде. Заранее благодарю за информацию.


 
[NIKEL]   (2002-12-02 17:52) [1]

void __fastcall TForm1::Button1Click(TObject *Sender)
{
HANDLE hCom = CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL );

if(hCom)
{

DCB dcb;
ZeroMemory(&dcb, sizeof(dcb));
dcb.DCBlength = sizeof(dcb);

dcb.BaudRate = 57600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY; // NOPARITY and friends are
dcb.StopBits = ONESTOPBIT; // #defined in windows.h

// Set the port properties and write the string out the port.
if(SetCommState(hCom,&dcb))
{
DWORD ByteCount;
const char *msg = "Hello world!";
WriteFile(hCom,msg, strlen(msg),&ByteCount,NULL);
}
CloseHandle(hCom);
}
}



 
Lipa   (2002-12-03 12:28) [2]

а может есть еще пример по работе с COM портами для чтения и записи информации в текстовом и числовом виде?


 
DOOMin   (2002-12-03 12:47) [3]

сходи на www.torry.net и поищи CPDrv. Хорошая компонента


 
Андрей Ваганов   (2002-12-03 19:53) [4]

1. открываем...
type
Data=array[0..9]of byte;
var
hComm:THandle;

* * * *
function Open(CommNo:byte):THandle;
var
dcb:TDCB;
begin
try
hComm:=CreateFile( PChar(Format("COM%1d", [CommNo])),
GENERIC_READ or GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Win32Check(hComm <> INVALID_HANDLE_VALUE);
GetCommState(hComm, dcb);
Win32Check( GetCommState(hComm, dcb) );
dcb.BaudRate:=9600;
dcb.ByteSize := 8;
dcb.StopBits := 2;
dcb.Parity := NOPARITY;
Win32Check( SetCommState(hComm, dcb) );
result:=hComm;
except
Win32Check(CloseHandle(hComm));
exit;
end;
end;

2.сюда...

function Read:data;
var
Pachet:Data;
Bytes:dword;
begin
try
Win32Check( ReadFile(hComm, Pachet, 10, Bytes, nil) );
if Bytes<>11 then //тру ля ля .... лажа...
result:=Pachet;
except
exit;
end;
end;

3. туда...

function Write(hComm:THandle; Packet:Data):word;
var
Bytes:dword;
begin
try
Win32Check(WriteFile(hComm, Packet ,10, Bytes, nil));
if Bytes<>10 then //тру ля ля .... лажа...
exit;
except
exit;
end;
end;

4. закрываем...

function Close(hComm:THandle):word;
begin
try
CloseHandle(hComm);
except
exit;
end;
end;

5...возми компоненту, написанную умным дядей и не морочь 00...
(на www.torry.net их куча, хорошо работает TComPort v.2.61a)



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

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

Наверх




Память: 0.45 MB
Время: 0.012 c
6-28954
Yogi
2002-12-11 07:29
2003.02.10
Медленный connect


1-28694
koly01
2003-01-29 15:02
2003.02.10
помогите разобраться с Tservice


1-28855
tytus
2003-01-29 23:23
2003.02.10
процесс


3-28623
KIR
2003-01-21 23:26
2003.02.10
Paradox в сети


1-28710
tga
2003-01-31 11:09
2003.02.10
XML + Delphi... как?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский