![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Com-port
Flakon © (2001-10-29 13:55:00)Как? Каким образом? Считать даные из СОМ-порта?
Dimaond Cat (2001-12-27 22:19:00) [1]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
dcb : TDcb; // структура ( виндусовская ) с установками СОМ портов
hCom : THandle; // handler СОМ2
fSuccess : boolean;
dwRead : DWORD;
CharArray : array[0..10] of char; // временный массив данных в оперативной памяти
fileOut : file of char; // файл в который будут писаться данные из СОМ2
i : integer;
begin
hCom := CreateFile(PChar("COM2"),GENERIC_READ,0,nil,OPEN_EXISTING,0,0); //получение указателя на СОМ2
try
fSuccess:= GetCommState(hCom, dcb); // Получение данных о текущих установках СОМ2 и заполнение
// структуры dcb
dcb.BaudRate := CBR_38400; // Установка новых параметров
dcb.ByteSize := 8; // для СОМ2, скорость 38400, 8-ми битный обмен,
dcb.Parity := NOPARITY; // нет контроля четности,
dcb.StopBits := ONESTOPBIT; // один стоповый бит
fSuccess := SetCommState(hCom, dcb); // Установка новых параметров для СОМ2
except
ShowMessage("Error");
end;
if fSuccess then ShowMessage("Success!")
else ShowMessage("Error of initiate ComPort...");
for i:=0 to 10 do // цикл чтения из СОМ2 ( к примеру ) одиннадцати байт
begin
ReadFile(hCom, CharArray[i], 1, dwRead, nil); // чтение одного байта из порта
end;
AssignFile(FileOut,"c:\out.txt");
Rewrite(FileOut);
for i:=0 to 10 do // цикл записи полученной информации в файл на диске
begin
Application.ProcessMessages;
Write(FileOut,CharArray[i]);
end;
CloseFile(FileOut);
CloseHandle(hCom);
end;
end.
gek (2001-12-27 10:12:00) [2]Посм на
http://www.maxivamoto.narod.ru/DelphiComponents/portsmodems.htm
полно всего
EsKor (2001-12-27 09:34:00) [3]На сайте "Королевство Delphi":
- в разделе "Сокровищница" (если не ошибаюсь) 22.03.2001 была опубликована статья Максима Игнатьева "Пример работы по последовательному порту";
- в разделе "Подземелье магов" (если не ошибаюсь) начиная с 25.03.2001 была опубликована серия статей Дмитрия Кузана "Работа с портами ввода-вывода в Delphi" со сылками на статью М.Игнатьева.
skr (2001-12-26 21:24:00) [4]Через API не получиш хендл на на уже открытый порт я на эти грабли наступал. Скажем если нужно последить за состоянием модема (в SDK нет функций в\в для портов). Единственный способ для WIN2K использовать giveio.sys и asm{in... out...}. Прога пользователя начинает работать в 0 кольце :)
amamed_3071 (2001-12-25 11:38:00) [5]VB 3,4,5,6 help
1inch (2001-12-25 10:29:00) [6]сорри за ламерство, но где найти описание работы с mscomm32.ocx?
на е-мыл, пожалуйста.
Darker (2001-11-01 13:15:00) [7]Я как недавно начавший, посоветую довольно легкую и понятную в использовании компоненту:
+------------------------------------------+
| ComPort Library version 2.63 |
| for Delphi 3, 4, 5, 6 |
| and C++ Builder 3, 4, 5 |
| |
| by Dejan Crnila |
| 1998-2001 |
| C++ Builder support by Paul Doland |
+------------------------------------------+
http://www2.arnes.si/~sopecrni
Пользуйся. :о)
pasha676 (2001-11-01 10:28:00) [8]По WinApi И ком порт читай статьи в Инете. Даже на этом сайте вроде есть.
Mamed (2001-10-31 17:03:00) [9]Иcпользуй MScomm.осх
harisma (2001-10-31 15:54:00) [10]Можно и через функции WinAPI.
Сначала открывваешь порт как CreateFile(CommD,.....), а потом В процедуре AppIdle пишешь ReadFile(CommD,MasR,num,Rn,0) или что то в этом роде...
Если хочешь - обращайся на мыло.
erik (2001-10-31 14:47:00) [11]Используй компонент VARIAN ASYNC32 COMPONENT v1.48
Digitman (2001-10-30 14:50:00) [12]спроси у <Лана Розанова> )