PC'ye USB seri donusturucu takildiginda Com Numarasini ogrenmek

Mikro Step

Kıdemli Üye
Katılım
25 Eylül 2022
Mesajlar
3,463
PC'ye USB com donusturucu taktigimizda Device managerde com port menusunde iken cihazimizi gorebiliyor ve com numarasini ogrenebiliyoruz.

Fakat PC'ye takilan yeni usb/seri donusturucuye atanan com numarasini bu sekilde degil de yazdigim program tarafindan otomatik ogrensilsin istiyorum.

PC icin seri portu kullanan program gelistirirken com port open gibi bir komut isletebilmek icin com no bilgisine sahip olmak gerekiyor.

Bu bilgiyi programin kendisine buldurmak istiyorum.

Elimde USB/Serial donusturucuye ait tum descriptorler var.

PC ye benim usb cihazim baglandiginda bu cihaza atanmis com port numarasini nasil ogrenirim?
 
Son düzenleme:
PC'ye USB com donusturucu taktigimizda Device managerde com port menusunde iken cihazimizi gorebiliyoruz ve com numarasini ogrenebiliyoruz.

Fakat PC'ye takilan yeni usb/seri donusturucuye atanan com numarasini bu sekilde degil de yazdigim program tarafindan otomatik ogrensilsin istiyorum.

PC icin seri portu kullanan program gelistirirken com port open gibi bir komut isletebilmek icin com no bilgisine sahip olmak gerekiyor.

Bu bilgiyi programin kendisine buldurmak istiyorum.

Elimde USB/Serial donusturucuye ait tum descriptorler var.

PC ye benim usb cihazim baglandiginda bu cihaza atanmis com port numarasini nasil ogrenirim?
C#'da serial-port eklentisi otomatik tespit ediyordu diye hatırlıyorum.
ama 1'den fazla com alan cihaz varsa o zaman ancak her portu dinleyip sabit veri okumak gerekiyor.
 
Seri portla ilgili program gelistirirken herhangi bir eklenti kullanmiyorum. Dogrudan API leri kullanarak kod yaziyorum.

En azindan PC de kac tane com port var onu ogrenebilmem lazim ki sorgulama yaparak kendi cihazimi bulayim.
 
Seri portla ilgili program gelistirirken herhangi bir eklenti kullanmiyorum. Dogrudan API leri kullanarak kod yaziyorum.

En azindan PC de kac tane com port var onu ogrenebilmem lazim ki sorgulama yaparak kendi cihazimi bulayim.
ben 15 tane var sanıyordum benim bilgisayarda.

geçen bir usb cihaz yaparken com 47 aldı şaşırdım defalarca çektim taktım yine de 47 alıyordu.
 
256 tane olabilir.

Galiba Registry okumaktan baska cozum yok.
 
Son düzenleme:
Program icinde Registry dosyasini acip

HKEY_LOCAL_MACHINE >> HARDWARE >> DEVICEMAP >> SERIALCOMM acilirsa
Makinede kac tane com port var sayilabiliyor ve bunlarin com numaralari ogrenilebiliyor.

Bu cozum, benim usb cihazima atanan com numarasini nokta atisi ogrenmeme izi vermese de en azindan sorgulanmasi gereken com port sayisini belirliyor.
 
O işin Windows'daki usulü Plug and Play Manager'i kullanmak. Hem mevcut donanımı sorgulayabiliyorsun hem de cihaz takılıp çıkarılınca bildirim alıyorsun.
 
Kendi yazdigim uygulama programi ile Plug and Play manager'i nasil baglarim?

Yada yontemi nedir?
 
Plug and Play Manager API diye aratabilirsin. Kapsamlı bir API. Ben C++ dilinde kullanmıştım ama diğer dillere (C# vs) de binding vardır
 
Şu sayfadan başlanabilir:

 
Visual Studio ile C# yazarken getportnames diyerek aktif com port listesini alabiliyorduk. Bu listeyi combobox'a ekleyip kullanıcıya ilgili listeden seçin yaptırmak mümkün.

direkt cihazı seçmek doğru olanı.
cp2102 çeviriciler bende hep com13 alır ama aynı marka farklı model bir makinada com7 alıyor devamlı neye göre alıyorlar onuda bilmiyorum
 
Merhaba,
Projelerimde VB.Net 2010 express edition kullanmaktayım. Aynı sorunu uzun süre yaşadım. Şimdilerde ise aşağıdaki kodlarla bu işi hallettim. Fakat USB çeviricideki driver PC nizde yüklü olması lazım. Ben FT232RL kullanmaktayım. win10da da driver hazır geliyor galiba ben hangi FT232 yi takıyorsam yukarıdaki program ile COMBO box ta görünüyor.


Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
ComboBox1.Items.Clear()


Dim port As String
Try
For Each port In System.IO.Ports.SerialPort.GetPortNames()
ComboBox1.Items.Add(port)
Next
Catch ex As System.Exception
End Try

Dim rakkam As String = "port"
If rakkam = ComboBox1.Text Then
SerialPort1.PortName = ComboBox1.Text
SerialPort1.Open()
End If

End Sub
-------------------------------------------------------------------------------
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Label49.Text = " "

SerialPort1.PortName = ComboBox1.Text
SerialPort1.Open()
End Sub
---------------------------------------------------------------------------------------------------------
 
Java, C# vb hemen her dilde protların listesini almak kolay. "COM port enumeration" diye ararsanız örneklerini görebilirsiniz. Bir fonksiyondan port listesini alabilirsiniz.

Ancak anladığım kadarıyla sizin probleminiz tam olarak bu değil. Birden fazla port varken doru portu programınıza (kullanıcıya değil) seçtirebilmek istiyorsunuz.

Bildiğim kadarıyla Java Communications API'de bunun direk çözümü yok. Java ve C++ kullanılarak geliştirilmiş, JSSC diye bir kütüphane var. JNI (Java Native Interface) kullanarak C++ ile yazılmış kütüphaneye erişip (ürün id, üretici, serino vb) bilgileri çekebilmeizi sağlıyor (SerialPortList.getPortProperties() fonksiyonu ile). Farklı işletim sistemlerini de destekliyor. Ancak Windows için getPortProperties fonksiyonu henüz eklenmemiş. Diğer işletim sisemleri için destekleniyor.



 

Çevrimiçi personel

Forum istatistikleri

Konular
5,663
Mesajlar
97,420
Üyeler
2,440
Son üye
turankaya

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top