コード例 #1
0
ファイル: Joint.cs プロジェクト: rjabaker/Skynet
        public void JointTrackingFrameCaptured(IJointFrameParameter parameter)
        {
            if (parameter is AngularVelocityJointFrameParameter)
            {
                double angle = Math.Abs(parameter.BendAngle);
                if (angle > Math.PI / 2)
                {
                    smartPinMapping.CCwPinMapping.SetPin(0);
                    smartPinMapping.CwPinMapping.SetPin(255);
                }
                else
                {
                    smartPinMapping.CwPinMapping.SetPin(0);
                    smartPinMapping.CCwPinMapping.SetPin(255);
                }
            }
            else if (parameter is AngularDisplacementJointFrameParameter)
            {
                // Assume 200 steps per rotation.
                // RBakerFlag -> TESTCODE!
                if (parameter.TimeSpan.Equals(TimeSpan.Zero)) return;
                int steps = Convert.ToInt32(200* (double)parameter.BendAngle / (2 * Math.PI));
                int rpm = Convert.ToInt32(((double)steps / (double)200) / ((double)parameter.TimeSpan.Milliseconds / (1000 * 60)));
                if (rpm > 60) rpm = 60;

                byte[] commandPackage = new byte[] { (byte)CommandCodes.SetStepper1CommandCode, (byte)rpm, (byte)steps };

                smartPinMapping.CwPinMapping.SetPinEventHandler(commandPackage);
            }
        }
コード例 #2
0
        private void AlertJoints(MovingJoint joint, DateTime timeStamp)
        {
            IJointFrameParameter parameter = GetJointFrameParameter(joint, timeStamp);

            previousMovingJoint = joint;
            previousTimeStamp   = timeStamp;

            Joints jointsToAlert = joints.GetJointsOfType(joint.JointType);

            foreach (Joint jointToAlert in jointsToAlert)
            {
                jointToAlert.JointTrackingFrameCaptured(parameter);
            }
        }
コード例 #3
0
ファイル: Joint.cs プロジェクト: rjabaker/Skynet
        public void JointTrackingFrameCaptured(IJointFrameParameter parameter)
        {
            if (parameter is AngularVelocityJointFrameParameter)
            {
                double angle = Math.Abs(parameter.BendAngle);
                if (angle > Math.PI / 2)
                {
                    smartPinMapping.CCwPinMapping.SetPin(0);
                    smartPinMapping.CwPinMapping.SetPin(255);
                }
                else
                {
                    smartPinMapping.CwPinMapping.SetPin(0);
                    smartPinMapping.CCwPinMapping.SetPin(255);
                }
            }
            else if (parameter is AngularDisplacementJointFrameParameter)
            {
                // Assume 200 steps per rotation.
                // RBakerFlag -> TESTCODE!
                if (parameter.TimeSpan.Equals(TimeSpan.Zero))
                {
                    return;
                }
                int steps = Convert.ToInt32(200 * (double)parameter.BendAngle / (2 * Math.PI));
                int rpm   = Convert.ToInt32(((double)steps / (double)200) / ((double)parameter.TimeSpan.Milliseconds / (1000 * 60)));
                if (rpm > 60)
                {
                    rpm = 60;
                }

                byte[] commandPackage = new byte[] { (byte)CommandCodes.SetStepper1CommandCode, (byte)rpm, (byte)steps };

                smartPinMapping.CwPinMapping.SetPinEventHandler(commandPackage);
            }
        }