genicam / harvesters

Image Acquisition Library for GenICam-based Machine Vision System
Apache License 2.0
525 stars 91 forks source link

h.create(0) freezes #460

Open pers972 opened 5 months ago

pers972 commented 5 months ago

Try this code

`from harvesters.core import Harvester, ImageAcquirer

h = Harvester() h.add_file(r"C:\Users\SGL\Desktop\MATRIX VISION\mvIMPACT Acquire\bin\x64\mvGenTLProducer.cti") h.update() print(len(h.device_info_list)) print(h.device_info_list[0])

print(h.create(0)) `

And get this output C:\Users\SGL\PycharmProjects\pythonProject.venv\Scripts\python.exe C:\Users\SGL\PycharmProjects\pythonProject\ff.py 1 {'access_status': 1, 'displayname': 'Specim FX10e(70:f8:e7:b0:09:d0)', 'id': 'FX10e(70:f8:e7:b0:09:d0)', 'model': 'FX10e', 'parent': <genicam.gentl.Interface; proxy of <Swig Object of type 'std::shared_ptr< GenTLCpp::TLInterface > *' at 0x0000020C922E8D20> >, 'serial_number': '077000057871', 'thisown': True, 'tl_type': 'GEV', 'user_defined_name': ' ', 'vendor': 'Specim', 'version': 'Version 1.3'}

I'm trying different combination of versions Matrix Vision and Python. And program freezes. Why Imagerequirer don't creating? Thanks for all recommendation.

eli-osherovich commented 5 months ago

We also started to observe a similar behavior. Along with corrupted buffers as in #452

@kazunarikudo it seems that something might be broken in either latest mvGenTLproducer or genicam

sunavlis commented 5 months ago

Hi @pers972

Which version of Python, Harvesters, GenICam package and mvGenTLProducer.cti do you use?

As well which kind of Windows are you using?

Maybe you can also enable additional log information in Harvester (here is a Python code snipped to do so..):

import logging
import warnings
warnings.simplefilter('always') 

FORMAT = '%(name)s - %(levelname)s %(asctime)s: %(message)s'
logging.basicConfig(level=logging.DEBUG, format=FORMAT)

h = Harvester(logger=logging.getLogger("harvesters"))

Just to be said: I'm sorry but I wasn't able to reproduce the issue with mvGenTLProducer version 3.2, Harvesters 1.4.3 and genicam 1.4.0.

eli-osherovich commented 5 months ago

@sunavlis I will add some logging, indeed. We see this camera freeze mostly when we restart the streaming. The first connection usually works okay (but not always).

The issue is not reproducible in 100% of the cases, which makes it difficult to debug. We are using mvGenTLProducer version 2.50.1, harvesters==1.4.3, genicam==1.4.0

To circumvent the corrupted buffers issue, we set a high number of buffers (it seems to increase the probability to hang the camera)

P. S. If you are using the version 3.x of mvGenTLProducer without buying it, it does not really stream the video...

pers972 commented 5 months ago

Hi @pers972

Which version of Python, Harvesters, GenICam package and mvGenTLProducer.cti do you use?

As well which kind of Windows are you using?

Maybe you can also enable additional log information in Harvester (here is a Python code snipped to do so..):

import logging
import warnings
warnings.simplefilter('always') 

FORMAT = '%(name)s - %(levelname)s %(asctime)s: %(message)s'
logging.basicConfig(level=logging.DEBUG, format=FORMAT)

h = Harvester(logger=logging.getLogger("harvesters"))

Just to be said: I'm sorry but I wasn't able to reproduce the issue with mvGenTLProducer version 3.2, Harvesters 1.4.3 and genicam 1.4.0.

This is my logs....

harvesters - INFO 2024-06-20 10:36:46,597: created: <harvesters.core.Harvester object at 0x000001F617753080> harvesters - INFO 2024-06-20 10:36:46,597: added: C:\Program Files\MATRIX VISION\mvIMPACT Acquire\bin\x64\mvGenTLProducer.cti to <harvesters.core.Harvester object at 0x000001F617753080> harvesters - DEBUG 2024-06-20 10:36:46,597: discarded device information: <harvesters.core.Harvester object at 0x000001F617753080> harvesters - DEBUG 2024-06-20 10:36:46,623: initialized file: C:\Program Files\MATRIX VISION\mvIMPACT Acquire\bin\x64\mvGenTLProducer.cti harvesters - DEBUG 2024-06-20 10:36:46,715: fetched url: Local:MATRIXVISION_GenTL_System_10_1_0.xml;100000000;a76f harvesters - DEBUG 2024-06-20 10:36:46,718: created: C:\Users\SGL\AppData\Local\Temp\20240620103646_lxyz0mrj\MATRIXVISION_GenTL_System_10_1_0.xml harvesters - DEBUG 2024-06-20 10:36:46,734: deleted: C:\Users\SGL\AppData\Local\Temp\20240620103646_lxyz0mrj\MATRIXVISION_GenTL_System_10_1_0.xml harvesters - DEBUG 2024-06-20 10:36:46,734: opened: {AF542A5A-E6D3-4f3d-9908-4A89AE21105A} :: <genicam.gentl.GenTLProducer; proxy of <Swig Object of type 'std::sharedptr< GenTLCpp::GenTLProducer > *' at 0x000001F637EB9F00> > harvesters - DEBUG 2024-06-20 10:36:46,739: opened: c8:7f:54:64:5c:0b{43132965-6A7F-472E-9977-5637212F176E} :: {AF542A5A-E6D3-4f3d-9908-4A89AE21105A} :: <genicam.gentl.GenTLProducer; proxy of <Swig Object of type 'std::shared_ptr< GenTLCpp::GenTLProducer > ' at 0x000001F637EFD060> > harvesters - DEBUG 2024-06-20 10:36:46,739: fetched url: Local:MATRIXVISION_GenTL_Interface_15_0_0.xml;100000000;127e8 harvesters - DEBUG 2024-06-20 10:36:46,740: created: C:\Users\SGL\AppData\Local\Temp\20240620103646_dat4rq83\MATRIXVISION_GenTL_Interface_15_0_0.xml harvesters - DEBUG 2024-06-20 10:36:46,759: deleted: C:\Users\SGL\AppData\Local\Temp\20240620103646_dat4rq83\MATRIXVISION_GenTL_Interface_15_00.xml harvesters - DEBUG 2024-06-20 10:36:48,862: opened: d8:80:83:d0:53:45{F4EE21D9-52FE-4328-96B5-0C8559E03D04} :: {AF542A5A-E6D3-4f3d-9908-4A89AE21105A} :: <genicam.gentl.GenTLProducer; proxy of <Swig Object of type 'std::shared_ptr< GenTLCpp::GenTLProducer > ' at 0x000001F637EFD180> > harvesters - DEBUG 2024-06-20 10:36:48,862: fetched url: Local:MATRIXVISION_GenTL_Interface_15_0_0.xml;100000000;127e8 harvesters - DEBUG 2024-06-20 10:36:48,863: created: C:\Users\SGL\AppData\Local\Temp\20240620103648_1brvi3v5\MATRIXVISION_GenTL_Interface_15_0_0.xml harvesters - DEBUG 2024-06-20 10:36:48,879: deleted: C:\Users\SGL\AppData\Local\Temp\20240620103648_1brvi3v5\MATRIXVISION_GenTL_Interface_15_0_0.xml {'access_status': 1, 'displayname': 'Specim FX10e(70:f8:e7:b0:09:d0)', 'id': 'FX10e(70:f8:e7:b0:09:d0)', 'model': 'FX10e', 'parent': <genicam.gentl.Interface; proxy of <Swig Object of type 'std::shared_ptr< GenTLCpp::TLInterface > ' at 0x000001F637EFD0F0> >, 'serial_number': '077000057871', 'tl_type': 'GEV', 'user_defined_name': ' ', 'vendor': 'Specim', 'version': 'Version 1.3'} harvesters - INFO 2024-06-20 10:36:49,880: updated: <harvesters.core.Harvester object at 0x000001F617753080> harvesters - DEBUG 2024-06-20 10:36:49,916: fetched url: Local:MATRIXVISION_GenTL_Device_8_0_0.xml;100000000;7f57 harvesters - DEBUG 2024-06-20 10:36:49,918: created: C:\Users\SGL\AppData\Local\Temp\20240620103649_raqbobvn\MATRIXVISION_GenTL_Device_8_0_0.xml harvesters - DEBUG 2024-06-20 10:36:49,944: deleted: C:\Users\SGL\AppData\Local\Temp\20240620103649_raqbobvn\MATRIXVISION_GenTL_Device_8_00.xml harvesters - DEBUG 2024-06-20 10:36:49,945: opened: FX10e(70:f8:e7:b0:09:d0) :: c8:7f:54:64:5c:0b{43132965-6A7F-472E-9977-5637212F176E} :: {AF542A5A-E6D3-4f3d-9908-4A89AE21105A} :: <genicam.gentl.GenTLProducer; proxy of <Swig Object of type 'std::shared_ptr< GenTLCpp::GenTLProducer > ' at 0x000001F637EFD2A0> > harvesters - DEBUG 2024-06-20 10:36:49,948: fetched url: Local:FX10e.zip;400000;bbd1 harvesters - DEBUG 2024-06-20 10:36:50,516: created: C:\Users\SGL\AppData\Local\Temp\20240620103650_d97eop_k\FX10e.zip harvesters - DEBUG 2024-06-20 10:36:50,671: deleted: C:\Users\SGL\AppData\Local\Temp\20240620103650_d97eop_k\FX10e.zip

pers972 commented 5 months ago

Hi @pers972

Which version of Python, Harvesters, GenICam package and mvGenTLProducer.cti do you use?

As well which kind of Windows are you using?

Maybe you can also enable additional log information in Harvester (here is a Python code snipped to do so..):

import logging
import warnings
warnings.simplefilter('always') 

FORMAT = '%(name)s - %(levelname)s %(asctime)s: %(message)s'
logging.basicConfig(level=logging.DEBUG, format=FORMAT)

h = Harvester(logger=logging.getLogger("harvesters"))

Just to be said: I'm sorry but I wasn't able to reproduce the issue with mvGenTLProducer version 3.2, Harvesters 1.4.3 and genicam 1.4.0.

I'm using windows 11, what about versions python i'm trying different 3.7,3.8,3.9,3.11; Versions of MAtrix Vision 2.50.0, 2.50.1, 2.46.2, 2.3.4, harvesters 1.3.6 or last version. At my other PC working 1.3.6 harvesters and MATRIX VISION 2.3.4 with python 3.7, but when i'm installed on other PC this combination not worked