Seri portdan haberleşme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Seri portdan haberleşme
Merhaba arkdaşlar,
ben seri porta bağlı bir sayaçtan bilgi okutmak istiyorum, bunu nasıl yapabilirim, ben mantığınıda pek bilmiyorum, bazı bileşenler varda kullanamadım, mantığının anlaşılması için kod olarak nasıl yazılıyor bilgis
i olan var mı?
ben seri porta bağlı bir sayaçtan bilgi okutmak istiyorum, bunu nasıl yapabilirim, ben mantığınıda pek bilmiyorum, bazı bileşenler varda kullanamadım, mantığının anlaşılması için kod olarak nasıl yazılıyor bilgis
i olan var mı?
Teşekürler arkadaşlar dediğiniz compenent ti kurdum, ama seriportlarla ilgili kısmını kuramamıyız sadece, anladığım kadarıyla apdcomport1 diye bir bileşen var ,onu bir forma ekledim örneklerede baktım ama, write -read komutunu nasıl kullanılacağını göremedim...
yoksa başka bir bileşenden mi kullanacağım....
yoksa başka bir bileşenden mi kullanacağım....
TApro yu hiç kullanmadım ama genelde serial componentler aynıdır diye dusunuyorum
ben projelerimde ComPort Library ver. 2.60 ı kullanıyorum
bunda da porttan bir seyi okumanın iki yolu var
ya olaylar ile yada portu surekli dinleyerek
mesela bufera bir bilgi geldiginde olay olusturuyor siz o olay yordamına gelen bilgiyi degerlendirecek kodu yazıyorsunuz
yada suruekli buferı kontrol ediyorsunuz
kendi projemde kullandıgım ReadData proceduru asagıda
ben projelerimde ComPort Library ver. 2.60 ı kullanıyorum
bunda da porttan bir seyi okumanın iki yolu var
ya olaylar ile yada portu surekli dinleyerek
mesela bufera bir bilgi geldiginde olay olusturuyor siz o olay yordamına gelen bilgiyi degerlendirecek kodu yazıyorsunuz
yada suruekli buferı kontrol ediyorsunuz
kendi projemde kullandıgım ReadData proceduru asagıda
Kod: Tümünü seç
function TfrmMain.ReadData: String;
var
t: DWord;
s: string;
begin
result := '';
t := GetTickCount;
repeat
Application.ProcessMessages;
//Delay(10);
Com.ReadStr(s, Com.InputCount);
result := result + s;
until (s<>'') or ((GetTickCount - t) > 1000);
end;
bende
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
begin
ComPort1.ReadStr(Str, Count);
edit1.Text:=str;
end;
komutu kullandım herhalde sorun burda veya bağlı olan sayaçla ilgili birşeyler yapmam gerekiyor mu?
sadece sayacın ustundeki artan metrajı edit.text de görüntülemek istiyorum
bir buffer kodumu yazmam gerekiyor
kolay gelsin
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
begin
ComPort1.ReadStr(Str, Count);
edit1.Text:=str;
end;
komutu kullandım herhalde sorun burda veya bağlı olan sayaçla ilgili birşeyler yapmam gerekiyor mu?
sadece sayacın ustundeki artan metrajı edit.text de görüntülemek istiyorum
bir buffer kodumu yazmam gerekiyor
kolay gelsin
Teşekkürler arkadaşlar
öncedeki problemim portu açtığımda hiçbir bilgi görememem di,
yani edit1.text e hiçbir bilgiyi getirmiyordu..
ComPort.ShowSetupDialog;
komutunu kuladığımda gördüm ki, bilgisayarda ki com1 ' in özelliklerini kendi alıyor
ve benim verdiğim baundrate gibi özellikleri değişikti
meselela benim programımda 9600 iken , bilgisayarın degeri 1200 müş..
ama şimdide
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
i: integer;
begin
ComPort.Read(Str, Count);
Memo.Text :=Memo.Text + inttostr(i);
end;
kodunu yazdığımda ,sayaç üzerindeki değer 96,45 iken
memo.text 'te devamlı 86 değeri geliyor ..
sayaçın üzerindeki değeri tam olarak nasıl alırım
kolay gelsin
öncedeki problemim portu açtığımda hiçbir bilgi görememem di,
yani edit1.text e hiçbir bilgiyi getirmiyordu..
ComPort.ShowSetupDialog;
komutunu kuladığımda gördüm ki, bilgisayarda ki com1 ' in özelliklerini kendi alıyor
ve benim verdiğim baundrate gibi özellikleri değişikti
meselela benim programımda 9600 iken , bilgisayarın degeri 1200 müş..
ama şimdide
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
i: integer;
begin
ComPort.Read(Str, Count);
Memo.Text :=Memo.Text + inttostr(i);
end;
kodunu yazdığımda ,sayaç üzerindeki değer 96,45 iken
memo.text 'te devamlı 86 değeri geliyor ..
sayaçın üzerindeki değeri tam olarak nasıl alırım
kolay gelsin