.net - पैकेट भेजने/एक को कैसे संभालना है



vb.net xbee (1)

कार्य कक्षा का उपयोग करें

Imports System.Threading
Imports System.Threading.Tasks

...
Dim buffer As StringBuilder;
Sub processPackets() ' this runs as its own thread
    ' Wait for packet
    ' put here command/loop that waits packet

    buffer.Append(packet);
    'remove data from serial buffer and format in to packet
    'if IO response generated remotely, not requested put in IOQueue
    If buffer.ToString() = "REMOTELY" Then
        ' Put IOQueuo
        buffer.Clear()
    Else
        'Otherwise put in CMDQueue (response generate from request, ie cmd response or packet Ack
        ' Put in CMDQueue 
        buffer.Clear()
    End If
End Sub

...

' Create and execute the Task that will process the packets
 Dim t = Task.Factory.StartNew(Sub() processPackets())

http://www.dotnetcurry.com/ShowArticle.aspx?ID=491

मैं Xbee एपीआई के माध्यम से एक्सबी मॉड्यूल के साथ संवाद करने के लिए एक आवेदन का निर्माण कर रहा हूं।

वर्तमान में मेरे पास कुछ काम है, लेकिन इसकी काफी सरल है और इसमें काफी कुछ सीमाएं हैं

Sub processPackets() ' this runs as its own thread
'remove data from serial buffer and format in to packet
'if IO response generated remotely, not requested put in IOQueue
'Otherwise put in CMDQueue (response generate from request, ie cmd response or packet Ack
End Sub

फिर एक विशिष्ट कमांड अनुरोध के एक उदाहरण के रूप में सीरियल पोर्ट लूप (टाइमआउट के साथ) को डेटा भेजें पैकेट के लिए CMDQueue की जांच, dequeue और जांचें कि क्या यह अन्यथा समयबाह्य नहीं है

अब इस पद्धति के साथ संभावित मुद्दों पर यह बहुत स्पष्ट है। विशेष रूप से, चूंकि एक्सबी मॉड्यूल सो सकते हैं, इसलिए आपको एएके के लिए काफी लंबा इंतजार करना पड़ सकता है। इसके अलावा यह ऑर्डर आदि पर निर्भर है।

मैं एक गैर अवरुद्ध दृष्टिकोण लेना चाहूंगा इस मामले में, ज्यादातर मामलों में एईके / प्रतिक्रिया पैकेट पर कार्रवाई करने के लिए मुझे मूल पैकेट को जानने की जरूरत है जो इसे जवाब में भेजा गया था।

मैं कुछ धागे बनाने की सोच रहा हूँ। SendPacket पैकेट भेजता है, भेजे गए पैकेट को लोड करता है, भेजा गया समय, और टाइमआउट मेमोरी में, कॉलबैक फ़ंक्शन भी शामिल होता है? (सरणी?) पैकेटप्रक्र पैकेट को पार्स करेगा, प्रतिक्रिया के लिए इंतजार कर रहे पैकेट की सरणी जांचें और कॉलबैक फ़ंक्शन को कॉल करें। यह किसी भी प्रतीक्षा पैकेट की जांच करेगा जो टाइम-आउट संकेत करने के लिए कॉलबैक का समय समाप्त हो गया है?

अंततः मैं कई उपकरणों पर पैकेट भेजने की क्षमता (किसी भी क्रम में प्रतिक्रिया दे सकता है) देख रहा हूं और उन प्रतिक्रियाओं पर कार्य करता हूं या समय समाप्ति पर कार्य करता हूं।

मैं विशेष रूप से .NET से परिचित नहीं हूं, इस दृष्टिकोण पर कोई टिप्पणी कर सकता है या किसी बेहतर पैटर्न की सिफारिश कर सकता है? किसी भी नेट विधियों में मुझे देखना चाहिए?





xbee