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 {}
     }
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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();
            }
        }