我有一個C代碼(傳感器的SDK),當我運行它時,它通過USB啓動與傳感器的連接,然後用回調監聽傳感器輸出並打印它(我也寫在一個文本文件)。在回調中每打印一個樣本50毫秒。從python運行C代碼並聽取變量值
現在我想從Python運行這個C代碼(因爲我需要在python中實時分析數據),並且每當C中的回調函數產生一個新的輸出(一個16 * 1的整數數組)時,我需要將它們傳遞給python代碼。
我見過幾種運行C代碼的方法,例如Swig,但是我認爲在調用C代碼時使用了這些方法,並且獲得了它們的返回值。 但在我的情況下,C代碼處於無限循環,並且不會在主代碼中返回任何內容。我也沒有這個選項來從傳感器中逐一讀取樣本,因爲每次運行C代碼時,我都應該通過USB連接到傳感器,然後能夠讀取值,連接到傳感器需要時間,我不能這樣做每時每刻。
這是我用來連接到傳感器和讀取值的SDK(C代碼)。 https://www.dropbox.com/s/s5rrrdy4mzrv54f/Main.c?dl=0
我不是軟件工程師,所以我可能不擅長事先編碼。 任何人都可以幫助我嗎?
謝謝。
您可能會研究開發一個[自定義C模塊](https://docs.python。 org/2/extensions/extensions.html) – jedwards
看看'ctypes'。恕我直言,甚至回調是可能的。 – harandk
看看Cython。 –