2010-12-21 16 views
15

bağlı cihaz adını alın.Ben seri bağlantı noktasına bağlı malzemenin cihaz adını nasıl arama seri port

Üzerinde bağlanabilir malzemenin iki farklı türde var.

Birincisi: Bir yazıcı (sadece verileri alır ve hiçbir şey geri göndermek) İkinci biri: bir denge (sadece veri göndermek ve aldığı şey)

nasıl malzemenin bu iki tür ayırt edebilirsiniz?

Teşekkürler.

+0

Dengesi bazı olay diğer ucunda ortaya çıktığında bu, periyodik veri göndermez; ben bir endüstriyel projede olduğum) –

cevap

9

seri port (UART RS232) cihazlar tanımlamanın hiçbir univeral yolu yoktur.

cihazlar cihaza gönderebilir ve çok yapabileceğiniz orada değil o tanımlayıcı bilgiler ile cevap olabilir özel komutlar yoksa.

kullanıcı, iletişim hızı, eşlik biti gibi şeyler için seri aygıt bağlı olduğu bağlantı noktasını, bağlantı noktası yapılandırmasını yapılandırmak için kullanın bitleri ve veri bitlerini durduracağını standart ayar ekranını olacak seri port güvenmek

Tipik uygulama . Birden fazla cihaz aynı porttan açılabiliyorsa, operatör cihaz ile iletişim kurmadan önce hedef cihaz için doğru konfigürasyonu seçmekten sorumlu olacaktır.

Bu cihaz tanımlama standardı yerleşik USB vb gibi yeni teknolojilerin avantajdır.

+0

, böylece USB her yerde uygulanmadı ... :(Nasıl bu davayı idare edecek ? –

+0

@Arnaud: Kullanıcıya sorun (muhtemelen sadece bir kez ve cevabı hatırlayın) –

+0

@ArnaudF, RS-232 spesifikasyonunda bunun için standart olmadığından, en iyi ihtimalle seri portu ve umudu araştırmaktır. Cihazların tam olarak kullanabileceği bir tür tanımlama cevabına sahip olması şanslıysa, aygıtların iletişim kurmak ve cihazı sorgulamak için kullanabileceğiniz belgelenmiş bir komut diline sahip olabileceği ancak aygıtlara bağlı olarak bir çeşit sezgisel olacağı En tipik olarak, bu, kullanıcının, cihazları ve seriyi tanımlamaktan sorumlu olduğu bir uygulamanın ayarının bir parçası olarak ele alınır. l port konfigürasyonu (Baud Rate, Parite vb.) –

10

bu deneyin: bir hata mesajı böyledir nasıl

 ManagementObjectCollection ManObjReturn; 
     ManagementObjectSearcher ManObjSearch; 
     ManObjSearch = new ManagementObjectSearcher("Select * from Win32_SerialPort"); 
     ManObjReturn = ManObjSearch.Get(); 

     foreach (ManagementObject ManObj in ManObjReturn) 
     { 
      //int s = ManObj.Properties.Count; 
      //foreach (PropertyData d in ManObj.Properties) 
      //{ 
      // MessageBox.Show(d.Name); 
      //} 
      MessageBox.Show(ManObj["DeviceID"].ToString()); 
      MessageBox.Show(ManObj["PNPDeviceID"].ToString()); 
       MessageBox.Show(ManObj["Name"].ToString()); 
       MessageBox.Show(ManObj["Caption"].ToString()); 
       MessageBox.Show(ManObj["Description"].ToString()); 
       MessageBox.Show(ManObj["ProviderType"].ToString()); 
       MessageBox.Show(ManObj["Status"].ToString()); 

     } 
0
static void Main(string[] args) 
{ 
    ManagementObjectCollection ManObjReturn; 
    ManagementObjectSearcher ManObjSearch; 
    ManObjSearch = new ManagementObjectSearcher("Select * from **Win32_ParallelPort**"); 
    ManObjReturn = ManObjSearch.Get(); 

    foreach (ManagementObject ManObj in ManObjReturn) 
    { 
     //int s = ManObj.Properties.Count; 
     //foreach (PropertyData d in ManObj.Properties) 
     //{ 
     // MessageBox.Show(d.Name); 
     //} 
     Console.WriteLine(ManObj["DeviceID"].ToString()); 
     Console.WriteLine(ManObj["PNPDeviceID"].ToString()); 
     Console.WriteLine(ManObj["Name"].ToString()); 
     Console.WriteLine(ManObj["Caption"].ToString()); 
     Console.WriteLine(ManObj["Description"].ToString()); 
     Console.WriteLine(ManObj["ProviderType"].ToString()); 
     Console.WriteLine(ManObj["Status"].ToString()); 

    } 

} 

http://www.seeques.com/20766280/the-port-name-is-illegal-or-couldnt-be-connected-to-the-device.html

liman adı yasadışı ... fio.!

İlgili konular