我目前正在開發一個在開源平臺上與C++集成的python代碼。 Python類和定義將參數傳遞給C++文件,並由此運行函數。我的C++文件是一個packet_sink文件這需要被下面提到3個輸入參數:C++和python:向量參數的TypeError解析?
packet_sink (const std::vector<unsigned char>& sync_vector,
msg_queue_sptr target_queue, int threshold)
的Python代碼的分片如下:
self.threshold = -1
if access_code is None:
code = tuple(string_to_1_0_list(default_access_code))
access_code = to_1_0_string(code)
if not packet_utils.is_1_0_string(access_code):
raise ValueError, "Invalid access_code %r. Must be string of 1's and 0's" % (access_code,)
print " _access_code : %s " %(self._access_code,)
self._msgq = gr.msg_queue()# holds packets fromthe PHY
self.phy_anay_demod= phy_anay_demod(self,*args, **kwargs)
self._packet_sink =gr.packet_sink(self._access_code,self._msgq,self.threshold)
的_access_code
的值是:
0011010110111011001001010100011101001111001100010000010000111111
但我收到的錯誤消息如下:
TypeError: in method 'packet_sink', argument 1 of type 'std::vector< unsigned char,std::allocator< unsigned char > > const &'.
有誰請幫助我理解錯誤如果不是解決問題的辦法。
您是否嘗試過閱讀平臺文檔? – 2012-02-23 04:41:29
感謝您的及時回覆。我查看了文檔,並從我收集的packet_sink.cc中的第一個參數中瞭解到,它接受的類型是const std :: vector,並且正在接收到該指針的值是std :: vector> const或類似的東西。我很想知道爲什麼會出現這種情況,以及我能做些什麼來擺脫它。 –
user1227372
2012-02-23 06:58:36