मैं एक क्लाइंट विकसित कर रहा हूं जो टीसीपी पर [ईईजी] डेटा प्राप्त करेगा और इसे रिंग बफर पर लिख देगा। मैंने सोचा कि बफर को एक प्रकार या numpy सरणी के रूप में रखना बहुत सुविधाजनक हो सकता है क्योंकि ऐसे बफर के किसी भी स्थान पर एक numpy 'view' बनाना संभव है और किसी भी प्रतिलिपि संचालन के बिना डेटा को पढ़/लिख/संसाधित करना संभव है। या यह सामान्य रूप से एक बुरा विचार है?रिंग बफर numpy/ctypes
हालांकि, मुझे नहीं लगता कि इस तरह के एक निश्चित आकार के गोलाकार बफर को कैसे कार्यान्वित किया जाए। मान लीजिए मैंने एक बफर ऑब्जेक्ट बनाया है जो स्मृति में संगत है। बफर के अंत तक पहुंचने पर डेटा लिखने का सबसे अच्छा तरीका क्या है?
एक संभावित तरीका शुरुआत से (पहले से पुराना) बाइट्स को ओवरराइट करना प्रारंभ करना है जब लिखने वाला सूचक बफर सरणी के अंत तक पहुंचता है। सीमाओं के पास, हालांकि, इस मामले में कुछ खंड (प्रसंस्करण के लिए) का numpy दृश्य नहीं बनाया जा सकता है (या यह कर सकते हैं?) क्योंकि इसमें से कुछ अभी भी बफर सरणी के अंत में स्थित हो सकते हैं जबकि दूसरा पहले से ही इसकी शुरुआत मैंने पढ़ा है कि इस तरह के गोलाकार स्लाइस बनाना असंभव है। इसे कैसे हल करें?
यूपीडी: उत्तर के लिए सभी को धन्यवाद। अगर किसी को भी एक ही समस्या का सामना करना पड़ता है, तो here मुझे मिला अंतिम कोड है।
मैं [ 'numpy_ringbuffer' पैकेज] लिखा है (https://pypi.python.org/pypi/numpy_ringbuffer) इस समस्या है, जो एक अंतर्निहित बफर करने के लिए एक' deque' की तरह इंटरफेस प्रदान करता है हल करने के लिए – Eric