के साथ SWIG सी ++ बाइंडिंग मैं कुछ सी ++ कोड के लिए कुछ SWIG/पायथन बाइंडिंग लिख रहा हूं। यह किनेक्ट दुर्घटनाग्रस्त एपीआई कहलाता है, मेरे पास मोटर है और working का नेतृत्व किया गया है। श्रोता वर्ग को कॉलबैक जो आरजीबी और गहराई बफर को पार्स और पॉप्युलेट करते हैं, उन्हें एसडब्ल्यूआईजी से नहीं कहा जाता है। डेटा कैप्चर थ्रेड स्पष्ट रूप से शुरू होते हैं और सीपीयू को हॉगिंग शुरू करते हैं, लेकिन कॉलबैक से कोई डीबग लाइन नहीं आती है। डेटा बफर को पॉप्युलेट करने और आसानी से उन्हें पायथन से एक्सेस करने का बेहतर तरीका क्या होगा?कॉलबैक
class KinectListener
{
public:
virtual ~KinectListener(){};
virtual void KinectDisconnected(Kinect *K) {};
virtual void DepthReceived(Kinect *K) {};
virtual void ColorReceived(Kinect *K) {};
virtual void AudioReceived(Kinect *K) {};
};
यहाँ आभासी तरीकों के साथ श्रोता वर्ग, पायथन इस वर्ग के संस्करण C++ वर्ग के लिए श्रोताओं के वारिस के लिए किया जा लपेटा जा सकता है? मैंने सी ++ में एक न्यूनतम श्रोता जोड़ा और अब शेष कार्य टाइपमैप्स के साथ कुशलता से सरणी तक पहुंचने के लिए है। वर्तमान में मैं इस बेवकूफ टाइपमैप का उपयोग कर रहा हूं
%typemap(out) unsigned short [ANY] {
int i;
$result = PyList_New($1_dim0);
for (i = 0; i < $1_dim0; i++) {
PyObject *o = PyInt_FromLong((long)$1[i]);
PyList_SetItem($result,i,o);
}
}
बेहतर विकल्प?
मेरे पास एक ही प्रश्न था - N0vember की प्रतिक्रिया इसका उत्तर देती है। किसी फ़ंक्शन को कॉल करने के लिए पॉइंटर प्राप्त करने के बजाय, एक पॉलीमोर्फिक क्लास को पॉइंटर प्राप्त करें जहां आप उस फ़ंक्शन का नाम जानते हैं जिसे आप कॉल करने की योजना बना रहे हैं। – Jonathan