I had trouble to get the drivers to work on Windows 10 and the new JAI
SDK didn't work with the adapter.
Therefore i compiled the camera adapter with the last SDK tools:
JAI SDK and Control Tool (64-bit) - 3.0.7 (Windows) - 111 MB
The compile worked without any warning or error message.
The drivers and the Control Tools in version 3.0.7 work on Windows 10.
Unfortunate i didn't get any Images.
The relevant debugging message for this was: J_Image_MallocEx() failed
In my case i only use Mono8 / Mono16 cameras in the lab.
I figured out that in GigECameraAcqu.cpp the function int
CGigECamera::aquireImage(J_tIMAGE_INFO* imageInfo, uint8_t *buffer)
checks for the pixel format:
if (BufferInfo.iPixelType == J_GVSP_PIX_MONO8 || BufferInfo.iPixelType
to directly copy the pixel data and not convert them with
J_Image_MallocEx() if they are already MONO8 or MONO16.
(converting pixel data which are already in the right format is causing
the MallocEx() function to fail)
With the new version of the JAI SDK i get a "custom" PixelType back (on
3 different types of GigE cameras the same):
BufferInfo.iPixelType == 0x81080001 for 8 bit || BufferInfo.iPixelType
== 0x81100007 for 16 bit.
To overcome this I just added this two pixel types to the if statement
and the adapter works now fine for me on Windows 10.
I wasn't able to work out why the PixelType now includes the "custom" tag.
The definitions in Jai_Factory.h are:
// Indicate if pixel is monochrome or RGB
#define J_GVSP_PIX_MONO 0x01000000
#define J_GVSP_PIX_RGB 0x02000000
#define J_GVSP_PIX_COLOR 0x02000000
#define J_GVSP_PIX_CUSTOM 0x80000000
#define J_GVSP_PIX_COLOR_MASK 0xFF000000
// Indicate effective number of bits occupied by the pixel (including
// This can be used to compute amount of memory required to store an image.
#define J_GVSP_PIX_OCCUPY8BIT 0x00080000
#define J_GVSP_PIX_OCCUPY12BIT 0x000C0000
#define J_GVSP_PIX_OCCUPY16BIT 0x00100000
#define J_GVSP_PIX_OCCUPY24BIT 0x00180000
#define J_GVSP_PIX_OCCUPY32BIT 0x00200000
#define J_GVSP_PIX_OCCUPY36BIT 0x00240000
#define J_GVSP_PIX_OCCUPY48BIT 0x00300000
#define J_GVSP_PIX_EFFECTIVE_PIXEL_SIZE_MASK 0x00FF0000
#define J_GVSP_PIX_EFFECTIVE_PIXEL_SIZE_SHIFT 16
// Pixel ID: lower 16-bit of the pixel type
#define J_GVSP_PIX_ID_MASK 0x0000FFFF
Because of the expired Windows 7 support, this could get relevant for
some other users?
Without proper configuration of the Network adapter i got some strange
Be sure to follow the instructions for packet size and lost packet
What I needed to get everything to work:
Flow Control: Disabled
Jumbo Packet: 9014 --> camera packet size: 8192 (without Jumbo Packet
--> camera packet size: 1476)
Receive Buffers to maximum value
Interrupt Moderation Rate --> low for high frame rate (smal roi), high
for other cases?