QuickBasic संचार पोर्ट सामान्य समस्याओं को हल करने के लिए कैसे

रिटायर्ड KB सामग्री अस्वीकरण

यह आलेख उन उत्पादों के बारे में लिखा गया था जिनके लिए अब Microsoft समर्थन प्रदान नहीं करता है . इसलिए, यह आलेख "जैसा है" वैसा ही ऑफ़र किया गया है और अब इसका अद्यतन नहीं किया जाएगा.

सारांश

यह आलेख Microsoft QuickBasic संस्करण 4.0, 4.0b और 4.5, Microsoft मूल कंपाइलर संस्करण 6.0 और MS-DOS और MS OS/2 के लिए 6.0b में, और में Microsoft मूल प्रोफेशनल डेवलपमेंट सिस्टम (PDS) संस्करण 7.0 और 7.1 में सीरियल संचार का उपयोग करने के लिए समस्या निवारण सलाह इसकी रूपरेखा देती है।


यह आलेख ठीक से काम करना चाहिए एक नमूना COM खोलें कथन प्रदान करता है। अतिरिक्त संचार संकेतों निवारण भी दिए जाते हैं। संबंधित आलेख के लिए, निम्न आलेख को Microsoft ज्ञानकोश में देखें:
39386 COM1 उपयोग करते समय त्रुटि संदेश स्पष्टीकरण: और को COM2:

अधिक जानकारी

यदि आप का उपयोग कर समस्या है "COM1:" या "को COM2:", जो मूल हार्डवेयर-संबंधी समस्याओं के संभावित के रूप में के रूप में सहिष्णु बनाता है निम्न खोलें कथन, प्रयास करें:
खुली "COM1:300, एन, 8, 1, बिन, CD0, CS0, DS0, OP0, RS, TB2048, RB2048" के रूप में #1
(इस खोलने के लिए रैंडम पहुँच है.) यह खोलें कथन में उपयोग किया गया प्रत्येक अनुशंसित पैरामीटर का एक स्पष्टीकरण निम्न है:


  1. उच्च बॉड दर, समस्याओं के लिए बड़ी संभावना; इसलिए, 300 बॉड समस्याओं प्रदान करने के लिए संभावना नहीं होती है। 2400 बॉड पर अधिकांश टेलीफोन लाइनें, उच्च-आवृत्ति अपनी सीमित क्षमता के कारण उच्चतम गति संभव है। 19,200 सीधे तार से कनेक्शन की आवश्यकता होती है, जिसका प्रसारण, समस्याएँ उत्पन्न करने के लिए सबसे अधिक संभावना है। (QuickBasic के लिए संभावित बॉड दर हैं 75, 110, 150, 300, 600, 1200, 1800, 2400, 4800, 9600 और 19,200.)
  2. समानता आमतौर पर आपको काफी मदद करता है नहीं; इसके कारण, आपको कोई समानता (N) प्रयास करना चाहिए।


    समानता की आवश्यकता होती है उन डिवाइसों के लिए, खुला COM कथन जो पैरिटी जाँच चालू करने के लिए आवश्यक है, में आप PE विकल्प (सक्षम समानता) का उपयोग करना चाहिए। पैरिटी जाँच PE के लिए विकल्प देता है, जब दो विभिन्न parities दो communicating प्रोग्राम है, तो एक "डिवाइस i/o त्रुटि" होती है। (समानता हो सकता सम, विषम, कोई नहीं, स्थान, या चिह्न)। उदाहरण के लिए, दो प्रोग्राम निम्न दो भिन्न खुला COM कथनों का उपयोग करते हुए सीरियल लाइन पर एक-दूसरे से बात करने का प्रयास करते समय एक "डिवाइस i/o त्रुटि" होती है:
          OPEN "COM1:1200,O,7,2,PE" FOR RANDOM AS #1
    और
          OPEN "COM2:1200,E,7,2,PE" FOR RANDOM AS #2
    ऊपर खुला COM कथनों से PE के लिए विकल्प निकाल दिया गया है, तो कोई त्रुटि संदेश प्रदर्शित करता है।
  3. उपरोक्त उदाहरण का उपयोग करता है और 1 रोकें बिट डेटा 8 बिट्स। आठ डेटा बिट्स की आवश्यकता है कोई समानता (N), Basic का संचार डेटा फ़्रेम (10 बिट्स) के लिए आकार सीमा के कारण।
  4. बिन (बायनरी मोड) डिफ़ॉल्ट है। नोट: XON/XOFF प्रोटोकॉल आरोही के लिए विकल्प का समर्थन नहीं करता, और वर्ण XON और XOFF विशेष हैंडलिंग के बिना दे दिए जाते हैं।
  5. अक्सर handshaking हार्डवेयर पर ध्यान न कई समस्याओं सही करता है। Handshaking आपके अनुप्रयोग की आवश्यकता नहीं है, तो इसलिए, आपको निम्न हार्डवेयर रेखा-जाँच को बंद करने का प्रयास करना चाहिए:
    CD0 = डेटा वाहक पता लगाएँ (DCD) लाइन के लिए टाइम-आउट बंद करता है
    CS0 साफ़ करने के लिए भेजें (दर्शन प्रभावों) लाइन के लिए टाइम-आउट ऑफ़ करता है =
    DS0 डेटा सेट तैयार (DSR) लाइन के लिए टाइम-आउट ऑफ़ करता है =
    OP0 ऑफ टाइम-आउट के लिए एक सफल खोलें करता है =
  6. RS खोज का अनुरोध करने के लिए भेजें (RTS) को रोकता है।
  7. बफ़र से संबंधित समस्याओं के लिए transmit बढ़ाने का प्रयास करें और ऊपर 512-बाइट डिफ़ॉल्ट बफ़र आकार प्राप्त होता है:
    TB2048 = transmit बफ़र आकार को 2048 बाइट्स बढ़ाता है
    RB2048 = प्राप्त करें बफ़र आकार को 2048 बाइट्स बढ़ाता है
    आप मूल कारण जो intensively प्रोसेसर का उपयोग करें कथन द्वारा पेंट, जैसे विलंब के आस-पास काम बड़े प्राप्त करें बफ़र मदद कर सकते हैं।
संचार समस्याओं के निवारण के लिए अतिरिक्त महत्वपूर्ण संकेतों निम्न हैं:


  1. आप INPUT$(x) फ़ंक्शन LOC(n) फ़ंक्शन के साथ संयोजन में सभी इनपुट डिवाइस से संचार प्राप्त करने के लिए (जहाँ "x" पढ़ा जा करने के लिए प्रतीक्षारत इनपुट कतार में वर्णों की संख्या है LOC(n), द्वारा लौटाए गए वर्णों की संख्या है का उपयोग करना चाहिए "एन" है जो आप के लिए खोला फ़ाइल संख्या "COM1:" या "को COM2:")।


    क्योंकि किसी कैरिएज रिटर्न (ASCII 13) वर्ण के लिए इनपुट #n प्रतीक्षा से संचार पोर्ट इनपुट के लिए इनपुट #n कथन का उपयोग करने से बचें।


    क्योंकि #n प्राप्त करने के लिए बफ़र को भरने के लिए प्रतीक्षा करता है (और बफ़र ओवररन फिर से हो सकता है) के लिए संचार प्राप्त करें #n कथन का उपयोग से बचें।


    भी, #n रखें कथन के लिए संचार के उपयोग से बचें, और इसके बजाय मुद्रित #n कथन का उपयोग करें। उदाहरण के लिए, एक चर-लम्बाई स्ट्रिंग चर के लिए तीसरी तर्क रखें #n के रूप में भेजने के लिए सिंटैक्स का उपयोग करते हुए रखें #n,, x$ QuickBasic 4.0b और 4.5, मूल 6.0 कंपाइलर और 6.0b में, और मूल PDS 7.0 और 7.1, में कथन एक अतिरिक्त 2 वास्तविक स्ट्रिंग करने से पहले स्ट्रिंग लंबाई वाली बाइट भेजता है। संचार पोर्ट को भेजे गए ये 2 लंबाई बाइट्स प्राप्तकर्ता प्रोग्राम को भ्रमित हो सकता है तो उसे उन्हें संचालित करने के लिए डिज़ाइन नहीं है। कोई लंबाई बाइट्स रखें, #n के साथ भेजे जाते हैं x QuickBasic 4.0 में $। (QuickBasic संस्करण पहले 4.0 से रखें #n कथन के लिए तीसरी तर्क के रूप में एक चर का उपयोग करने के लिए सुविधा का प्रस्ताव नहीं है.)
  2. टर्मिनल करने के लिए डेटा संचार का एक उदाहरण के लिए, कृपया देखें। QuickBasic संस्करण 4.0, 4.0b और 4.5 के लिए, Microsoft मूल कंपाइलर संस्करण 6.0 और 6.0b के लिए, और के लिए Microsoft मूल प्रोफेशनल डेवलपमेंट सिस्टम (PDS) संस्करण 7.0 और 7.1 रिलीज़ डिस्क पर आता है जो BAS नमूना प्रोग्राम है। अनेक समस्या वास्तव में उपयुक्त स्रोत कोड डिज़ाइन और प्रवाह नियंत्रण के कारण हो सकता है।
  3. अनेक समस्या केवल कुछ हार्डवेयर कॉन्फ़िगरेशन पर दिखाए जा सकते हैं और समाधान या अन्य कंप्यूटर पर प्रतिलिपि करने के लिए कठिन होते हैं। हम अनुशंसा करते हैं कि किसी सीधे कनेक्शन (एक छोटा नल-मॉडेम केबल) के साथ के बजाय फ़ोन/मॉडेम पर किसी दिए गए कॉन्फ़िगरेशन समस्याओं को अलग करने के लिए प्रेषक और प्राप्तकर्ता के बीच लिंक के साथ साथ experimenting.
  4. Wiring योजना केबल के लिए विस्तृत रूप से भिन्न होती हैं। पिन wiring पर आपका केबल की जाँच करें। सीधे केबल कनेक्शन के लिए एक लंबा या उच्च-resistance केबल एक छोटे, कम-resistance केबल से समस्याओं को देने के लिए संभावना है।
  5. दोनों तो "COM1:" और "को COM2:" खुले, "को COM2:" पहले दी गई होगी। उच्च बॉड दर पर "COM1:" वर्ण खो सकता है जब प्रोसेसर समय के साथ प्रतिस्पर्धा "को COM2:"।
  6. चालू COM GOSUB कथन के बजाए पोलिंग LOC(n) फ़ंक्शन संचार का पता लगाएँ करने के लिए का उपयोग करते हुए इनपुट कभी-कभी समय, या बफ़रिंग Basic में विलंब के कारण समस्याओं के आस-पास काम कर सकते हैं। स्ट्रिंग स्थान कि गारबेज कलेक्शन, पेंट कथनों या अन्य कार्रवाई सघनता से प्रोसेसर का उपयोग कर Basic में विलंब के कारण हो कर सकते हैं।
  7. उपयुक्त हार्डवेयर handshaking रेखाएँ (जैसे CS, DS, सीडी, आदि) Basic द्वारा जाँच की जा रही हैं कि सुनिश्चित करें। (संगत मान शून्य करने के लिए मूल खोलें कथन में सेट कर रहा है) इन समयबाह्य अक्षम करना आपके हार्डवेयर का उपयोग करता है जो पंक्तियाँ निर्धारित करने के लिए उपयोगी है, यद्यपि यह एक सामान्य उद्देश्य विधि handshaking हार्डवेयर पर ध्यान न कोई हैंग करने के लिए लीड कर सका एक समय के तालमेल समस्या की संभावना बढ़ सकता है क्योंकि के लिए सीरियल संचार स्थापित नहीं समझना चाहिए।
कई वाणिज्यिक संचार प्रोग्राम उपयोग तकनीकों में Microsoft Basic नहीं मिला sophisticated और बेहतर प्रदर्शन प्रदान कर सकते हैं।


मूल के माध्यम से प्राप्त कर रहा है से संचार प्रदर्शन बेहतर की आवश्यकता है, तो आप Microsoft C. (आप Microsoft C रूटिन Microsoft QuickBasic 4.0, 4.0b, और 4.5, Microsoft मूल कंपाइलर 6.0 से और 6.0b से, और Microsoft साधारण प्रोफेशनल डेवलपमेंट सिस्टम (PDS) संस्करण 7.0 और 7.1 से कॉल कर सकते हैं.) का प्रयास कर सकते हैं एक उत्कृष्ट संदर्भ निम्न है:
"C प्रोग्रामर की मार्गदर्शिका क्रमिक संचार के लिए" जो Campbell, द्वारा Howard W. Sams & कंपनी द्वारा प्रकाशित।
QuickBasic 3.0, 4.0, 4.0b और 4.5 लागू संचार द्वारा IRQ3 और IRQ4 इनपुट रेखाओं पर 8259 नियंत्रक चिप (बजाय ROM BIOS interrupts इनवोक करने) करने के लिए सीधे interrupts.


निम्न पुस्तिका की IBM PC के लिए सीरियल संचार का एक उत्कृष्ट तकनीकी, हार्डवेयर-स्तर वर्णन प्रदान करता है:
"8088 assembler भाषा प्रोग्रामिंग: IBM PC" Howard W. Sams & Co. Willen & Krantz, द्वारा दूसरा संस्करण प्रकाशित किया (1983, 1984)। पृष्ठ 92-93, और अध्याय 7 (पृष्ठ 166 पर 188)।
गुण

आलेख ID: 39342 - पिछली समीक्षा: 18/01/2017 - संशोधन: 1

प्रतिक्रिया