यहां कोड है जो एक सीरियल पोर्ट से डेटा पढ़ता है। चीजों को सरल रखने के लिए, इसे बटन क्लिक पर करने दें; जब तक अपने लैपटॉप निष्क्रिय हो जाती हैसीरियल पोर्ट संचार त्रुटि, "अनुरोधित संसाधन उपयोग में है।"
private System.IO.Ports.SerialPort serialPort;
private void button1_Click(object sender, EventArgs e)
{
if (serialPort == null)
serialPort = new SerialPort("COM7", 4800, Parity.None, 8, StopBits.One);
//COM7 is hard coded just for the sake of example
if (!serialPort.IsOpen)
serialPort.Open();
textBox1.AppendText(serialPort.ReadExisting());
}
कोड बिल्कुल ठीक चलाता है। जब सिस्टम नींद से उठता है, serialPort
ऑब्जेक्ट null
नहीं है लेकिन serialPort.IsOpen
false
देता है और मुझे त्रुटि मिलती है, "अनुरोधित संसाधन उपयोग में है।" serialPort.Open()
पर कॉल करते समय। आंतरिक अपवाद में कुछ भी नहीं है।
मैं serialPort
वस्तु, बंद करने निपटान या स्पष्ट रूप से यह शून्य पर बताए और आवश्कता है की तरह साथ बहुत सी बातें की कोशिश की है, लेकिन यह किसी काम का नहीं, एक ही लाइन पर एक ही त्रुटि हर बार की है।
if (!serialPort.IsOpen)
{
try
{
serialPort.Open();
}
catch
{
serialPort.Close();
serialPort.Dispose();
serialPort = null;
serialPort = new SerialPort("COM7", 4800, Parity.None, 8, StopBits.One);
serialPort.Open();
}
}
मैं भी serialPort.DataReceived
घटना की कोशिश की है लेकिन गतिविधि सक्रिय नहीं है एक बार प्रणाली उठा-अप नींद से।
एकमात्र कामकाज एप्लिकेशन को रोकने और इसे फिर से चलाने के लिए है। अगर कोई मुझे सभ्य तरीके से हल करने के लिए कोई सुराग देता है तो मैं वास्तव में सराहना करता हूं।
ठीक है जब आप सोने जा रहे हैं और फिर से शुरू करने के लिए फिर से खोलने का प्रयास कर सकते हैं तो आप कनेक्शन बंद करने का प्रयास कर सकते हैं। – Reniuz
क्या आप वास्तविक धारावाहिक बंदरगाह या किसी प्रकार के पोर्ट इम्यूलेशन का उपयोग करते हैं? असली सीरियल पोर्ट पर इस कार्यक्रम को आजमाएं। –
@AlexFarber यह एक वास्तविक सीरियल पोर्ट है, एक जीपीएस डिवाइस इससे जुड़ा हुआ है। – ABH