मैंने .NET SerialPort क्लास का उपयोग करके धारावाहिक बंदरगाहों से डेटा को पढ़ने के तरीके के बारे में बहुत सारे प्रश्न पढ़े हैं लेकिन कोई भी सिफारिश किए गए दृष्टिकोण मेरे लिए पूरी तरह से सक्षम साबित हुए हैं।.NET ढांचे का उपयोग कर सीरियल पोर्ट को पढ़ने का सही तरीका क्या है?
SerialPort port = new SerialPort("COM1");
port.DataReceived += new SerialDataReceivedEventHandler(MyDataReceivedHandler);
और ईवेंट हैंडलर:
यहाँ कोड मैं अब के लिए उपयोग कर रहा हूँ है
void MyDataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
int count = port.BytesToRead;
byte[] ByteArray = new byte[count];
port.Read(ByteArray, 0, count);
}
लेकिन मैं अभी भी कुछ डेटा कभी कभी याद आ रही है। मैंने इवेंट हैंडलर में डेटा पढ़ने के अलग-अलग तरीके की कोशिश की है लेकिन बिना किसी किस्मत के।
चूंकि .NET 4.5 कुछ एसिंक्रोनस कार्यों को करने के लिए नई संभावनाएं लाता है, जैसे ReadAsync विधि जो सीरियलपोर्ट स्ट्रीम पर उपयोग करने योग्य प्रतीत होता है, मुझे यह देखने के लिए उत्सुकता है कि उन मामलों को संभालने के लिए अनुशंसित दृष्टिकोण क्या होगा।
आपका प्रश्न वास्तव में अस्पष्ट है। "मुझे अभी भी कुछ डेटा याद आ रहा है" यह आपके मैकेनिक को कहने जैसा है "मेरी कार कभी-कभी एक मजेदार शोर बनाती है" और पूछती है कि इसे ठीक करने के लिए कितना खर्च आएगा। शायद [यह उत्तर] (http://stackoverflow.com/a/2966357/62576) किसी संबंधित प्रश्न में मदद कर सकता है। हालांकि, मुझे लगता है कि यदि आप सहायता चाहते हैं तो आपको बहुत अधिक विशिष्ट होने की आवश्यकता है; जैसा कि है, इस विषय पर अन्य प्रश्नों को देखकर बहुत कुछ नहीं दिया जा सकता है। –
आप सही हैं, मैं एक वास्तविक उदाहरण प्रस्तुत करूँगा ताकि बेहतर हो सके कि क्या हो रहा है ... –
आरएस 232 या 485 पर एक सीरियल संचार प्रोटोकॉल को कार्यान्वित करना वास्तव में एक कठिन काम है। इसके लिए बहुत सारे अनुभव की आवश्यकता है। मैं अच्छे पुराने डॉस दिनों से इसे कार्यान्वित कर रहा हूं और अभी भी कुछ आम नुकसान में फंस गया हूं। धारावाहिक संचार से निपटने के लिए आप एक विश्वसनीय तृतीय-पक्ष की पेशकश क्यों नहीं ढूंढते? वे संभवत: आपके द्वारा गिरने वाली कई सारी, कई, कई बगों को लोहे से निकाल देंगे :-) यदि यह एक अभ्यास है, तो आगे बढ़ें, यह अंततः मास्टर धारावाहिक संचार के लिए बड़ी संतुष्टि प्रदान करता है! :-) – Loudenvier