2014-05-12 4 views
0

Kinect 기울기 컨트롤 (Kinect Explorer 툴킷 샘플의 것과 비슷하지만 스크롤 막대만으로 구성)에서 작업하고 있습니다. 기본 COM에 의한Kinect의 ElevationAngle을 설정하면 COM 기반 InvalidOperationException이 무작위로 throw됩니다.

CurrentKinectSensor.ElevationAngle = value; 

원인 무작위로 System.InvalidOperationException :이 잘하지만 설정 경사각을 작동

This API has returned an exception from an HRESULT: 0x800704D5 

System.InvalidOperationException was unhandled 
HResult=-2146233079 
Message=This API has returned an exception from an HRESULT: 0x800704D5 
Source=Microsoft.Kinect 
InnerException: System.Runtime.InteropServices.COMException 
HResult=-2147023659 
Message=The operation could not be completed. A retry should be performed. (Exception 
from HRESULT: 0x800704D5) 
ErrorCode=-2147023659 
InnerException: 

난 단지 예외를 처리하여 처리 할 수 ​​있지만, 그렇게하지 이유가 무엇인지 정확히 이해합니다.

지금까지 Kinect가 이전의 Kinect 컨트롤러 변경의 물리적 기울기를 완료하기 전에 ElevationAngle 속성의 새 값을 설정한다는 사실과 관련이 있다는 것을 발견했습니다.

예외가 발생할 확률이 높아집니다. 즉, ElevationAngle 속성을 너무 자주 설정하면 예외가 발생합니다.

ElevationAngle 설정 사이의 최소 허용 지연에 대한 750ms로 테스트되었습니다하지만 난 더 오래 지속될 수로 변경하는 각도에 따라 달라집니다 것 같아요.

Kinect 센서가 물리적으로 기울어 진 작업을 마치고 다음에 준비가되었는지 어떻게 알 수 있습니까?

답변

2

키 넥트가 기울어 진 것을 알 수는 있지만 한 번만 감독하는 방법은 없습니다. MSDN에서 다음과 같이 말합니다.

마모를 줄이려면 응용 프로그램에서 천체 각도를 초당 두 번 이상 변경해야합니다. 또한 15 회 연속 변경 한 후 최소 20 초를 허용해야합니다 ( ).

따라서 오류는 두 가지 상황에서 서로 다른 값을 빠르게 변경하거나 15 가지 방법으로 카메라를 쉬게하지 않아도됩니다.

Kinect 각도의 getter/setter 주위에 항상 try-catch를 넣으십시오.