के साथ पढ़ें मुझे टाइमआउट के साथ पढ़ने (सिंक या एसिंक कोई फर्क नहीं पड़ता) को जानने की आवश्यकता है। मैं यह जांचना चाहता हूं कि कोई डिवाइस सीरियल पोर्ट से कनेक्ट है या नहीं।asio :: टाइमआउट
इसके लिए मैं asio::write
का उपयोग करता हूं और फिर मैं डिवाइस की प्रतिक्रिया के लिए प्रतीक्षा करता हूं।
एक डिवाइस कनेक्ट asio::read(serial, boost::asio::buffer(&r,1))
है, तो ठीक काम करता है, लेकिन कोई डिवाइस कार्यक्रम बंद हो जाता है, जो वहाँ है अगर कारण है कि मैं समय समाप्ति की जरूरत
मुझे पता है कि मैं एक deadline_timer
की जरूरत है, लेकिन मैं यह कैसे उपयोग करने के लिए पता नहीं है async_read
फ़ंक्शन में।
यह कैसे काम करता है इसका एक उदाहरण वास्तव में सहायक होगा।
मुझे पता है कि कई समान धागे हैं और मैंने उनमें से बहुत कुछ पढ़ा है लेकिन मुझे कोई समाधान नहीं मिल रहा है जो मेरी समस्या को हल करने में मेरी सहायता करता है!
क्या आप सुनिश्चित हैं कि asio i/o ऑपरेशन एक बाधा बिंदु है? –
क्या कोई यह पुष्टि करने में सक्षम है? क्या यह समाधान काम करता है? – rustyx
मैंने इसका परीक्षण किया है, मेरे लिए काम नहीं किया है। बाधा एएसओ I/o ऑपरेशन के दौरान थ्रेड को रोक नहीं पाएगी। – risingDarkness