private void Server_ServerNewRemoteFrameArrived(object sender, NewRemoteFrameArgs remoteEvent) { lock (lockerem) { if (remoteEvent.Gait.POV != POV.Unknown) { if (!RemoteKinect.Prepared) { RemoteKinect.Prepared = true; RaisePropertyChanged("CanRecord"); RaisePropertyChanged("CanPrepare"); RaisePropertyChanged("CanForceFPS"); } OnBodyReceived(remoteEvent.Gait); } if (remoteEvent.Frame != null) { RemoteKinect.Image = remoteEvent.Frame.ToBitmapSource(); RaisePropertyChanged("RemoteKinect"); } if (recording) { RemoteFrames.Enqueue(remoteEvent); } } }
private void ConsumeMessage(string message) { if (!string.IsNullOrWhiteSpace(message)) { try { NewRemoteFrameArgs newFrame = JsonConvert.DeserializeObject <NewRemoteFrameArgs>(message); ServerNewRemoteFrameArrived?.Invoke(this, newFrame); } catch {} } }
internal static List <KeyValuePair <long, Gait> > DigestFrames(bool isLocal, ref Queue <NewRemoteFrameArgs> frames, ref StringBuilder stringBuilder) { List <KeyValuePair <long, Gait> > gaits = new List <KeyValuePair <long, Gait> >(); int index = 0; NewRemoteFrameArgs previous = frames.Dequeue(); NewRemoteFrameArgs current; while (frames.Count > 0) { current = frames.Dequeue(); if (string.IsNullOrWhiteSpace(previous.Frame)) { previous.Frame = current.Frame; } stringBuilder.AppendFormat("{0}@{1}{2}", isLocal ? 1 : 0, previous.Frame, Environment.NewLine); gaits.Add(new KeyValuePair <long, Gait>(index, previous.Gait)); if (previous.FPS == 15) { index++; stringBuilder.AppendFormat("{0}@{1}{2}", isLocal ? 1 : 0, previous.Frame, Environment.NewLine); gaits.Add(new KeyValuePair <long, Gait>(index, previous.Gait.AvgGait(current.Gait))); } previous = current; index++; } if (string.IsNullOrWhiteSpace(previous.Frame)) { stringBuilder.AppendFormat("{0}@{1}{2}", isLocal ? 1 : 0, previous.Frame, Environment.NewLine); gaits.Add(new KeyValuePair <long, Gait>(index, previous.Gait)); } if (previous.FPS == 15) { index++; stringBuilder.AppendFormat("{0}@{1}{2}", isLocal ? 1 : 0, previous.Frame, Environment.NewLine); gaits.Add(new KeyValuePair <long, Gait>(index, previous.Gait)); } return(gaits); }
public void SendFrameToServer(NewRemoteFrameArgs messageArgs) { string message = null; try { message = JsonConvert.SerializeObject(messageArgs) + "@"; } catch { } try { if (message != null) { NetworkStream.BeginWrite(message, (IAsyncResult ar) => { NetworkStream.EndWrite(ar); }); } } catch { LostConnection(); } }