Re: [Python.NET] Sending a buffer (pointer?) to a C# function
Brian Lloyd <[email protected]> Thu, 09 Mar 2017 13:46:51 -0500
| Newsgroups | gmane.comp.python.dotnet |
|---|---|
| Message-ID | <[email protected]> |
Its been a while, but I think what you will need to do is create a GCHandle on your buffer to pin it, then call GCHandle.AddrOfPinnedObject(buffer) and pass the resulting IntPtr as the void * argument. On 3/9/17, 11:33 AM, "PythonDotNet on behalf of Aloter One" <pythondotnet-bounces+brian.d.lloyd=gmail.com-+ZN9ApsXKcEdnm+yROfE0A@public.gmane.org on behalf of [email protected]> wrote: >Hello, >I'm trying to use pythondotnet to communicate with a camera (from Xenics), it has a C# wrapper. > >From their documentation it seems I need to send the following to grab a frame: > >XCamera::GetFrame (FrameType >type, unsigned long ulFlags, void * buffer, unsigned int size ) >In their C# example they create the buffer by: >UInt32 frameSize = camera.FrameSize; >frameBuffer = new ushort[frameSize / 2]; > >and call the function: >GetFrame(FrameType.Native, XGetFrameFlags.Blocking, frameBuffer, frameSize); >I've tried to emulate it by creating the buffer in python: > >frameSize = np.uint32(camera.FrameSize) >frameBuffer = np.empty([int(frameSize/2), 1], dtype=np.ushort) > >However when I try to call the function (camera is an XCamera object from their dll, FrameType and XGetFlags are defined in their dll also. > >camera.GetFrame(FrameType.Native, XGetFrameFlags.Blocking, frameBuffer, frameSize) > >I get an error I'm not sending the right variables to the function: > > >"TypeError: No method matches given arguments" > >Do I need to send the actual buffer pointer to the function? How to implement it in pythondotnet? > >Thank you! > >_________________________________________________ >Python.NET mailing list - [email protected] >https://mail.python.org/mailman/listinfo/pythondotnet _________________________________________________ Python.NET mailing list - [email protected] https://mail.python.org/mailman/listinfo/pythondotnet