2010-03-26 4 views
6

से गलत सीरियल-पोर्ट नाम प्राप्त करना सिस्टम से सभी उपलब्ध सीरियलपोर्ट प्राप्त करने के लिए मैं निम्न आदेश का उपयोग करता हूं।ब्लूटूथडेविस (सी #)

SerialPort.GetPortNames 

यह mainboard सीरियल पोर्ट के लिए ठीक काम करता है, लेकिन ब्लूटूथ डिवाइस के साथ मैं गलत portnames मिलता है।

उदाहरण के लिए: COM7 के बजाय मुझे कभी-कभी COM70 या COM7ö मिलता है। यह हमेशा के लिए 1 अक्षर है।

कोई सुझाव देता है?

पुनश्च: मैं Windows में नवीनतम विजुअल स्टूडियो एक्सप्रेस उपयोग कर रहा हूँ 7 पी पी एस: गंदे हैक अंतिम अक्षर कटौती करने के लिए काम नहीं किया क्योंकि मैं जो एक (ब्लूटूथ सीरियल पोर्ट है विभिन्न bluetoothstick या डिवाइस के साथ पता नहीं है यह कॉम्पोर्ट की संख्या में परिवर्तन करता है) और विभिन्न छड़ों की कोशिश करने के बाद मैं COM10, ergo COM100 या COM10f

संपादित करें: कोड जो मैं अभी उपयोग कर रहा हूं। regestry पढ़ना, लेकिन अभी भी एक ही समस्या है।

RegistryKey myRegistry = Registry.LocalMachine.OpenSubKey("Hardware\\DeviceMap\\SerialComm"); 
foreach (string valuename in myRegistry.GetValueNames()) 
{ 
    if (myRegistry.GetValue(valuename) is String) 
    { 
     if (valuename.Contains("BthModem")) 
     { 
      richTextBox1.AppendText(">" + myRegistry.GetValue(valuename) + "<" + Environment.NewLine); 
     } 
    } 
} 

आम तौर पर दूसरे या तीसरे अनुरोध < COM11 < COM10 < COM11 < COM10 <

COM11ᯋ < COM10S की तरह एक परिणाम के साथ काम कर रहा है ओउ क्या हो सकता है?

उत्तर

0

आप ब्लूटूथ डिवाइस और यूएसबी-टू-सीरियल डिवाइस द्वारा जोड़े गए सीरियल पोर्ट्स के लिए सिस्टम से पूछने के लिए डब्लूएमआई का उपयोग कर सकते हैं। शायद इस तरह आप इस मुद्दे का सामना नहीं करेंगे। CodeProject पर देखें।

+0

मेरे devenvironment पर काम नहीं किया। सिस्टम। प्रबंधन नहीं मिला। शायद यह एक्सप्रेस संस्करण का हिस्सा नहीं है ?? – wurlog

2

यह गैर-शून्य तार समाप्त साथ reported as a bug कर दिया गया है:

आप मैन्युअल रूप से रजिस्ट्री चलना कर सकते हैं?

HKLM\Hardware\DeviceMap\SerialComm 
+0

मुझे रजिस्ट्री से मूल्य मिलते हैं, लेकिन यहां तक ​​कि केवल ब्लूटूथ के माध्यम से जुड़े कॉम्पोर्ट पर रजिस्ट्री 2 कंपोजिट दिखा रही है। क्या आपको कोई विचार है कि ऐसा क्यों हो रहा है? – wurlog

+0

अभी भी एक ही समस्या है :(लेकिन आम तौर पर तीसरी कोशिश सही है। यह कैसे हो सकता है? – wurlog

0

मेरे पास एक ही समस्या है। SerialPort.GetPortNames मूल रूप से रजिस्ट्री का उपयोग करता है- उन दोनों विधियों में ब्लूटूथ के साथ काम नहीं लगता है।

मैं जिस कामकाज का उपयोग कर रहा हूं वह पहले एक्स कॉम बंदरगाहों के माध्यम से लूप करना है और देखें कि वे मौजूद हैं, जो शायद ही सुरुचिपूर्ण है। एमएस: असफल।