private void BodyFrameReader_FramedArrived(object sender, BodyFrameArrivedEventArgs e) { var reference = e.FrameReference.AcquireFrame(); using (BodyFrame frame = e.FrameReference.AcquireFrame()) { if (frame != null) { canvas.Children.Clear(); _bodies = new Body[frame.BodyFrameSource.BodyCount]; frame.GetAndRefreshBodyData(_bodies); IList <Body> trackedBodies = new List <Body>(); foreach (var body in _bodies) { if (body != null) { if (body.IsTracked) { trackedBodies.Add(body); // Draw skeleton. if (_displayBody) { canvas.DrawSkeleton(body); } } } } if (trackedBodies.Count > 0) { var bodyEventModel = new BodyEventModel(trackedBodies); wsClient.SendData(BodySerializer.SerializeBodies(bodyEventModel)); } } } }
public static string SerializeBodies(BodyEventModel bodyEvent) { Value jsonValue = new Value { Bodies = new List <JSONBody>() }; foreach (var body in bodyEvent.Bodies) { JSONBody jsonBody = new JSONBody { ID = body.TrackingId.ToString(), Joints = new List <JSONJoint>() }; foreach (var bodyJoint in body.Joints) { Joint joint = bodyJoint.Value; jsonBody.Joints.Add(new JSONJoint { Name = joint.JointType.ToString().ToLower(), X = joint.Position.X, Y = joint.Position.Y, Z = joint.Position.Z }); } jsonValue.Bodies.Add(jsonBody); } JSONEvent jsonEvent = new JSONEvent { Id = bodyEvent.Id, Event = bodyEvent.Event, Ts = bodyEvent.Timestamp, Value = jsonValue }; return(Serialize(jsonEvent)); }