/ / अनुकरण धारावाहिक बंदरगाह - सी ++, धारावाहिक बंदरगाह, arduino, समाज

अनुकरण सीरियल पोर्ट - सी ++, सीरियल-पोर्ट, आर्डिनो, सोशल

क्या यह "आभासी" धारावाहिक बनाना संभव हैडिवाइस जो "वर्चुअल" सीरियल पोर्ट के माध्यम से डेटा भेजता है? मुझे एक Arduino के साथ बातचीत करने के लिए कुछ कोड विकसित करने की जरूरत है, लेकिन यह मेरे साथ नहीं है। क्या यह किया जा सकता है socat, या कुछ कोड जो लिखते हैं dev/ttyXXX फाइल?

संपादित करें: मैं आर्क लिनक्स चला रहा हूं

उत्तर:

जवाब के लिए 5 № 1

हां, आप एक धारावाहिक बंदरगाह अनुकरण करने के लिए समाज का उपयोग कर सकते हैं।

आपको सोशल के पीटीई पता प्रकार का उपयोग करने की आवश्यकता है:

PTY: Generates a pseudo terminal (pty) and uses its master side. Another
process may open the pty"s slave side using it like a serial line or
terminal.

सबसे आसान विकल्प है:

socat PTY,link=./virtual-tty,raw,echo=0 -

जिस एप्लिकेशन का आप परीक्षण कर रहे हैं उसे खोलें virtual-tty। आपके से आउटपुट आवेदन कंसोल पर प्रिंट करेगा। आपके द्वारा लिखे गए पाठ को आपके पास भेजा जाएगा आवेदन।

जैसा ऊपर बताया गया है, पीटीई पता प्रकार एक बनाता है peudo टर्मिनलlink विकल्प के बीच एक मुलायम लिंक बनाता हैछद्म टर्मिनल और दी गई फ़ाइल। आप अपनी इच्छित फ़ाइल नाम चुन सकते हैं। मुलायम लिंक के बिना आपको इसकी आवश्यकता होगी डिवाइस खोलें और सही एक निर्धारित करना मुश्किल है। raw कच्चे मोड में छद्म टर्मिनल डालता है। आप आमतौर पर इसे चाहते हैं क्योंकि आप नहीं चाहते हैं विशेष टर्मिनल हैंडलिंग विकल्पों में से कोई भी। echo=0 गूंज मोड अक्षम करता है।

यदि आपके पास एक एप्लिकेशन है (या बना)निष्पादित कोड अनुकरण करता है Arduino, आप इसे समाज के माध्यम से भी कनेक्ट कर सकते हैं। अगर आपका सिम्युलेटर stdin / stdout के माध्यम से comunicates, फिर निम्न आदेश का उपयोग करें:

socat PTY,link=./virtual-tty,raw,echo=0 EXEC:simulator-command

उपरोक्त stdin / stdout को जोड़ता है simulator-command को छद्म टर्मिनल।

यदि आपका सिम्युलेटर एक सीरियल पोर्ट के माध्यम से भी संचार करता है, तो पीटीई का उपयोग करें दो बार आदेश:

socat PTY,link=./arduino-sim,raw,echo=0 PTY,link=./virtual-tty,raw,echo=0

अपने सिम्युलेटर खुला है arduino-sim.