Hi,
I’m using a Xavier NX production module with JetPack 4.6, with 3 IMX219 cameras connected via a leeptop A205 carrier board; with the device-tree updated to be correct for this carrier board.
All three cameras work fine using “nvgstcapture” with “–sensor_id” set to 0, 1 or 2.
I’m now developing C++ code to access the cameras with LibArgus.
The following code is meant to simply enumerate the cameras, and show the module-string for each camera:
This almost works, but prints out the same Module String for all three cameras: “jakku_bottomleft_RBP194”.
However, if I change to code to print out just one camera’s module string, and then run it three times for cameras 0, 1 and 2 separately, then it does indeed print out the correct, different, module strings: “jakku_bottomleft_RBP194”, “jakku_bottomright_RBP194”, and “jakku_centerleft_RBP194”.
Please could you help me understand why the original code (as shown above) doesn’t show the three different module strings as I would expect?
Hi air23zj,
I don’t have the files to hand right now, but I emailed leetop@leetop.top asking for the resources to get this working, and they replied very quickly with the device-tree file, so I expect you can just ask them directly for it.
They also sent a kernel, but I found that the device-tree worked with the most recent jetpack.
Hope this helps,
Chris
Thank you for your reply. Do you mean sample “13_multi_camera” - I don’t seem to have a sample named “multiSensor”.
This sample does use a for-loop to iterate through multiple cameras, in a very similar way to my code posted above. This is done in lines 393 to 409 in main.cpp of the sample code I have on my device.
This sample does not use getModuleString(), so will not demonstrate the issue.
I have changed my code to not use a for-loop, as you suggest, but I still see the problem:
When I would expect it to show a different module string for each camera.
If I run the code to show each camera by itself, then the output is as expected, showing the correct module name for each camera.
And if I change the order in which the camera device getModuleString() methods are called, then every camera device will show the module string for the first camera device requested.
Please can you advise what I am doing wrong?
If you run this code on a multi-camera system, do you see the module strings shown correctly?
Hi ShaneCCC,
Thank you, I have found the multiSensor sample.
This sample does not appear to directly address the issue I’m seeing, which is incorrect module strings.
And as far as I can see the code I posted above is creating and using the CameraProvider and ICameraProperties the same way as in the sample.
Do you see any error in the code I’ve posted?
Or are you perhaps able to run the code, and see whether this error is reproducible?
Looks like this API have problem. Need take time to do further debug.
Could you use iCameraProperties->getSensorPlacement().getName() for temp solution.