Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

Как работать с 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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.008 c
1-28867
Гость из солнечной Алматы
2003-01-27 12:51
2003.02.10
Процентная похожесть строк.


7-29125
Synthetic
2002-12-06 06:04
2003.02.10
Как спрятать выполняющуюся программу ?


6-28985
karan1
2002-12-11 18:23
2003.02.10
!!? Дата создания файла через FTP?!!


7-29118
zuber
2002-12-03 22:40
2003.02.10
Помогите! Как звонить модемом


4-29172
malkolinge
2002-12-29 12:23
2003.02.10
TreeView





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