Главная страница
    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.01 c
1-28913
denis24
2003-01-31 09:24
2003.02.10
массив с именами файлов


7-29134
MSAlex
2002-12-08 15:00
2003.02.10
Floppy


14-29019
lamokop
2003-01-23 22:01
2003.02.10
Delphi Translit :))


1-28869
stone
2003-01-30 13:38
2003.02.10
Как показать подсказку


1-28906
Nick_N_A
2003-01-26 05:23
2003.02.10
Icons & File





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