Vision Acquisition Software, March 2010 edition, came with a nice new feature. Chunk data support for GigE Vision cameras, in IMAQdx 3.6. This is a feature I have been waiting for for some time, so I gave it a try with my Basler Runner camera. I'm putting in some remarks/questions:
Solved! Go to Solution.
Sorry you had to find out the hard way that the documentation is a little "lacking" for this new feature. Hopefully this will be rectified in the next version...
I'll try to explain how things work and answer your questions along the way
Chunk Data must be implemented and enabled in two places: the camera and in the driver.
How it is enabled on the camera is (right now) very vendor specific. Some vendors might enable it by default, most require it to be enabled manually. I'm not sure if I've seen the issue you are seeing with the "Chunk Selector" feature on the Basler camera. The way it should work is that after enabling "Chunk Mode Active", you would then toggle the "Chunk Selector" through each available value and enable or disable that feature to be included in the chunk data the camera sends. You shouldn't need to edit the ICD file directly... If you just toggle the Chunk Mode Active to "true", move "Chunk Selector" to a valid value, and then click save, does it not work?
After enabling the various chunk data elements you want on the camera, you would then go into IMAQdx's "Chunk Data Decoding Enabled" attribute and set it true. This will cause IMAQdx to decode chunk data that is present from the camera and put it into the Custom Data in the Vision image. This is what you are seeing when you see any custom data with the key starting with "IMAQdxChunkData_". The name that follows is the name of the chunk data element (they are specified in the XML like attributes, so they live in the attribute namespace).
Now, the two custom data keys you were seeing called "IMAQdxTimestampHigh" and "IMAQdxTimestampLow" are actually NOT chunk data. They are data that is present in the standard image payload of a GigE camera. We have actually always returned those since the first version of IMAQdx with GigE Vision support. These should match up to the exact same values as what you get if you query the "IMAQdxChunkData_CameraAttributes::ChunkData::ChunkTimestamp" on a Basler camera. Interestingly though, as you found out already, when chunk data sending on the camera is enabled, these built-in timestamps will disappear. This is because in the 1.0x version of the GigE Vision spec, the packet format for chunk data did not have the same fields present in the data that the basic image payload has. The idea was that once you enabled chunk data, you had to get all those fields via chunk data. In the newer version of the GigE Vision spec (which is not yet implemented by IMAQdx and might not be on any cameras yet) there is a combined format that allows the usage of chunk data along with the standard image information (like timestamps, image height, etc) without needing them to be sent as explicit chunk data items. However, for all practical purposes, cameras should let you enable the exact same fields missing from the image payload and present them as chunk data instead.
Hope this helps explain some of the behavior,
I am having difficulties similar to the post above. Can anyone help?
I am trying to access a digital input to a Basler ACE camera using chunk data and LabVIEW but I am having little success.
I have been able to make the following settings to the camera (as per recommendation in the previous post):
Chunk Mode Active True
Chunk Selector Line Status All
I have also tried to enable the IMAQdx driver to use the chunk data by setting ChunkDataDecodingEnabled to true. However, when I try to do this LabView returns the error “Attribute not supported by camera”. According to the Basler manual though, chunk data clearly is supported.
Can you make any suggestions on what might be going wrong? Is this a camera issue or a Labview isssue?
Camera model Basler ACE AC640-100gm
Camera SN 2103220
NIC model Intel
NIC driver Basler driver 188.8.131.52156
Software LabVIEW 2009
Software driver IMAQdx 3.7
Can you try setting the "ChunkDataDecodingEnabled" attribute via the generic "ActiveAttribute" property rather than via the explicit property control for that item (or just enable it via MAX and save the camera file)? I believe there is an open CAR that that property node element for ChunkDataDecodingEnabled does not actually get handled properly although the underlying attribute does work.
Thanks for the response.
I might be wrong, but I don't think its possible to set the "ChunkDataDecodingEnabled" attribute using the generic "ActiveAttribute". I think the "ActiveAttribute" is only able to set camera settings (see attached file). The "ChunkDataDecodingEnabled" setting falls under the "AquisitionAttributes". Is there any other way to set this parameter if we think the underlying functionality does work?
I've attached a few screen shots of how the attributes are laid out as well as one from MAX.
Also, what is an "open CAR"? Is it like a convertible?
CAR=Corrective Action Request (a.k.a bug report). This means someone internally or externally already reported the issue and it is being tracked in our database.
There is functionally no difference between Camera Attributes and Acquisition Attributes besides the categories in their fully qualified names. The ActiveAttribute can set any attribute in the same fashion. You can either provide just the name "ChunkDataDecodingEnabled" or the fully qualified name with the entire category names. As I said before, you could also just go and change the default setting via MAX and save to your camera file (though you have to change the tree's filter to show All Attributes rather than the default of just Camera Attributes).