2010-12-21 10 views
15

Ich suche, wie der Gerätename des an die serielle Schnittstelle angeschlossenen Materials abgerufen wird.Den Gerätenamen an die serielle Schnittstelle anschließen

Ich habe zwei verschiedene Arten von Material, die sich darauf verbinden können.

erster: ein Drucker (nur Daten empfängt und nichts zurückschicken) Zweiter ein: ein ausgewogenes Verhältnis (nur Daten senden und erhält nichts)

Wie kann ich unterscheide diese zwei Arten von Material?

Danke.

+0

Balance sendet nicht regelmäßig Daten, es ist nur, wenn ein Ereignis am anderen Ende auftritt;) –

Antwort

9

Es gibt keine universelle Möglichkeit, serielle (UART RS232) Geräte zu identifizieren.

Wenn die Geräte keine speziellen Befehle haben, die Sie an das Gerät senden können und sie mit identifizierenden Informationen reagieren lassen, können Sie nicht viel tun.

In der Regel werden Anwendungen, die auf dem seriellen Port basieren, über einen Standardeinstellungsbildschirm verfügen, mit dem der Benutzer den seriellen Port konfigurieren kann, für den Baudrate, Paritätsbits, Stoppbits und Datenbits konfiguriert werden . Wenn mehrere Geräte an denselben Port angeschlossen werden können, ist der Betreiber für die Auswahl der korrekten Konfiguration für das Zielgerät verantwortlich, bevor es mit dem Gerät kommuniziert.

Dies ist der Vorteil neuerer Technologien wie USB usw., bei denen die Geräteidentifikation in den Standard integriert ist.

+0

Ich bin in einem industriellen Projekt, so USB ist nicht überall implementiert ... :(Wie Sie diesen Fall verwalten ? –

+0

@Arnaud: Fragen Sie den Benutzer (wahrscheinlich nur einmal und erinnere mich an die Antwort). –

+0

@ArnaudF, da es nicht Standard für diese in der RS-232-Spezifikation gibt, das Beste, was Sie hoffen können, ist die serielle Schnittstelle zu prüfen und zu hoffen Die Geräte verfügen über eine identifizierbare Antwort, die Sie verwenden können.Wenn Sie Glück haben, verfügen die Geräte möglicherweise sogar über eine dokumentierte Befehlssprache, mit der Sie das Gerät kommunizieren und abfragen können, aber je nach Gerät wird dies eine Art Heuristik sein In der Regel wird dies als Teil der Einstellung einer Anwendung behandelt, bei der der Benutzer für die Identifizierung der Geräte und der Seria zuständig ist l Port-Konfiguration (Baudrate, Parität etc.) –

10

versuchen Sie dies:

 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

der Portname illegal ist, wie Nachricht wie, dass ein Fehler ist ... fio.!

Verwandte Themen