2008-10-14 16 views
9

मैं रोबोट ऑटोमेशन प्रोजेक्ट पर काम कर रहा हूं और मैंने रोड ब्लॉक में भाग लिया है। रोबोट को नियंत्रित करने के लिए, किसी को टेलनेट के माध्यम से वायरलेस से कनेक्ट करने की आवश्यकता होती है और टीसीपी/आईपी प्रोटोकॉल के माध्यम से कमांड भेजना पड़ता है। (उदा। 'एमएबीसी' कमांड बाएं व्हील की गति (ए), दाएं पहिया की गति (बी) और समय (सी) के आधार पर आगे बढ़ता है। मैं जो करने की कोशिश कर रहा हूं वह सी प्रोग्राम में कुछ गणना करता है और फिर गणना के मूल्य के आधार पर रोबोट को एक संदेश भेजता है।सी प्रोग्राम में टेलनेट का उपयोग

सी प्रोग्राम में टीसीपी/आईपी प्रोटोकॉल के माध्यम से आदेश कैसे भेज सकते हैं?

धन्यवाद!

एरिक

उत्तर

16

आप सॉकेट की तलाश में हैं। This is a comprehensive guide to socket programming in C. टेलनेट भी एक अच्छी तरह से परिभाषित प्रोटोकॉल है, हालांकि मुझे नहीं पता कि यह रोबोट टेलनेट का उपयोग करेगा या नहीं (यह प्रोटोकॉल के लिए अतिरिक्त प्रोसेसिंग ओवरहेड है जिसमें रोबोट कंट्रोल प्रोग्राम के लिए अधिक अतिरिक्त लाभ नहीं होगा)। टेलनेट RFC 854

+2

वे आम तौर पर पूर्ण टेलनेट प्रोटोकॉल को लागू नहीं करते हैं, बस पोर्ट 23 को लघु एसीआईआई आदेश भेजते हैं। –

6

Expect आपको विस्तार से बाहरी कार्यक्रमों के साथ संवाद करने की अनुमति देगा, लेकिन मुझे उम्मीद के सी बंदरगाह से अवगत नहीं है। अन्यथा आपको सी में टेलनेट लाइब्रेरी मिल जाएगी या सॉकेट प्रोग्रामिंग का उपयोग करके अपना खुद का लिखें।

0

मैं होगा:

  • टेलनेट interractions यहाँ के रूप में लिखित दस्तावेजों युक्त कुछ सरल शेल स्क्रिप्ट लिख रहे हैं।
  • आपके टेलीनेट सत्र के पहलुओं को नियंत्रित करने के लिए आपकी होम निर्देशिका में .telnetrc फ़ाइल का उपयोग करके, उदा। crmod
  • सिस्टम कॉल का उपयोग करके स्क्रिप्ट को कॉल करना।

इस तरह रोबोट के साथ आपके इंटरैक्शन को बदलने के लिए आपका टर्नअराउंड समय आपके प्रोग्राम को हर समय पुन: संकलित करने में शामिल नहीं होगा।

बीटीडब्ल्यू यह मजेदार लगता है।

एचटीएच। इंटरैक्टिव कार्यक्रमों के साथ बातचीत पकड़ -

चियर्स,

रोब

2

Expect वास्तव में यह करने के लिए डिजाइन किया गया था। यह Tcl में लिखा गया है, जिसमें विभिन्न आदेशों के साथ टीसीएल दुभाषिया का विस्तार किया गया है। टीसीएल विस्तार करना बहुत आसान है; इसे शब्द से सीधे एक एम्बेडेड स्क्रिप्टिंग भाषा के रूप में डिजाइन किया गया था। मुख्य सी एपीआई टीएलसी कमांड को पैरामीटर पास करने के लिए argv-style constructs का उपयोग करता है और उपयोग करने में बहुत आसान है। सी एपीआई के लिए सबसे अच्छी मार्गदर्शिका Ousterhout's original book है और मुझे अपना पहला एम्बेडेड टीसीएल दुभाषिया ऊपर और चलने के लिए एक दो घंटे का प्रयोगशाला सत्र मिला।

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

4

मैं libcurl का उपयोग करूंगा: http://curl.haxx.se/libcurl/। यह वही करेगा जो आप चाहते हैं, और सभी टेलनेट गुओ को संभालें जिन्हें आप वास्तव में संभालना नहीं चाहते हैं।

संबंधित मुद्दे