Open adt47 opened 2 years ago
Our camera also doesn't support Chunk transfers. And ia.remote.node_map.ChunkModeActive does not exist. Sticking with harvesters 1.3.2 until we can figure this out.
OS: windows 10
Harvester: 1.3.8
Genicam: 1.1.0
Python (Anaconda): 3.8.12
GenTL Producer: Critical Link
GenTL Viewer: 2.7.0
Camera: MityCAM-35MMFHDXS
In [5]: dir(ia.remote_device.node_map)
Out[5]:
['AcquisitionControl',
'AcquisitionFrameCount',
'AcquisitionFramePeriod',
'AcquisitionFrameRate',
'AcquisitionMode',
'AcquisitionStart',
'AcquisitionStop',
'AdcBlkClamp',
'AdcCdsGain',
'AdcSelection',
'AdcVgaGain',
'AmpGain',
'BadPixelReplacementEnable',
'BadPixelReplacementMap',
'DeviceControl',
'DeviceFirmwareVersion',
'DeviceManufacturerInfo',
'DeviceModelName',
'DeviceReset',
'DeviceSFNCVersionMajor',
'DeviceSFNCVersionMinor',
'DeviceSFNCVersionSubMinor',
'DeviceSelect',
'DeviceSerialNumber',
'DeviceVendorName',
'DeviceVersion',
'DigitalIOControl',
'ExecRead',
'ExecWrite',
'ExposureTime',
'FpgaVersion',
'FrameCountMax',
'Fx3Version',
'Height',
'HeightMax',
'ImageFormatControl',
'LineMode',
'LineSelector',
'LineSource',
'LineStatus',
'Max10CtrlVersion',
'Max10Version',
'MinFramePeriod',
'OffsetX',
'OffsetY',
'PayloadSize',
'PixelFormat',
'RegAddress',
'RegValue',
'Root',
'SensorHeight',
'SensorPeekPoke',
'SensorWidth',
'SoftwareBuildDate',
'TestControl',
'TestPattern',
'TestPendingAck',
'TransportLayerControl',
'TriggerActivation',
'TriggerMode',
'TriggerSelector',
'UserOutputSelector',
'UserOutputValue',
'VSkip',
'Voltage',
'VoltageSelect',
'Width',
'WidthMax',
...
Describe the Issue I am trying to stream a U3V machine vision camera from SVS-Vistek. The call to ia.fetch() is contained in a loop which returns a single image. The second time through the loop ia.fetch() never returns and ends up timing out. At least this is what happens when using the transport layer file mvGenTLProducer.cti provided by MatrixVision. If I use the file sv_u3v_tl_x64.cti provided by SVS-Vistek, the first call to ia.fetch() fails due to "Invalid layout of buffer attached to chunk parser" exception.
To Reproduce Steps to reproduce the behavior:
Sample Code I can show a piece of code that demonstrates the reported phenomenon:
If yes, please provide a sample code:
If applicable, please paste the actual output (its whole traceback, etc) here: This is the output using the transport layer from MatrixVision:
This is the output using the transport layer from SVS-Vistek:
Expected Behavior I expect multiple frames to be grabbed from the camera and displayed using OpenCV (OpenCV display code was removed to keep this short).
Configuration
Reproducibility
This phenomenon can be stably reproduced:
This happens every time I run the code.
Actions You Have Taken
Additional context I can stream the camera using a provided GUI from SVS-Vistek and their transport layer file. There is a script provided by MatrixVision, that has the same behavior as my code using their transport layer file (I get one image then wait forever for the second). When coding in C/C++ with the SVS-Vistek SDK, I have to declare the number of buffers at 4; I don't know if this relevant or how I would do this using harvesters. Also, in the print out you will notice a couple of False prints. I put this statement in the fetch() method on line 2379 of core.py. It prints the result of self.thread_image_acquisition.is_running(), so the acquisition thread is not running.