Главная страница
    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.014 c
6-28962
umr
2002-12-14 08:44
2003.02.10
как можно найти MAC адрес удаленного компьютера


1-28728
Alik1313
2003-01-31 15:12
2003.02.10
Кол-во экземпляров формы


14-29037
Guest
2003-01-22 21:01
2003.02.10
Проект DeepTown(Дип Таун) или Виртуальная Реальность


9-28566
Davert
2002-08-26 19:31
2003.02.10
Что такое фракталы


1-28814
nikkie
2003-01-31 16:13
2003.02.10
Русские акселераторы





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