Beispiel #1
0
 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--;
 }
Beispiel #2
0
 public ReplayWindow()
 {
     InitializeComponent();
     this.Show();
     mySkeleton     = new Skeleton();
     mySkeletonList = new List <Skeleton>();
     mySkeletonList = (List <Skeleton>)FileManipulation.diserialise();
 }
Beispiel #3
0
        //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));
            }
        }