-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
F200 setOption freezes #29
Comments
I found a temporary way to at least get the information, that the setOption command did crash. It's really hacki so maybe some does have a better way.
|
@Wollimayer std::async is actually the best solution here (we talked about this internally yesterday), and likely will appear beneath the library layer sometime soon |
The question is, what causes this error ? The program crashes after the error is thrown ( probably because there is a child thread in an unknown state still active without a parent thread ). |
@Wollimayer can you give the dev branch a test? std::async wasn't the right solution here and we implemented a workaround using a (potentially) unsafe Windows-specific mechanism: https://github.com/IntelRealSense/librealsense/blob/dev/src/uvc-wmf.cpp#l488 The root cause is still unknown, but assumed to be a firmware bug. The UVC spec states that a control get/set shouldn't block infinitely. |
@ddiakopoulos I tried to use the dev branch and was able to capture a setOption failure. However it seems that this causes another error to quit the program (not always but sometimes). ucrtbase.dll does request a termination of the program after leaving my setOptionWithRetry test method (Without an error being thrown) :
(An even strange effect was caused by multiple retries to start the capture process. After ~10 tries i receive two kinds of error when accessing the rs::context
and
A reboot solved those problems, but this might be a side effect of the changes in the setOption part. Is there any way to bypass this complication by using another framework ( libuvc is available for windows , could this 'fix' the problem ?) |
I wonder if you are working with an unsupported USB controller. I have encountered certain machines that throw KSProperty errors inconsistently. Sometimes a reboot or plug/unplug of the hardware clears the issue, but usually until the app runs once, then won't reinitialize. There's no comprehensive list of unsupported hardware, but can you list your machine, processor, and USB controller details? There might be a match with the ones I've found. |
Windows 8.1 USB Controller: Hope that's the right information . |
@Wollimayer it's unlikely that switching backends will fix the problem (I also tried for a couple days a few months ago to get libuvc/libusb working with bulk transfers on Windows 8.1 with no luck). Renesas controllers should definitely work. Can you isolate the bug to 1 camera (the one with 2.6 firmware) and attach a minimal app (as source-code) used to cause the error? One of the difficulties with your issue is that we are unable to replicate here. |
Closing for lack of new information. |
…stall-targets Added missing install targets
…_integration add profile hash
When using multible F200 Sensors I encounter a problem when setting the laserpower.
Sometimes the application freeze and does not recover during the setOption cmd.
No error is thrown and waiting for an hour did not solve this problem. It seems to get worse, the more cpu activity runs in the background.
(Using Windows 8.1 , i5-4460 core at 3.2GHz and 8 Gig of ram)
The problem seems to occure in uvc-wmf.cpp.
device.subdevices[subdevice].ks_control->KsProperty((PKSPROPERTY)&node, sizeof(KSP_NODE), data, len, nullptr)
is executed but never completed.
The text was updated successfully, but these errors were encountered: