Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 23:17 08.06.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Re: Предложение за "читав" COMM компонент?нови [re: ИвKo]  
Автор svetlin (новак)
Публикувано18.01.09 21:15



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, shellapi;


type
TF_SerAPI = class(TForm)
st_empf: TStaticText;
Timer1: TTimer;
Button1: TButton;
Edit1: TEdit;

procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);

procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);


private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
F_SerAPI : TF_SerAPI;
Cid : Integer;
Stat : PComStat; {Windowsstruktur fьr Schnittstellen}
Result : DWord;
Overlapped : TOverlapped;
DCB: TDCB;
ComTemp : PChar;
timeouts: TCommTimeouts;
implementation

{$R *.DFM}

procedure TF_SerAPI.FormCreate(Sender: TObject);
begin
ComTemp := 'COM1';
Cid := CreateFile(ComTemp,GENERIC_WRITE OR GENERIC_READ,0,nil,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);

EscapeCommFunction(Cid , SETDTR); // SETRTS

DCB.BaudRate := 9600; // Baudrate [9600]
DCB.ByteSize := 8; // Anzahl der Bits/Byte, 4-8 [8]
DCB.Parity := 0; // 0-4=keine, ungerade, gerade, [keine], gesetzt oder leer
DCB.StopBits := 0; // 0,1,2 = 1, 1.5, 2 [1Stopbit]
DCB.Flags := 0; // Setzt die ЬbertragungaFlags [keine]
DCB.XonChar := #17; // Tx und Rx X-ON-Zeichen [Ascii#17]
DCB.XoffChar := #19; // Tx und Rx X-OFF-Zeichen [Ascii#19]
DCB.XonLim := 10; // X-ON-Sendeschwelle
DCB.XoffLim := 10; // X-OFF-Sendeschwelle
DCB.EofChar := #0; // Eingabe Ende-Zeichen
DCB.EvtChar := #0; // Ereignis erhalten-Zeichen

SetCommState(cid,DCB) ;
timeouts.ReadIntervalTimeout:=1;
timeouts.ReadTotalTimeoutMultiplier:=100;
timeouts.ReadTotalTimeoutConstant:=100;
timeouts.WriteTotalTimeoutMultiplier:=100;
timeouts.WriteTotalTimeoutConstant:=100;
SetCommTimeouts(Cid,timeouts) ;
end;



procedure TF_SerAPI.FormClose(Sender: TObject; var Action: TCloseAction);

begin
CloseHandle(CID)
end;


procedure TF_SerAPI.Timer1Timer(Sender: TObject);
var
Input,Output:byte ; // PChar

begin
PurgeComm(Cid,PURGE_RXCLEAR) ;
ReadFile(Cid,Input,1,Result,@Overlapped);
st_empf.Caption := inttostr(Input);

GetCommState(Cid,DCB );
//GetCommMask(Cid, EV_CTS );

end;




procedure TF_SerAPI.Button1Click(Sender: TObject);
var
Output:byte ;
begin
Output:=strtointDef(edit1.text,0);
WriteFile(Cid,Output,1,Result,@Overlapped) ;
end;

end.

Редактирано от svetlin на 18.01.09 21:16.



Тема Re: Предложение за "читав" COMM компонент?нови [re: svetlin]  
Автор ИвKo (особняк)
Публикувано19.01.09 17:53



Благодаря... Някакъв начин да се избегне този таймер?



Тема Re: Предложение за "читав" COMM компонент?нови [re: ИвKo]  
Автор nuub (непознат )
Публикувано19.01.09 17:59



Може - с callbacks, ама се дебъгва с пъти по-трудно.




Страници по тази тема: 1 | 2 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.