2012-12-27 2 views
2

Kinect SDK 버전 1.6을 사용하여 Kinect 응용 프로그램을 구축하고 있습니다. Kinect Studio로 .xed 파일을 기록한 다음 해당 .xed 파일을 사용하여 매번 Kinect 센서를 연결하지 않고도 내 응용 프로그램을 테스트하고 싶습니다.Kinect 응용 프로그램을 Kinect Studio에 연결하십시오.

.xed 파일을 성공적으로 기록했습니다. 이제 센서 대신 .xed 파일을 입력으로 사용하여 응용 프로그램을 실행하려고합니다. 문제는 내 앱이 처음으로로드 될 때 연결된 센서를 확인하고 존재하는 경우 연결합니다. 하나가 존재하지 않으면 연결할 수없고 종료해야합니다. 그러나 Studio가 실행중인 Kinect 응용 프로그램에 연결하려면 Kinect Studio를로드 할 때 내 앱이 실행 중이어야합니다. 그래서 제 질문은 - 디자인 패턴은 무엇입니까?

앱이 실행되기 시작하고 활성화 된 센서를 기다리면 연결 하시겠습니까? 또는 Studio가 실행 중이고 Kinect 응용 프로그램이 시작될 때까지 기다렸다가 응용 프로그램에 연결해야합니까? Microsoft에서 제공하는 모든 예제는 연결된 장치를 한 번 확인한 다음 존재하지 않는 경우 종료합니다.

당신은 때 키 넥트 센서의 상태 변경에 대한 이벤트 처리기를 추가 할 수 있습니다

답변

1

: 상태 변화와 센서를 연결하면 정상적으로 시작할 때하던대로

KinectSensor.KinectSensors.StatusChanged += Kinect_StatusChanged; 

그런 다음, 당신이 당신의 센서를 초기화 할 수 있습니다 :

void Kinect_StatusChanged(object sender, StatusChangedEventArgs e) 
{ 
    switch (e.Status) 
    { 
     case KinectStatus.Connected: 
      if (kinectSensor == null) 
      { 
       kinectSensor = e.Sensor; 
       Initialize(); 
      } 
      break; 
     case KinectStatus.Disconnected: 
      if (kinectSensor == e.Sensor) 
      { 
       Clean(); 
       // Notify user, change state of APP appropriately 
      } 
      break; 
     case KinectStatus.NotReady: 
      break; 
     case KinectStatus.NotPowered: 
      if (kinectSensor == e.Sensor) 
      { 
       Clean(); 
       // Notify user, change state of APP appropriately 
      } 
      break; 
     default: 
      // Throw exception, notify user or ignore depending on use case 
      break; 
    } 
} 

그래서 요약, 내가 시작할 때 사용하는 패턴은 다음과 같습니다

  1. 은 StatusChanged 이벤트에 키 넥트 센서의 상태가 변경, 내 응용 프로그램이 적절하게 반응 할 때 다음 키 넥트 센서

을 초기화 할 수

  • 시도를 구독합니다.

    참고로,이 유형의 패턴은이 특정 사용 사례뿐만 아니라 모든 응용 프로그램에 적용되어야합니다. 모든 Kinect 지원 앱은 Kinect 센서가 연결 해제되어 있는지 여부에 따라 적절히 대응해야합니다.

  • +1

    끝내 주셔서 감사합니다. 나는 며칠 안에 이것을 구현할 수있는 기회를 갖게 될 것이다. 문제가 있다면 게시 할 것이다. – cmg7t