2014-12-11 2 views
2

내 Kinect의 모터를 이동하려고합니다. 꽤 간단 해 보이지만 작동하지 않고 앱이 정지됩니다.Kinect 모터를 움직일 때 어플리케이션이 멈춤

코드 뒤에 :

private void MotorSliderValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) 
    { 
     Angle.Content = (int)MotorSlider.Value; 
    } 

    private void ButtonClick(object sender, RoutedEventArgs e) 
    { 
     sensor.ElevationAngle = (int)Angle.Content; 
    } 

XAML :

<Slider x:Name="MotorSlider" HorizontalAlignment="Left" Height="23" Margin="10,10,0,0" Grid.Row="2" VerticalAlignment="Top" Width="262" Maximum="27" SmallChange="1" Minimum="-27" ValueChanged="MotorSliderValueChanged"/> 
<Label x:Name="Angle" Content="0" HorizontalAlignment="Left" Height="32" Margin="277,10,0,0" Grid.Row="2" VerticalAlignment="Top" Width="43" FontSize="18"/> 
<Button Content="Change angle" HorizontalAlignment="Left" Height="32" Margin="336,10,0,0" Grid.Row="2" VerticalAlignment="Top" Width="102" Click="ButtonClick"/> 

은 동결을 얻는 이유는 모든 단서는?, 그것이를 drows 내가 비주얼 스튜디오 2013 WPF와 함께하고있는 중이 야, 이건 내 코드입니다 System.InvalidOperationException :이 API는 HRESULT에서 예외를 반환했습니다. 0x8007000D

감사합니다.

답변

1

이것은 전동 기울기가 너무 빠르므로 (즉, ElevationAngle 속성을 너무 빠르게 설정 한 경우) 발생할 수 있습니다. 공식 documentation에 따르면

:

당신은 연속 15 변경 후 나머지의 20 초 허용해야합니다. 응용 프로그램이 이러한 제한을 초과하는 경우 틸트 모터 각도가 고각 각도로 설정하려고 시도하는 동안 오류 코드이 발생할 수 있습니다.

이것은 또한 같은 페이지의 "커뮤니티 추가"절에서 확인 :

틸트 모터 한계를 초과하고 런타임이 휴식 할 수 있도록 틸트 모터를 잠근 경우, 이 속성에 액세스하려고 시도하면 잠금 기간 동안 InvalidOperationException이 발생합니다.

는, 즉, ElevationAngle 속성을 변경 한 후, 명시 적으로 1의 기간 동안이 속성의 다른 변경을 피하기 (I 어떤 샘플 기억이 안나요), I Microsoft에서 샘플에서 본이 문제를 해결하려면 35 초.

또한 Kinect 센서가 실행되고 있지 않을 때 ElevationAngle 속성을 변경하려고 시도하면 InvalidOperationException을 얻을 수 있습니다. 동일한 상기 페이지 :

넥트 센서 (즉, 시작 메소드가 호출되지 않은) 실행되지 않는 동안 ElevationAngle 속성 액세스되면, 에서 InvalidOperationException이 발생한다.