Com Port Bağlantısı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Com Port Bağlantısı

Mesaj gönderen m_ekici »

Merhaba

Mini Terminal isminde bir örnekte TComTerminal isminde bir component var. TComTerminal her zaman doğru ve hızlı bilgi alıyor, TComport (http://comport.sf.net/) ve ComDataPacket componenti ile birlikte çalışıyor. Problemim ; bu componentin eski (üzerinde seri port olan) bilgisayarlarda düzgün çalışması, ana karta sonradan seri port taktığımız bilgisayarlarda problem çıkarması. (Nadiren 1-2 bilgisayarda problemsiz çalıştı). Ama problem gelen bilginin okunması veya componentle ilgili işlemler sırasında değil de bilgiyi aldıktan ve işlemler bittikten sonra formu kapatırken tüm programı kilitlemesi. Formu açıyorum bilgileri dolduruyorum, seri porttan K.G. bilgisini alıyorum. işlemi kaydederek formu kapattığımda program kilitleniyor ve yanıt vermiyor durumuna düşüyor. Böyle bir durumla karşılaşan oldu mu? Neden kilitleniyor olabilir?
İyi çalışmalar
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: Com Port Bağlantısı

Mesaj gönderen ertank »

Merhaba,

Verdiğiniz linki incelediğimde kullandığınız component için 2011 yılından sonra güncelleme yapılmamış. Ayrıca direk verdiğiniz link ile gelen sayfada size önermeyi düşündüğüm en son 2 sene önce güncelleme almış TurboPack AyncPro componentı bağlantı linki verilerek üstü kapalı tavsiye edilmiş.

Mümkünse küçük bir uygulama geliştirerek test edebilirsiniz. Test uygulaması mümkün değil ise eğer ve çok ciddi derecede uğraştırmayacak ise tavsiyem component değiştirmeniz yönünde. Ana mantıkları özünde aynı oluyor.

Sorunuza gelirsek,
-Sorun component kaynaklı olabilir.
-İşletim sistemi kaynaklı olabilir.
-Hep aynı seri port kartını kullanıyor iseniz bu kart kaynaklı da olabilir.

Kısacası olasılıklar maalesef gerçekten fazla.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Com Port Bağlantısı

Mesaj gönderen adelphiforumz »

Formu kapatmadan önce portun kapandığından emin olun.
buna benzer bir sorunu eskiden bazı componentler yapıyordu.
port açıkken form kapanırsa windows tarafı saçmalıyordu.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
boreas
Üye
Mesajlar: 120
Kayıt: 05 Tem 2007 12:39
Konum: Ankara

Re: Com Port Bağlantısı

Mesaj gönderen boreas »

Öncelikle o bileşen sıkıntılı. USB-Seri portların kimini görüyor kimini görmüyor. Saçma sapan bir bileşen. Ben http://synapse.ararat.cz/doku.php/download kullanıyorum. Kullanımı basit. ve harika bir bileşen seri portla çok işim olduğu için şiddetle öneririm.
....
alidirik
Üye
Mesajlar: 16
Kayıt: 04 Eyl 2010 11:15

Re: Com Port Bağlantısı

Mesaj gönderen alidirik »

Merhabalar,

Mainboard üzerinde entegre gelmeyen RS-232C portlar ilgili üretici firma tarafından geliştirilen 3.parti driver lar ile kullanılmaktadır. Bu 3.parti yazılımların doğru çalışmaması da bu tarz problemlere neden olabiliyor. Component olarak TpaPro kullanıyorum. Bu tarz problemleri bende yaşadım. Şu an Digitisus marka (Alman Markası) USB-Seri Çeviricileri sağlıklı bir şekilde kullanıyorum.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Com Port Bağlantısı

Mesaj gönderen m_ekici »

Cevaplar için teşekkürler
http://synapse.ararat.cz/doku.php/download adresindekini deneyelim bakalım.
dicle_gsm
Üye
Mesajlar: 19
Kayıt: 26 Oca 2016 06:52
Konum: Mardin
İletişim:

Re: Com Port Bağlantısı

Mesaj gönderen dicle_gsm »

Merhaba, Synaser kütüphanesi ile kulalndığım port açma, listeleme, ve bağlantısını burda görebilirsiniz.

Kod: Tümünü seç

uses
synaser;

var
  benimport: TBlockSerial ;
//--------------------------------------------------------------------------------  
// Port Kapatma

 Function TForm1.portkapat: Boolean;
begin
  benimport.Purge;
  benimport.free;
  Memo1.Lines.Add(' ');
  Memo1.Lines.Add('Port Kapatıldı !!');
end; 
//--------------------------------------------------------------------------------
// Port Açma

Function TForm1.portac(PortNum : string ; Baudrate: integer): Boolean;
begin
  Result := false;
  benimport := TBlockSerial.Create;
  benimport.RaiseExcept := false;
  benimport.Connect(PortNum);

  if benimport.InstanceActive then
  begin
    Memo1.Lines.Add('Port [' + PortNum + '@' + intTostr(Baudrate) + ']  : Açıldı' );
    benimport.config(Baudrate, 8, 'N', 0, false, true);
    Result := true;
  end
  else
  begin
    Memo1.Lines.Add('Hata: Com Noktasını Kontrol Edin...' );
    benimport.free;
  end;

end;

//--------------------------------------------------------------------------------
// Aktif Portları Listele  

procedure TForm1.Button1Click(Sender: TObject);
var
Reg    : TRegistry;
Values : TStringList;
I      : Integer;
Str    : string;
begin
Memo1.Clear;
Reg:=TRegistry.Create;
try
    Values:=TStringList.Create;
    try
      Reg.RootKey:=HKEY_LOCAL_MACHINE; // Registry'deki root 
      if not Reg.OpenKey('HARDWARE\DEVICEMAP\SERIALCOMM',False) then
        ShowMessage('Hata : Registry değeri tanınmadı veya açılmadı'')
      else
        begin
        Reg.GetValueNames(Values);
        for I:= 0 to Values.Count-1 do
         begin
           Str:=Reg.ReadString(Values.Strings[I]);
           ComboBox1.Items.Add(Str);
         end;
        end;
        
    finally
    Values.free;
    end;
  finally
    Reg.Free;
end;
end;


//--------------------------------------------------------------------------------
// String Veya buffer yollama 

if OpenSerialPort(ComboBox1.text,115200) = true then
begin
 Memo1.Lines.Add('Seçilen Port : '+ComboBox1.Text);

benimport .DeadlockTimeout := 15000;
  benimport .SendBuffer(@veri);
  veya
  benimport.sendstring('AT');
end;
 portkapat;
end;

//--------------------------------------------------------------------------------


Cevapla