Esempio n. 1
0
        public bool GetMotionUVW(ref XVector xMove, ref XScalar xU, ref XScalar xV, ref XScalar xW)
        {
            GetLocal(ref xMove);

            double dTx = 0, dTy = 0;

            {            //U
                RotateMethod(63640, 63640, xMove.T, ref dTx, ref dTy);
                xU.Set(dTx, dTy);
            }
            {            //V
                RotateMethod(-63640, -63640, xMove.T, ref dTx, ref dTy);
                xV.Set(dTx, dTy);
            }
            {            //W
                RotateMethod(63640, -63640, xMove.T, ref dTx, ref dTy);
                xW.Set(dTx, dTy);
            }

            xMove.X *= m_xMotorDirection.X;
            xMove.Y *= m_xMotorDirection.Y;
            xMove.T *= m_xMotorDirection.T * 180000 / Math.PI;
            double dLimitT = m_xMoveLimit.T * 180000 / Math.PI;

            if (m_xMoveLimit.X > Math.Abs(xMove.X) && m_xMoveLimit.Y > Math.Abs(xMove.Y) && dLimitT > Math.Abs(xMove.T))
            {
                return(true);
            }
            return(false);
        }
Esempio n. 2
0
        public bool GetMotionUVWX(XVector xMove, ref XScalar xU, ref XScalar xV, ref XScalar xW, ref XScalar xX)
        {
            xMove.X *= m_xMotorDirection.X;
            xMove.Y *= m_xMotorDirection.Y;
            xMove.T *= m_xMotorDirection.T;

            double dTx = 0, dTy = 0;

            {            //U
                RotateMethod(-1005000, 755000, xMove.T, ref dTx, ref dTy);
                xU.Set(dTx, dTy);
            }
            {            //V
                RotateMethod(1005000, 755000, xMove.T, ref dTx, ref dTy);
                xV.Set(dTx, dTy);
            }
            {            //W
                RotateMethod(-1005000, -755000, xMove.T, ref dTx, ref dTy);
                xW.Set(dTx, dTy);
            }

            {            //W
                RotateMethod(1005000, -755000, xMove.T, ref dTx, ref dTy);
                xX.Set(dTx, dTy);
            }

            xMove.T *= 180000 / Math.PI;

            double dLimitT = m_xMoveLimit.T * 180000 / Math.PI;

            if (m_xMoveLimit.X > Math.Abs(xMove.X) && m_xMoveLimit.Y > Math.Abs(xMove.Y) && dLimitT > Math.Abs(xMove.T))
            {
                return(true);
            }
            return(false);
        }
Esempio n. 3
0
        private void GetDelta(int nCameraMode)
        {
            switch (m_nCamCount)
            {
            case 1:
            {
                m_xDeviation.Set(m_xCam[0].Dist);
            } break;

            case 2:
            {
                m_xDeviation.Set(GetDelta(0, 1));
            } break;

            case 3:
                switch (m_nCamPoseMode)
                {
                case 7:
                    switch (nCameraMode)
                    {
                    case 3: m_xDeviation.Set(GetDelta(0, 1)); break;

                    case 5: m_xDeviation.Set(GetDelta(2, 0)); break;

                    case 6: m_xDeviation.Set(GetDelta(2, 1)); break;

                    case 7:
                    {
                        XScalar dDeviationSum = new XScalar();
                        dDeviationSum.Set(dDeviationSum + GetDelta(0, 1));
                        dDeviationSum.Set(dDeviationSum + GetDelta(2, 1));
                        m_xDeviation.Set(dDeviationSum / 2);
                    } break;
                    }
                    break;

                case 11: break;

                case 12: break;

                case 13: break;

                case 14: break;
                }
                break;

            case 4:
                switch (nCameraMode)
                {
                case 3: m_xDeviation.Set(GetDelta(0, 1)); break;

                case 5: m_xDeviation.Set(GetDelta(2, 0)); break;

                case 10: m_xDeviation.Set(GetDelta(3, 1)); break;

                case 12: m_xDeviation.Set(GetDelta(2, 3)); break;

                case 7:
                {
                    XScalar dDeviationSum = new XScalar();
                    dDeviationSum.Set(dDeviationSum + GetDelta(0, 1));
                    dDeviationSum.Set(dDeviationSum + GetDelta(2, 1));
                    m_xDeviation.Set(dDeviationSum / 2);
                } break;

                case 11:
                {
                    XScalar dDeviationSum = new XScalar();
                    dDeviationSum.Set(dDeviationSum + GetDelta(0, 1));
                    dDeviationSum.Set(dDeviationSum + GetDelta(3, 1));
                    m_xDeviation.Set(dDeviationSum / 2);
                } break;

                case 13:
                {
                    XScalar dDeviationSum = new XScalar();
                    dDeviationSum.Set(dDeviationSum + GetDelta(2, 0));
                    dDeviationSum.Set(dDeviationSum + GetDelta(2, 3));
                    m_xDeviation.Set(dDeviationSum / 2);
                } break;

                case 14:
                {
                    XScalar dDeviationSum = new XScalar();
                    dDeviationSum.Set(dDeviationSum + GetDelta(3, 1));
                    dDeviationSum.Set(dDeviationSum + GetDelta(2, 1));
                    m_xDeviation.Set(dDeviationSum / 2);
                } break;

                case 15:
                {
                    XScalar dDeviationSum = new XScalar();
                    dDeviationSum.Set(dDeviationSum + GetDelta(0, 1));
                    dDeviationSum.Set(dDeviationSum + GetDelta(2, 3));
                    dDeviationSum.Set(dDeviationSum + GetDelta(2, 0));
                    dDeviationSum.Set(dDeviationSum + GetDelta(3, 1));
                    m_xDeviation.Set(dDeviationSum / 4);
                } break;
                }
                break;
            }
        }
Esempio n. 4
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            if (m_xScalar != null)
            {
                int nWidth = Width / 3;
                int nIndex = (int)(e.X / nWidth);
                m_nSelect = nIndex;
                if (nIndex == 0)
                {
                    string sMsg = string.Format("Set = {0:F}, {1:F}, Are you sure?", m_dNomX * m_dCalX, m_dNomY * m_dCalY);
                    if (DialogResult.OK == MessageBox.Show(sMsg, Text, MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
                    {
                        m_xScalar.Set(m_dNomX, m_dNomY);
                        if (Change != null)
                        {
                            Change(this);
                        }
                        Refresh();
                    }
                }

                if (nIndex == 1)
                {
                    if (m_dCalX != 0)
                    {
                        frmInput fInput = new frmInput();
                        fInput.Value  = m_xScalar.X * m_dCalX;
                        fInput.Min    = m_dMinX;
                        fInput.Max    = m_dMaxX;
                        fInput.Format = m_sFormatX;
                        if (DialogResult.OK == fInput.ShowDialog(this))
                        {
                            m_xScalar.X = fInput.Value / m_dCalX;
                            if (Change != null)
                            {
                                Change(this);
                            }
                            Refresh();
                        }
                        fInput.Dispose();
                    }
                }
                if (nIndex == 2)
                {
                    if (m_dCalY != 0)
                    {
                        frmInput fInput = new frmInput();
                        fInput.Value  = m_xScalar.Y * m_dCalY;
                        fInput.Min    = m_dMinY;
                        fInput.Max    = m_dMaxY;
                        fInput.Format = m_sFormatY;
                        if (DialogResult.OK == fInput.ShowDialog(this))
                        {
                            m_xScalar.Y = fInput.Value / m_dCalY;
                            if (Change != null)
                            {
                                Change(this);
                            }
                            Refresh();
                        }
                        fInput.Dispose();
                    }
                }
            }
        }