Python® के साथ SerialTool।


विषय सूची


Python क्या है?

Python® एक व्याख्यात्मक, वस्तु-उन्मुख, उच्च-स्तरीय प्रोग्रामिंग भाषा है जिसमें गतिशील अर्थशास्त्र है। इसकी उच्च-स्तरीय निर्मित डेटा संरचनाएं, गतिशील टाइपिंग और गतिशील बाइंडिंग के साथ संयुक्त, यह रैपिड एप्लिकेशन डेवलपमेंट के लिए बहुत आकर्षक बनाती है, साथ ही मौजूदा घटकों को एक साथ जोड़ने के लिए एक स्क्रिप्टिंग या ग्लू भाषा के रूप में उपयोग के लिए भी।
Python की सरल, सीखने में आसान सिंटैक्स पठनीयता पर जोर देती है और इसलिए प्रोग्राम रखरखाव की लागत को कम करती है। Python मॉड्यूल और पैकेज का समर्थन करता है, जो प्रोग्राम मॉड्यूलरिटी और कोड पुन: उपयोग को प्रोत्साहित करता है। Python इंटरप्रेटर और व्यापक मानक पुस्तकालय सभी प्रमुख प्लेटफार्मों के लिए बिना शुल्क के स्रोत या बाइनरी रूप में उपलब्ध हैं, और इसे स्वतंत्र रूप से वितरित किया जा सकता है।
Python® के बारे में अधिक विस्तृत जानकारी के लिए, कृपया उनकी वेबसाइट देखें: www.python.org

कानूनी सूचना: "Python" PSF का पंजीकृत ट्रेडमार्क है। SerialTool PSF से संबद्ध या प्रायोजित नहीं है। SerialTool Python का उपयोग स्क्रिप्ट चलाने के लिए एक संगत प्रोग्रामिंग भाषा के रूप में करता है और इसके लिए आपके पीसी पर Python का आधिकारिक संस्करण स्थापित होना आवश्यक है।

SerialTool और Python

SerialTool के लिए Python कोड एडिटर।


क्या आपने कभी सीरियल पोर्ट का उपयोग करना चाहा है और आपके पास ऐसा शानदार ग्राफिकल इंटरफेस उपलब्ध हो जो सीरियल पोर्ट से डेटा को दिखा और प्रदर्शित कर सके?
अगर आपको यह आवश्यकता है और आप सीरियल पोर्ट को आसानी से नियंत्रित करने के लिए अपना खुद का प्रोग्राम बनाना चाहते हैं, बिना लाइब्रेरीज को इंस्टॉल किए हुए एक सरल भाषा में जो सभी के लिए सुलभ हो, तो Python के साथ SerialTool वह टूल है जिसकी आप तलाश कर रहे थे।
कुछ प्रोग्राम जो सीरियल पोर्ट का उपयोग करते हैं वे कुछ स्क्रिप्टिंग समाधान प्रदान करते हैं, अर्थात् आप अपना कोड लिख सकते हैं और उसे निष्पादित करवा सकते हैं, लेकिन अक्सर आप भाषा को नहीं जानते हैं या आपको अपने कोड की कुछ पंक्तियों को एकीकृत करने के लिए घंटों समय लगाना पड़ता है! Python में एम्बेडेड SerialTool के साथ, आप अपनी स्क्रिप्ट Python में लिख सकते हैं और SerialTool की सभी सुविधाओं का लाभ उठा सकते हैं बिना किसी सीमा के।
SerialTool पुस्तकालय के रूप में मौलिक कार्यों को एकीकृत करता है (पहले से आयातित और एकीकृत), और कुछ पंक्तियों के साथ, आप वांछित सीरियल पोर्ट की खोज कर सकते हैं, उसे खोल सकते हैं, पढ़ सकते हैं और लिख सकते हैं। SerialTool सभी ग्राफिक प्रबंधन को संभालेगा जो आने वाले और जाने वाले पैकेटों का होता है और आपको अपने Python कोड का उपयोग करने की अनुमति देता है जिसे आप बिना किसी सीमा के प्रदर्शन करना चाहते हैं।
Python में लिखने और परीक्षण को सुविधाजनक बनाने के लिए, SerialTool एक पाठ संपादक प्रदान करता है जहां आप अपनी स्क्रिप्ट अपलोड कर सकते हैं और संशोधित कर सकते हैं। एकीकृत संपादक Python सिंटैक्स को पहचानता है और कोड के आसान मसौदा तैयार करने की अनुमति देता है।

सीरियल पोर्ट और Python के बारे में अधिक विस्तार से

SerialTool और इसके एकीकृत Python पुस्तकालय द्वारा प्रदान की जाने वाली सुविधाओं में गहराई से उतरते हुए, आइए एक व्यावहारिक उदाहरण के साथ शुरुआत करते हैं।
आपका इरादा एक ग्राहक या सहकर्मी को ऐसा सॉफ्टवेयर देने का है जो एक उपकरण पर फर्मवेयर अपलोड करने की अनुमति देता है जो हमारे द्वारा बनाया गया है और सीरियल पोर्ट के माध्यम से अपडेट किया जा सकता है। यह एक बहुत ही सामान्य परिदृश्य है जिसमें किसी को सॉफ्टवेयर को खरोंच से बनाना पड़ता है, संभवतः मल्टी-प्लेटफॉर्म, और ग्राफिकल इंटरफेस और उपयोगकर्ता इंटरैक्शन, फाइल चयन, और त्रुटि या पुष्टिकरण संदेशों से शुरू होकर एक श्रृंखला के पहलुओं को एकीकृत करने की आवश्यकता होती है।
इस मामले में, अन्य भाषाओं के विपरीत, Python काम को आसान बनाता है लेकिन एक ही समय में बाहरी लाइब्रेरीज को इंस्टॉल करने और अपडेट पर नज़र रखने की आवश्यकता होती है।
SerialTool समस्या का मूल समाधान प्रदान करता है, कुछ सरल कार्य प्रदान करके जो त्वरित और सहज सीरियल पोर्ट चयन की अनुमति देते हैं, फाइल लोडिंग और सेविंग के लिए डायलॉग बॉक्स, और उपयोगकर्ता को कार्यक्रम के संचालन के बारे में सूचित करने के लिए मैसेज बॉक्स।
ये बहुत ही सरल कार्य हैं जिन्हें जल्दी से बुलाया जा सकता है, जो प्लेटफॉर्मों पर स्थानिक होते हैं जहां SerialTool स्थापित किया जा सकता है (Windows, MacOS, और Linux)। यह बाहरी लाइब्रेरीज पर निर्भरता को पूरी तरह से समाप्त कर देता है, और उपयोगकर्ता के साथ बातचीत के मौलिक कार्यों को सरल, तेज़ और सहज बना देता है बहुत कम पंक्तियों की कोड में।

हमारे मौलिक उदाहरण पर लौटते हुए, हम सभी सक्रिय पोर्ट्स को बंद करने और उपलब्ध सीरियल पोर्ट्स की खोज करने के लिए SerialTool.scan फ़ंक्शन का उपयोग करके शुरू करते हैं और उपयोगकर्ता द्वारा सीरियल पोर्ट का चयन SerialTool.gui_selectport फ़ंक्शन के साथ किया जाता है।
इस बिंदु पर, हम जानते हैं कि हमारा उपयोगकर्ता किस पोर्ट का उपयोग करना चाहता है, हमें बस इतना करना है कि SerialTool.open फ़ंक्शन का उपयोग करके इसे खोलें, जिसमें पैरामीटर सेटिंग्स या GUI में पहले से मौजूद पैरामीटर होते हैं। एक बार सीरियल पोर्ट खुल जाने के बाद, हम SerialTool.gui_loadfile फ़ंक्शन का उपयोग करके फाइल लोड करने का अनुरोध कर सकते हैं, Python में नेटिव फ़ंक्शंस का उपयोग करके फाइल खोल सकते हैं, और फर्मवेयर डाउनलोड के निष्पादन के लिए पुष्टिकरण का अनुरोध SerialTool.gui_showmessage फ़ंक्शन के साथ कर सकते हैं।
हम उस क्षण तक पहुँच चुके हैं जब हम अपनी फाइल में मौजूद बफर को SerialTool.write का उपयोग करके लिखते हैं, लिखने के लिए बाइट्स की संख्या को इंगित करते हैं और अपडेट होने वाले उपकरण से प्रतिक्रिया की प्रतीक्षा करते हैं (यदि अपेक्षित हो) SerialTool.read कमांड के साथ हमारे अपडेट के अंत तक।
कुछ ही मिनटों में अपने उपकरण या तृतीय-पक्ष उपकरण को अपडेट करने के लिए अपना कार्यक्रम लिखने की अनुमति देने वाले कुछ और सरल कमांड।
क्या यह जटिल लगता है? SerialTool एकीकृत अच्छी तरह से टिप्पणी की गई उदाहरण प्रदान करता है।

Python में सीरियल पोर्ट के लिए एकीकृत उदाहरण

समझने और परिणाम प्राप्त करने में सुविधा के लिए, SerialTool सीधे कार्यात्मक और टिप्पणी किए गए उदाहरणों को एकीकृत करता है जो एकीकृत कार्यों का तत्काल उपयोग बढ़ावा देते हैं। एक बड़ा लाभ यह है कि एकीकृत कार्य सीरियल पोर्ट को संचालित करने के लिए किसी भी बाहरी Python लाइब्रेरीज की आवश्यकता नहीं है।
Python की मूल स्थापना के साथ, हमारा उदाहरण पहले से ही कार्यात्मक है। प्रदान किए गए उदाहरणों में, हमारे सॉफ्टवेयर में Python के लिए SerialTool पुस्तकालय में उपलब्ध सभी कार्य उपलब्ध हैं। अपनी स्क्रिप्ट्स के अनुकूलन के लिए प्रस्तावित कोड के कुछ हिस्सों को अनुकूलित करने के लिए पर्याप्त होगा और कुछ ही मिनटों में, आपका सीरियल पोर्ट के लिए कार्यक्रम विकसित किया जा सकता है।
SerialTool में पहले से प्रस्तावित उदाहरण संस्करण दर संस्करण एकीकृत किए जाएंगे ताकि हमेशा उपलब्ध कार्यों और उनके कार्यान्वयन का सीधा अवलोकन हो सके बिना इंटरनेट पर खोज किए बिना।
SerialTool कार्यों पर समर्पित दस्तावेज़ीकरण हमारे Python के लिए SerialTool API पृष्ठ पर उपलब्ध है।

Python की स्थापना

कई ट्यूटोरियल आपके पीसी पर Python की स्थापना के साथ शुरू होते हैं यदि यह पहले से उपलब्ध नहीं है, और न्यूनतम उपयोगिता प्राप्त करने के लिए विन्यास किया जा सकता है। हमने इस भाग को अंत में छोड़ दिया क्योंकि SerialTool के माध्यम से Python पर्यावरण मेनू एक बार Python स्थापित होने के बाद आपके लिए मौजूदा विन्यास की खोज और परीक्षण करेगा।
जैसा कि उल्लेख किया गया है, Python एक मुक्त और व्याख्यात्मक भाषा है और इसके लिए आपके पीसी पर इंटरप्रेटर स्थापित होना आवश्यक है। इस भाषा से परिचित लोगों के लिए कई स्पष्टीकरण देने की आवश्यकता नहीं है, हालांकि जिन्हें इस अद्भुत भाषा और इसके विकास के माहौल का पहली बार प्रयास करना चाहिए, उठाने के लिए कदम काफी सरल हैं।
Windows के लिए, बस Python का नवीनतम संस्करण (इस दस्तावेज़ को लिखते समय 3.12) डाउनलोड करें और इसकी पूरी स्थापना तक निष्पादन योग्य चलाएं।
MacOS के लिए, Python पहले से ही स्थापित होना चाहिए शायद Python के संस्करण 2 को संदर्भित करते हुए और इसे नवीनतम संस्करण (इस दस्तावेज़ को लिखते समय 3.12) में अपडेट करने की आवश्यकता होती है, जिसे आधिकारिक Python वेबसाइट से सीधे डाउनलोड करके और स्थापना (Windows के रूप में) के साथ आगे बढ़ना होता है।

मैकओएस उपयोगकर्ताओं के लिए नोट: मैकओएस के लिए सीरियलटूल के वर्तमान संस्करण में, पाइथन 3.12 फ़्रेमवर्क पहले से ही कोड साइन करने के लिए एप्पल की आवश्यकताओं को पूरा करने के लिए एकीकृत है। अगर आप अपने सिस्टम में स्थापित एक अलग संस्करण का उपयोग करना चाहते हैं, तो आप "पायथन वातावरण" मेनू से सेटिंग्स को बदल सकते हैं।

Linux के लिए, इसे कमांड लाइन Ubuntu sudo apt-get install python3 या Fedora sudo dnf install python3 के माध्यम से स्थापित करना होगा
यदि आपके पास Python की स्थापना करने में कोई संदेह या कठिनाइयाँ हैं, तो आप हमेशा आधिकारिक साइट या ऑनलाइन उपलब्ध दर्जनों ट्यूटोरियलों का संदर्भ ले सकते हैं।

Python पर्यावरण सेटअप और कॉन्फ़िगरेशन।


एक बार स्थापित और सत्यापित करने के बाद "Python पर्यावरण" मेनू से, वर्तमान Python सेटिंग को आयात करने और SerialTool के बाद के प्रारंभों के लिए इसे सहेजने के लिए "स्थापना की जाँच" बटन दबाना पर्याप्त होगा।

आप तैयार हैं! पहले उदाहरणों को लोड करें और अपने सीरियल पोर्ट के लिए पहला कार्यक्रम लिखते हुए अपने साहसिक कार्य को शुरू करने के लिए [RUN] बटन दबाएं।

कुछ अतिरिक्त जानकारी

स्क्रिप्ट्स लिखने में सहायता के लिए, निगमित संपादक के पास एक IDE की विशिष्ट विशेषताएं हैं लेकिन फिलहाल डिबगिंग की अनुमति नहीं देता है।
उपलब्ध विकल्पों में से, यह सलाह दी जाती है कि हमेशा विकल्प चुनें "स्क्रिप्ट के निष्पादन के समाप्त होने पर स्वचालित रूप से सीरियल पोर्ट्स बंद करें।" यदि आपकी स्क्रिप्ट लिखने में त्रुटियों का सामना करती है, तो SerialTool किसी भी खुले सीरियल पोर्ट्स को बंद करने का प्रावधान करता है ताकि बाद के स्क्रिप्ट स्टार्टअप पर उन्हें बंद करने की आवश्यकता से बचा जा सके।
स्क्रिप्ट को रोकने और बाहर निकलने के लिए, sys.exit() फ़ंक्शन का उपयोग करना नहीं सलाह दी जाती है क्योंकि यह Python के एकीकृत होने के कारण SerialTool के पूर्ण बंद होने का कारण बनेगा। यदि स्रोत कोड के माध्यम से स्क्रिप्ट के निष्पादन को रोकना आवश्यक है, तो SerialTool.stopscript फ़ंक्शन प्रदान किया जाता है।
यदि आप एक लूप के अंदर पाए जाते हैं, तो GUI से सीधे [STOP] बटन के माध्यम से निष्पादन को रोकना संभव है।
चूंकि Python सीधे SerialTool में एकीकृत है, इसलिए याद रखना महत्वपूर्ण है कि आपकी स्क्रिप्ट SerialTool प्रक्रियाओं का हिस्सा बन जाती है। इस संबंध में, जब आप अपने चक्र में While True लूप्स शामिल करते हैं, तो यह महत्वपूर्ण है कि उन्हें एक छोटी नींद (आमतौर पर 0.1 सेकंड) के साथ जोड़ा जाए time.sleep(0.1) (समय पुस्तकालय से) फ़ंक्शन का उपयोग करके विभिन्न मुख्य GUI प्रक्रियाओं को निष्पादित करने की अनुमति देने के लिए; अन्यथा, आप पूर्ण रूप से एप्लिकेशन को फ्रीज करने का जोखिम उठाते हैं।
अत्यधिक चिंता न करें, क्योंकि हमारे उदाहरण इन छोटी देरी को डालने के लिए महत्वपूर्ण बिंदुओं को उजागर करते हैं।

अक्सर पूछे जाने वाले प्रश्न

क्या Python का एकीकरण कुछ कार्यक्षमता तक सीमित है?
नहीं। Python स्क्रिप्ट्स की सभी कार्यक्षमताएं सीधे उपलब्ध हैं जिसमें बाहरी लाइब्रेरीज को लोड करना शामिल है (यदि प्रणाली में मौजूद है)।

क्या SerialTool और Python सभी ऑपरेटिंग सिस्टमों पर काम करता है?
हाँ। जहां SerialTool उपलब्ध है और Python उपलब्ध है, उसका उपयोग संभव है, अर्थात् Windows, MacOS, और Linux।

क्या मुझे अवश्य ही Python डाउनलोड करके स्थापित करना होगा?
हाँ। जहां इसका उपयोग करना है, उस पीसी पर Python इंटरप्रेटर होना चाहिए। SerialTool Python3 पर आधारित है और Python2 के साथ पीछे की संगतता सीधे दो संस्करणों की संगतता पर निर्भर करती है। Python2 उपयोगकर्ताओं के लिए Python3 का उपयोग करना वैसे भी सिफारिश की जाती है।

Python SerialTool के साथ कैसे इंटरैक्ट करता है?
Python स्क्रिप्ट हमारे सॉफ्टवेयर में सीधे एकीकृत SerialTool पुस्तकालय के माध्यम से वांछित कार्यों को बुलाकर इंटरैक्ट करती है। Python के माध्यम से सेट किए गए पैरामीटरों में सीरियल पोर्ट को खोलना और बंद करना शामिल है, जो सीधे मुख्य उपयोगकर्ता इंटरफेस से जुड़े होते हैं। मूल रूप से आप Python के माध्यम से SerialTool पुस्तकालय और इसके कार्यों के माध्यम से SerialTool को सीधे पायलट करते हैं।

क्या मैं SerialTool के कार्यों का उपयोग जारी रख सकता हूँ?
हाँ। सभी SerialTool कार्य उपलब्ध हैं, AutoAnswer, Alarm, SerialScope, पैकेट प्रदर्शन, डेटा रिकॉर्डिंग, नेटवर्क को पैकेट भेजना, आदि उपलब्ध हैं और उपयोगकर्ता इंटरफेस से चयनीय हैं।

क्या एक साथ कई पोर्ट्स का उपयोग संभव है?
हाँ। SerialTool की मूल विशेषता एक साथ कई सीरियल पोर्ट्स का प्रबंधन है। Python के माध्यम से, यह संभव है कि आप जिस सीरियल पोर्ट का उपयोग करना चाहते हैं उसे सीरियल नंबर असाइन करें SerialTool.assignPort फ़ंक्शन के माध्यम से।

क्या मुझे हमेशा GUI का उपयोग करके पोर्ट्स को खोलने और सेट करने के लिए पहले से करना होगा?
नहीं। जैसा कि दोहराया गया है, सीरियल पोर्ट्स का प्रबंधन सीधे Python से सीधे उपलब्ध है।

क्या मैं RTS और DTR पैरामीटर भी सेट कर सकता हूँ?
हाँ। पुस्तकालय आपको स्क्रिप्ट निष्पादन के दौरान और जब सीरियल पोर्ट खोलते समय RTS और DTR पिनों की सेटिंग को सीधे पायलट करने की अनुमति देता है।

क्या मैं SerialTool पुस्तकालय में अन्य कार्यों के कार्यान्वयन का अनुरोध कर सकता हूँ?
हाँ। Python पर SerialTool पुस्तकालय के लिए अतिरिक्त कार्यों के किसी भी आगे के कार्यान्वयन पर विचार किया जाएगा और जहां संभव हो और SerialTool के विकास गतिकी के आधार पर लागू किया जाएगा।

मुझे किस प्रकार का समर्थन मिल सकता है?
हमारी टीम आपकी स्क्रिप्ट्स को एकीकृत करने में आपकी मदद के लिए उपलब्ध है ताकि आपकी स्क्रिप्ट्स का मसौदा तैयार करने में मदद की जा सके या किसी भी त्रुटियों की पहचान की जा सके। समर्थन वास्तविक Python स्क्रिप्ट्स के मसौदे या आयोग पर शामिल नहीं है। समर्थन SerialTool के साथ Python के एकीकरण से संबंधित है।