次のプロトタイプで ac コールバックがあります。
typedef void (* FrameDataCallBack)( TProcessedDataProperty* Attributes, unsigned char *BytePtr );
このコールバック関数は、ユーザーが定義し、次の関数でカメラにアタッチすることを意図しています。
BUFCCDUSB_InstallFrameHooker( int FrameType, FrameDataCallBack FrameHooker );
私は複数の方法でコールバックのプロトタイプを作成しようとしました:
1.
def frame_callback(attributes, frame):
for i in xrange(480*640): #Reads bytes and stores them in an array for future use
frame_buffer[i/640][i%640] = frame[i*config.bin_no]
print "hi"
CMPFUNC = ctypes.CFUNCTYPE(None,
ctypes.POINTER(TProcessedDataProperty),
ctypes.POINTER(ctypes.c_ubyte))(frame_callback)
2.
CMPFUNC = ctypes.CFUNCTYPE(None,
ctypes.POINTER(TProcessedDataProperty),
ctypes.POINTER(ctypes.c_ubyte))
@CMPFUNC
def frame_callback....
#function declaration
3.
CMPFUNC = ctypes.CFUNCTYPE(None,
ctypes.POINTER(TProcessedDataProperty),
ctypes.POINTER(ctypes.c_ubyte))
cbfunc = CMPFUNC(frame_callback)
次に、コールバックをアタッチしようとします
BUFCCDUSB_InstallFrameHooker(0, CMPFUNC): (frame_callback and cb for the respective callback codes)
関数の正しい arg と restypes をインスタンス化した後、ただし、コールバックは呼び出されません。誰かが考えられるエラーを指摘してくれることを望んでいました