(09-02-2020, Saat: 21:22)41linea41 Adlı Kullanıcıdan Alıntı: (07-02-2020, Saat: 12:59)adelphiforumz Adlı Kullanıcıdan Alıntı: Daha yeni buna benzer konular konuşuldu forumda biraz aratın ayrıca farklı componetlerle bu işler belki daha kolay yapılabilir
http://www.delphican.com/showthread.php?...t=AsyncPro
araştırın çözüm bulamazsanız yine yardımcı olmaya çalışırız
(09-02-2020, Saat: 12:57)guverdik Adlı Kullanıcıdan Alıntı: @adelphiforumz dediği gibi farklı bileşenlerle daha kolay ve hızlı ilerlersiniz. NRCOMM önceden oldukça fazla test ettim. Bazı bileşenleri güzel ama ben fazla randıman alamadım (sanayi de de test ettim). TurboPower ve/veya TComPort bileşenleri oldukça sağlam çalışıyor. Her ikisininde çalışma mantığı aynı ve direk arka planlarda Windows API leri ile Aygıt Yöneticisinden besleniyorlar.
ComDataPacket bileşenini görevi sadece sadece sizin şartlarınıza göre (BOYUT, İLK, SON karakter şartları gibi) veri filtreleme ve/veya yakalama işlemleri gerçekleşiyor ve Label1.Caption := Str; diye basit bir kodlama ile ALIP işleyebilirsin. Bununla birlikte BU FORUMDA ilerleyen konularda görseli bol örnekler yazacağım inşaallah.
Cevaplarınız için teşekkür ederim. Komponent konusundaki uyarınızı dikkate alıp turbo power componentlerini deneyeceğim.
Benim esas yardıma ihtiyaç duyduğum nokta, Veriyi comdan gönderdikten sonra cevap bekleyip ardından sırasıyla diğer komutu göndermem gerekiyor. Cevap süresi 2 sn ile 45 sn arası bir süre.
Bu süre içinde sürekli cihazdan gelen cevabı kontrol etmemm gerekiyor. Beklaediğim cevap gelir gelmez tekraar yeni bir komut göndermeliyim. Bu bekleme kontrol işlemini Timer ile mi yapmlaıyım yada başka bir yöntem.
While döngüsü içine sürekli veri gelip gelmediğini 250 ms bir kontrol etmekte mantıklı geldi. Timer gibi olacak.
Burda tecrübelerinizden faydalanmak isterim. Cihaz komutla gönderilen iş bittikten sonra "end" cevabını göndriyor.
Cevabı sürekli olarak kontrol edip hemen ardından diğer komutu göndermeliyim.
Timer ile yaparsan pek işin içinden çıkamazsın.
Anladığım kadarı ile cihaza bir komut gönderiyorsun;
ComPort1.WriteStr('D' + #13#10);
bunun sonucu olarak ta oradan
end diye bir cevap bekliyorsun.
TComDataPacket (TComPort bileşenini kurduğunu varsayıyorum) bileşeninin StartString property' sine end yazılır ve size kısmına 3 (byte-karakter) yazılırsa, her 20 ms de bu cevabı sürekli kontrol eder, sanki TIMER varmış gibi. TComDataPacket bileşenini OnPacket olayına;
public // altında
BILGI: String;
if Str = 'end' then
begin
BILGI := 'end';// Gelen bilgi yakalanır..
ComPort1.WriteStr('LED YAK' + #13#10); //Bilgi yakalanmış sa LED YAK bilgisini cihaza gönder..
end;
Daha detaylı örnek proje ile cevap yazmak isterdim ama, GÖMÜLÜ SİSTEM forumunda belli bir MÜFREDATA göre hareket ediyorum. Öncelikle görsel programlama ortamındaki bileşenlerin kullanımlarını, arkasından SERİ PORT (USB) uygulamalarını vermeye çalışacağım.