public void onTimeUpdate(object source, EventArgs e) { if (countDown >= 5 & countDown <= 8) { lblRecordingStatus.Content = "استعد: " + (countDown - recordingTime).ToString() + " ثواني."; } else if (countDown > 0 & countDown <= 10) { recordingStatus = true;//trigger capture skeleton data @WindowLoaded this.lblRecordingStatus.Content = "جاري التسجيل الآن ..."; } else { // CountDownTime at 0, // 1. stop saving data >recordingStatus==false // 2. serialize data on HERE // 3. stop the timer // lblRecordingStatus.Content = "تم التسجيل بنجاح!"; recordingStatus = false; FileManipulation.serialize(mySkeletonList, stream); recordTimer.Stop(); if (this.sensor != null) { sensor.Stop(); } } countDown--; }
public ReplayWindow() { InitializeComponent(); this.Show(); mySkeleton = new Skeleton(); mySkeletonList = new List <Skeleton>(); mySkeletonList = (List <Skeleton>)FileManipulation.diserialise(); }
//replay Part private void replaySkeleton(Skeleton replaySkeleton) { sw1 = new StreamWriter(filePath1, true); sw2 = new StreamWriter(filePath2, true); sw3 = new StreamWriter(filePath3, true); sw4 = new StreamWriter(filePath4, true); sw5 = new StreamWriter(filePath5, true); sw6 = new StreamWriter(filePath6, true); sw7 = new StreamWriter(filePath7, true); sw8 = new StreamWriter(filePath8, true); sw9 = new StreamWriter(filePath9, true); sw10 = new StreamWriter(filePath10, true); sw11 = new StreamWriter(filePath11, true); sw12 = new StreamWriter(filePath12, true); sw13 = new StreamWriter(filePath13, true); sw14 = new StreamWriter(filePath14, true); sw15 = new StreamWriter(filePath15, true); sw16 = new StreamWriter(filePath16, true); sw17 = new StreamWriter(filePath17, true); sw18 = new StreamWriter(filePath18, true); Skeleton[] skeletons = new Skeleton[1]; skeletons[0] = replaySkeleton; using (DrawingContext dc = this.drawingGroup.Open()) { // Draw a transparent background to set the render size dc.DrawRectangle(Brushes.DarkBlue, null, new Rect(0.0, 0.0, RenderWidth, RenderHeight)); if (skeletons.Length != 0) { foreach (Skeleton skeleton in skeletons) { RenderClippedEdges(skeleton, dc); this.DrawBonesAndJoints(skeleton, dc); double rightWristShoulderAngle = getAngle(skeleton, JointType.WristRight, JointType.ElbowRight, JointType.ShoulderRight); double rightShoulderCenterAngle = getAngle(skeleton, JointType.ElbowRight, JointType.ShoulderRight, JointType.ShoulderCenter); double leftWristShoulderAngle = getAngle(skeleton, JointType.WristLeft, JointType.ElbowLeft, JointType.ShoulderLeft); double leftShoulderCenterAngle = getAngle(skeleton, JointType.ElbowLeft, JointType.ShoulderLeft, JointType.ShoulderCenter); double headSpineAngle = getAngle(skeleton, JointType.Head, JointType.ShoulderCenter, JointType.Spine); double rightLegAngle = getAngle(skeleton, JointType.AnkleRight, JointType.KneeRight, JointType.HipRight); double rightHipAngle = getAngle(skeleton, JointType.KneeRight, JointType.HipRight, JointType.HipCenter); double betweenHipsAngle = getAngle(skeleton, JointType.HipLeft, JointType.HipCenter, JointType.HipRight); double leftLegAngle = getAngle(skeleton, JointType.AnkleLeft, JointType.KneeLeft, JointType.HipLeft); double leftHipAngle = getAngle(skeleton, JointType.KneeLeft, JointType.HipLeft, JointType.HipCenter); double leftSpineThighAngle = getAngle(skeleton, JointType.KneeLeft, JointType.HipLeft, JointType.Spine); double rightSpineThighAngle = getAngle(skeleton, JointType.KneeRight, JointType.HipRight, JointType.Spine); double rightShoulderSpineAngle = getAngle(skeleton, JointType.ElbowRight, JointType.ShoulderRight, JointType.Spine); double leftShoulderSpineAngle = getAngle(skeleton, JointType.ElbowLeft, JointType.ShoulderLeft, JointType.Spine); double rightWristSpineAngle = getAngle(skeleton, JointType.WristRight, JointType.ShoulderCenter, JointType.Spine); double leftWristSpineAngle = getAngle(skeleton, JointType.WristLeft, JointType.ShoulderCenter, JointType.Spine); double rightHandFingerAngle = getAngle(skeleton, JointType.HandRight, JointType.WristRight, JointType.ElbowRight); double leftHandFingerAngle = getAngle(skeleton, JointType.HandLeft, JointType.WristLeft, JointType.ElbowLeft); FileManipulation.writeToTextFile(rightWristShoulderAngle, sw1); FileManipulation.writeToTextFile(rightShoulderCenterAngle, sw2); FileManipulation.writeToTextFile(leftWristShoulderAngle, sw3); FileManipulation.writeToTextFile(leftShoulderCenterAngle, sw4); FileManipulation.writeToTextFile(headSpineAngle, sw5); FileManipulation.writeToTextFile(rightLegAngle, sw6); FileManipulation.writeToTextFile(rightHipAngle, sw7); FileManipulation.writeToTextFile(betweenHipsAngle, sw8); FileManipulation.writeToTextFile(leftLegAngle, sw9); FileManipulation.writeToTextFile(leftHipAngle, sw10); FileManipulation.writeToTextFile(leftSpineThighAngle, sw11); FileManipulation.writeToTextFile(rightSpineThighAngle, sw12); FileManipulation.writeToTextFile(rightShoulderSpineAngle, sw13); FileManipulation.writeToTextFile(leftShoulderSpineAngle, sw14); FileManipulation.writeToTextFile(rightHandFingerAngle, sw15); FileManipulation.writeToTextFile(rightWristSpineAngle, sw16); FileManipulation.writeToTextFile(leftWristSpineAngle, sw17); FileManipulation.writeToTextFile(leftHandFingerAngle, sw18); //angleLabel.Content = " " + rightWristShoulderAngle; frameNo.Content = "عدد الهياكل: " + skeletonCount; if (skeleton.TrackingState == SkeletonTrackingState.PositionOnly) { dc.DrawEllipse(this.centerPointBrush, null, this.SkeletonPointToScreen(skeleton.Position), BodyCenterThickness, BodyCenterThickness); } } } // prevent drawing outside of our render area this.drawingGroup.ClipGeometry = new RectangleGeometry(new Rect(0.0, 0.0, RenderWidth, RenderHeight)); } }