private void DiscoverSensor() { this.Sensor = KinectSensor.KinectSensors.FirstOrDefault(); // ustawienienie zmiennej Sensor, przechowujące parametry połączenia z Kinect'em if (null != this.Sensor) // warunek zostanie wykonany w przypadku nawiązania połączenia z sensorem Kinect { this.LastStatus = this.Sensor.Status; // ustawienie aktualnego statusu połączenia if (this.LastStatus == KinectStatus.Connected) // sprawdzenie, czy status osiągnął wartość "Connected" { try { this.Sensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Default; this.Sensor.DepthStream.Range = DepthRange.Default; this.Sensor.SkeletonStream.EnableTrackingInNearRange = false; // zezwolenie na przesyłanie danych dla "NUI Skeleton Tracking" w trybie bliskim (gdy nie wszytskie części składowe osoby śledzonej są widoczne z powodu bliskiej pozycji względem urządzenia) var parameters = new TransformSmoothParameters { Smoothing = 0.75f, Correction = 0.0f, Prediction = 0.0f, JitterRadius = 0.05f, MaxDeviationRadius = 0.04f }; this.Sensor.SkeletonStream.Enable(parameters); // włączenie przesyłania danych z sensora dotyczących "NUI Skeleton Tracking" this.Sensor.ColorStream.Enable(this.colorImageFormat); // włączenie przesyłania danych z sensora od kamery RGB this.Sensor.DepthStream.Enable(this.depthImageFormat); // włączenie przesyłania danych z sensora od kamery głębokości this.Sensor.DepthStream.Range = DepthRange.Default; // try { this.Sensor.Start(); // uruchom działanie sensora względem danej aplikacji InteractionClient mic = new InteractionClient(); this.intStream = new InteractionStream(Sensor, mic); } catch (IOException) { this.intStream = null; this.Sensor = null; // w przypadku błędu usunąć ustawione wcześniej dane } } catch (InvalidOperationException) { this.Sensor = null; // w przypadku błędu usunąć ustawione wcześniej dane this.intStream = null; } } } else { this.LastStatus = KinectStatus.Disconnected; // gdy połączenie nie zostało poprawnie zrealizowane ustaw status na "Disconnected" } }
/// <summary> /// Creates the specified server protocol configuration. /// Use this method for FaultTolerance : WarmStandby /// Warm standby switch over is set to unlimited time. /// </summary> /// <param name="serverUri">The server URI.</param> /// <param name="userName">Name of the application user.</param> /// <param name="interactionClientType">Type of the interaction client.</param> /// <param name="warmStandbyUri">Warm standby URI.</param> /// <param name="warmStandByTimeOut">Warm stand by time out.</param> /// <param name="warmStandByAttempts">Warm stand by attempts.</param> public void Create(Uri serverUri, string userName, InteractionClient interactionClientType, Uri warmStandbyUri, Int32 warmStandByTimeOut, Int16 warmStandByAttempts) { Protocolconfiguration = null; Protocolconfiguration = new InteractionServerConfiguration(ServerType.Ixnserver.ToString()); Protocolconfiguration.Uri = serverUri; Protocolconfiguration.ClientName = "AID_" + userName; Protocolconfiguration.FaultTolerance = FaultToleranceMode.WarmStandby; Protocolconfiguration.ClientType = interactionClientType; Protocolconfiguration.WarmStandbyUri = warmStandbyUri; Protocolconfiguration.WarmStandbyTimeout = warmStandByTimeOut; Protocolconfiguration.WarmStandbyAttempts = warmStandByAttempts; }
/// <summary> /// Creates the specified server URI. /// </summary> /// <param name="serverUri">The server URI.</param> /// <param name="userName">Name of the user.</param> /// <param name="faultTolerance">The fault tolerance.</param> /// <param name="interactionClientType">Type of the interaction client.</param> /// <param name="addpServerTimeOut">The addp server time out.</param> /// <param name="addpClientTimeOut">The addp client time out.</param> /// <param name="addpTrace">The addp trace.</param> public void Create(Uri serverUri, string userName, FaultToleranceMode faultTolerance, InteractionClient interactionClientType, Int32 addpServerTimeOut, Int32 addpClientTimeOut, AddpTraceMode addpTrace) { Protocolconfiguration = null; Protocolconfiguration = new InteractionServerConfiguration(ServerType.Ixnserver.ToString()); Protocolconfiguration.Uri = serverUri; Protocolconfiguration.ClientName = "AID_" + userName; Protocolconfiguration.FaultTolerance = faultTolerance; Protocolconfiguration.ClientType = interactionClientType; Protocolconfiguration.UseAddp = true; Protocolconfiguration.AddpServerTimeout = addpServerTimeOut; Protocolconfiguration.AddpClientTimeout = addpClientTimeOut; Protocolconfiguration.AddpTrace = addpTrace.ToString(); }
/// <summary> /// Creates the specified server URI. /// </summary> /// <param name="serverUri">The server URI.</param> /// <param name="userName">Name of the user.</param> /// <param name="faultTolerance">The fault tolerance.</param> /// <param name="interactionClientType">Type of the interaction client.</param> public void Create(Uri serverUri, string userName, FaultToleranceMode faultTolerance, InteractionClient interactionClientType) { Protocolconfiguration = null; Protocolconfiguration = new InteractionServerConfiguration(ServerType.Ixnserver.ToString()); Protocolconfiguration.Uri = serverUri; Protocolconfiguration.ClientName = "AID_" + userName; Protocolconfiguration.ClientType = interactionClientType; Protocolconfiguration.FaultTolerance = faultTolerance; }
private void DiscoverSensor() { this.Sensor = KinectSensor.KinectSensors.FirstOrDefault(); // ustawienienie zmiennej Sensor, przechowujące parametry połączenia z Kinect'em if (null != this.Sensor) // warunek zostanie wykonany w przypadku nawiązania połączenia z sensorem Kinect { this.LastStatus = this.Sensor.Status; // ustawienie aktualnego statusu połączenia if (this.LastStatus == KinectStatus.Connected) // sprawdzenie, czy status osiągnął wartość "Connected" { try { this.Sensor.SkeletonStream.TrackingMode = SkeletonTrackingMode.Default; this.Sensor.DepthStream.Range = DepthRange.Default; this.Sensor.SkeletonStream.EnableTrackingInNearRange = false; // zezwolenie na przesyłanie danych dla "NUI Skeleton Tracking" w trybie bliskim (gdy nie wszytskie części składowe osoby śledzonej są widoczne z powodu bliskiej pozycji względem urządzenia) var parameters = new TransformSmoothParameters { Smoothing = 0.75f, Correction = 0.0f, Prediction = 0.0f, JitterRadius = 0.05f, MaxDeviationRadius = 0.04f }; this.Sensor.SkeletonStream.Enable(parameters); // włączenie przesyłania danych z sensora dotyczących "NUI Skeleton Tracking" this.Sensor.ColorStream.Enable(this.colorImageFormat); // włączenie przesyłania danych z sensora od kamery RGB this.Sensor.DepthStream.Enable(this.depthImageFormat); // włączenie przesyłania danych z sensora od kamery głębokości this.Sensor.DepthStream.Range = DepthRange.Default; // try { this.Sensor.Start(); // uruchom działanie sensora względem danej aplikacji InteractionClient mic = new InteractionClient(); this.intStream = new InteractionStream(Sensor, mic); } catch (IOException) { this.intStream = null; this.Sensor = null; // w przypadku błędu usunąć ustawione wcześniej dane } } catch (InvalidOperationException) { this.Sensor = null; // w przypadku błędu usunąć ustawione wcześniej dane this.intStream = null; } } } else { this.LastStatus = KinectStatus.Disconnected; // gdy połączenie nie zostało poprawnie zrealizowane ustaw status na "Disconnected" } }