Exemplo n.º 1
0
        private void SetAllMotorParameters()
        {
            EndNormalTransferDelegate endNormalTrasferDelegate = EndOfSettingsParameters;

            this.Enabled         = false;
            _bSettingsParameters = true;

            string[] sData  = new string[15];
            int      nCount = 0;

            for (int i = 0; i < 3; i++)
            {
                sData[nCount++] = "@iP" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[i]._unSlowFrequency).PadLeft(6, '0') + ";";

                sData[nCount++] = "@iR" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[i]._unHighFrequency).PadLeft(6, '0') + ";";

                sData[nCount++] = "@iA" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[i]._unNumAccelerationSteps).PadLeft(6, '0') + ";";

                sData[nCount++] = "@iD" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[i]._unNumDecelerationStep).PadLeft(6, '0') + ";";

                sData[nCount++] = "@iM" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[i]._unMicroStepValue).PadLeft(6, '0') + ";";
            }

            _parentForm.SendNormalCommands(sData, _responseCommands, endNormalTrasferDelegate);
        }
Exemplo n.º 2
0
        private void GetDrillDiameter()
        {
            string[] svImageSize = new string[1];
            EndNormalTransferDelegate endNormalTrasferDelegate = EndOfSettingsParameters;

            this.Enabled = false;

            svImageSize[0]     = "@gT;";
            _bGetDrillDiameter = true;

            _parentForm.SendNormalCommands(svImageSize, _responseCommands, endNormalTrasferDelegate);
        }
Exemplo n.º 3
0
        public bool SendNormalCommands(string[] sCommands, string[] sResponse, EndNormalTransferDelegate func)
        {
            // Save delegate
            _currentClientForNormalTransfer = func;

            // Save response
            _responseString = sResponse;

            if (sCommands.Length == 0)
            {
                MessageBox.Show("No command present in list", "Error",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);

                // End of transfer
                EndNormalTransfer(false);

                return(false);
            }

            if (_serialManager.IsOpen == false)
            {
                MessageBox.Show("Port closed - Open port before writing to device", "Warning",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);

                // End of transfer
                EndNormalTransfer(false);

                return(false);
            }

            // Save command list
            _commandNormalTransfer = sCommands;

            // Set serial manager in batch mode
            _serialManager.IsNormalTransfer = true;

            // Waiting for thread is up
            while (!_NormalTransferThread.IsAlive)
            {
                ;
            }

            // Signal to start batch
            _hadleNormalTransfer[(int)ENORMAL_COMMANDS.START_SEQUENCE].Set();
            return(true);
        }
Exemplo n.º 4
0
        private void buttonDrill_Click(object sender, EventArgs e)
        {
            uint nValue = 0;

            nValue = Convert.ToUInt32(textBoxDrillDiameter.Text);
            if (nValue > 0)
            {
                _nDrillDiameter = nValue;

                string[] sData = new string[1];
                EndNormalTransferDelegate endNormalTrasferDelegate = EndOfSettingsParameters;

                this.Enabled = false;

                sData[0]           = "@iT" + Convert.ToString(_nDrillDiameter).PadLeft(6, '0') + ";";
                _bSetDrillDiameter = true;

                _parentForm.SendNormalCommands(sData, _responseCommands, endNormalTrasferDelegate);
            }
        }
Exemplo n.º 5
0
        private void buttonSetParameters_Click(object sender, EventArgs e)
        {
            EndNormalTransferDelegate endNormalTrasferDelegate = EndOfSettingsParameters;

            this.Enabled         = false;
            _bSettingsParameters = true;

            string[] sData = new string[5];

            sData[0] = "@iP" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unSlowFrequency).PadLeft(6, '0') + ";";

            sData[1] = "@iR" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unHighFrequency).PadLeft(6, '0') + ";";

            sData[2] = "@iA" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unNumAccelerationSteps).PadLeft(6, '0') + ";";

            sData[3] = "@iD" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unNumDecelerationStep).PadLeft(6, '0') + ";";

            sData[4] = "@iM" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unMicroStepValue).PadLeft(6, '0') + ";";

            _parentForm.SendNormalCommands(sData, _responseCommands, endNormalTrasferDelegate);
        }
Exemplo n.º 6
0
        private void GetMotorParameters()
        {
            string[] sData    = new string[15];
            int      nMotorID = 0;
            int      nCount   = 0;
            EndNormalTransferDelegate endNormalTrasferDelegate = EndOfSettingsParameters;

            this.Enabled = false;

            for (nMotorID = 0; nMotorID < 3; nMotorID++)
            {
                sData[nCount++] = "@gS" + Convert.ToString(nMotorID) + ";";
                sData[nCount++] = "@gR" + Convert.ToString(nMotorID) + ";";
                sData[nCount++] = "@gA" + Convert.ToString(nMotorID) + ";";
                sData[nCount++] = "@gD" + Convert.ToString(nMotorID) + ";";
                sData[nCount++] = "@gM" + Convert.ToString(nMotorID) + ";";
            }

            _bGetMotorParameters = true;
            _parentForm.SendNormalCommands(sData, _responseCommands, endNormalTrasferDelegate);
        }
Exemplo n.º 7
0
        private void ChangeCNCParameter(CNC_PARAMETERS_ID eID)
        {
            string[] sData = new string[1];
            EndNormalTransferDelegate endNormalTrasferDelegate = EndOfSettingsParameters;

            this.Enabled = false;

            switch (eID)
            {
            case CNC_PARAMETERS_ID.SLOW_FREQUENCY:
                sData[0] = "@iP" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unSlowFrequency).PadLeft(6, '0') + ";";
                break;

            case CNC_PARAMETERS_ID.HIGH_FREQUENCY:
                sData[0] = "@iR" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unHighFrequency).PadLeft(6, '0') + ";";
                break;

            case CNC_PARAMETERS_ID.NUM_ACCELERATION_STEP:
                sData[0] = "@iA" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unNumAccelerationSteps).PadLeft(6, '0') + ";";
                break;

            case CNC_PARAMETERS_ID.NUM_DECELERATION_STEP:
                sData[0] = "@iD" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unNumDecelerationStep).PadLeft(6, '0') + ";";
                break;

            case CNC_PARAMETERS_ID.MICRO_STEP_VALUE:
                sData[0] = "@iM" + Convert.ToString(_nMotorID) + Convert.ToString(_pMotorSettings[_nMotorID]._unMicroStepValue).PadLeft(6, '0') + ";";
                break;

            default:
                return;
            }

            _bGetMotorParameters = true;
            _parentForm.SendNormalCommands(sData, _responseCommands, endNormalTrasferDelegate);
        }
Exemplo n.º 8
0
        public bool SendDataToCNC(int nImageWidth, int nImageHeigth)
        {
            EndNormalTransferDelegate endNormalTrasferDelegate = EndOfSettingsParameters;
            IntPtr pCurrent = _pResults;

            // For each point add other two points, one to get down, the other to get up drill
            string[] sData = new string[_nNumPoints * 3];

            unsafe
            {
                int *pnValues = (int *)_pResults.ToPointer();

                int[] pnXCoord = new int[_nNumPoints * 3];
                int[] pnYCoord = new int[_nNumPoints * 3];
                int[] pnZCoord = new int[_nNumPoints * 3];

                int[] pnXCoordOut = new int[_nNumPoints * 3];
                int[] pnYCoordOut = new int[_nNumPoints * 3];
                int[] pnZCoordOut = new int[_nNumPoints * 3];

                int nXVal = 0;
                int nYVal = 0;

                for (int i = 0; i < _nNumPoints * 3; i += 3)
                {
                    nXVal = pnValues[(i / 3) * 2];
                    nYVal = pnValues[(i / 3) * 2 + 1];

                    pnXCoord[i] = nXVal;
                    pnYCoord[i] = nYVal;
                    pnZCoord[i] = 0;

                    // go down
                    pnXCoord[i + 1] = nXVal;
                    pnYCoord[i + 1] = nYVal;
                    pnZCoord[i + 1] = 20;

                    // go up
                    pnXCoord[i + 2] = nXVal;
                    pnYCoord[i + 2] = nYVal;
                    pnZCoord[i + 2] = 0;
                }

                Warper pWarper = new Warper(_parentForm, pnXCoord, pnYCoord, pnZCoord,
                                            _parentForm.X_Max_Val, _parentForm.Y_Max_Val,
                                            _parentForm.Z_Max_Val, nImageWidth, nImageHeigth, 100);
                if (pWarper.WarpImagePoints(out pnXCoordOut, out pnYCoordOut, out pnZCoordOut) == true)
                {
                    for (int i = 0; i < _nNumPoints; i++)
                    {
                        sData[i] = "@wPX" + Convert.ToString(pnXCoordOut[i]).PadLeft(6, '0') + "Y" + Convert.ToString(pnYCoordOut[i]).PadLeft(6, '0') + "Z" + Convert.ToString(pnZCoordOut[i]).PadLeft(6, '0') + ";";
                    }
                }
                else
                {
                    return(false);
                }
            }

            _parentForm.Enabled = false;
            _parentForm.SendNormalCommands(sData, _responseCommands, endNormalTrasferDelegate);
            return(true);
        }
Exemplo n.º 9
0
        public void EndOfSettingsParameters(bool bValue, ref string[] response)
        {
            this.Enabled = true;
            DialogResult result = DialogResult.Cancel;

            if (bValue == true)
            {
                // Check response vector
                if (_bAskMaxImageSize == true)
                {
                    _bAskMaxImageSize = false;

                    if ((response.Length > 0) && (response[0].StartsWith("@pMX") == true))
                    {
                        _nMaxXVal = Convert.ToInt32(response[0].Substring(4, 6));
                        _nMaxYVal = Convert.ToInt32(response[0].Substring(5 + 6, 6));
                        _nMaxZVal = Convert.ToInt32(response[0].Substring(6 + 12, 6));

                        _parentForm.X_Max_Val = _nMaxXVal;
                        _parentForm.Y_Max_Val = _nMaxYVal;
                        _parentForm.Z_Max_Val = _nMaxZVal;

                        if (_bIsInitializing == true)
                        {
                            _bIsInitializing = false;
                            GetDrillDiameter();
                        }
                        else
                        {
                            UpdateParametersOnForm();
                        }
                    }
                    else
                    {
                        result = MessageBox.Show("It's not possible obtain max image size", "Retry",
                                                 MessageBoxButtons.RetryCancel);
                        if (result == DialogResult.Retry)
                        {
                            GetMaxImageSize();
                        }
                    }
                }
                else if (_bSettingsParameters == true)
                {
                    _bSettingsParameters = false;

                    if (response.Length > 0)
                    {
                        foreach (var item in response)
                        {
                            if (String.Compare("@OK;", item) != 0)
                            {
                                result = MessageBox.Show("Error occurred during settings", "Retry",
                                                         MessageBoxButtons.RetryCancel);
                                if (result == DialogResult.Retry)
                                {
                                    buttonSetParameters_Click(this, EventArgs.Empty);
                                }
                                break;
                            }
                        }
                    }
                }
                else if (_bGetMotorParameters == true)
                {
                    _bGetMotorParameters = false;

                    foreach (var item in response)
                    {
                        uint   nMotorID   = 0;
                        string sMotorID   = item.Substring(2, 1);
                        uint   unValue    = 0;
                        string sDataValue = item.Substring(3, 6);

                        if (UInt32.TryParse(sMotorID, out nMotorID) == false)
                        {
                            return;
                        }

                        if (UInt32.TryParse(sDataValue, out unValue) == false)
                        {
                            return;
                        }

                        if (item.Contains("@S") == true)
                        {
                            _pMotorSettings[nMotorID]._unSlowFrequency = unValue;
                        }
                        else if (item.Contains("@R") == true)
                        {
                            _pMotorSettings[nMotorID]._unHighFrequency = unValue;
                        }
                        else if (item.Contains("@A") == true)
                        {
                            _pMotorSettings[nMotorID]._unNumAccelerationSteps = unValue;
                        }
                        else if (item.Contains("@D") == true)
                        {
                            _pMotorSettings[nMotorID]._unNumDecelerationStep = unValue;
                        }
                        else if (item.Contains("@M") == true)
                        {
                            _pMotorSettings[nMotorID]._unMicroStepValue = unValue;
                        }
                    }

                    if (_bIsInitializing == true)
                    {
                        SetMotorDefaultParameters();
                        GetMaxImageSize();
                    }
                    else
                    {
                        UpdateParametersOnForm();
                    }
                }
                else if (_bGetDrillDiameter == true)
                {
                    _bGetDrillDiameter = false;

                    if ((response.Length > 0) && (response[0].StartsWith("@T") == true))
                    {
                        _nDrillDiameter = Convert.ToUInt32(response[0].Substring(2, 6));

                        if (_bIsInitializing == true)
                        {
                            _bIsInitializing = false;
                            UpdateParametersOnForm();
                        }
                        else
                        {
                            UpdateParametersOnForm();
                        }
                    }
                    else
                    {
                        result = MessageBox.Show("It's not possible obtain max image size", "Retry",
                                                 MessageBoxButtons.RetryCancel);
                        if (result == DialogResult.Retry)
                        {
                            GetDrillDiameter();
                        }
                    }
                }
                else if (_bSetDrillDiameter == true)
                {
                    _bSetDrillDiameter = false;

                    if (response[0].StartsWith("@OK;") != true)
                    {
                        result = MessageBox.Show("It's not possible set drill diameter", "Retry",
                                                 MessageBoxButtons.RetryCancel);
                        if (result == DialogResult.Retry)
                        {
                            string[] sData = new string[1];
                            EndNormalTransferDelegate endNormalTrasferDelegate = EndOfSettingsParameters;

                            this.Enabled = false;

                            sData[0]           = "@iT" + Convert.ToString(_nDrillDiameter).PadLeft(6, '0') + ";";
                            _bSetDrillDiameter = true;

                            _parentForm.SendNormalCommands(sData, _responseCommands, endNormalTrasferDelegate);
                        }
                    }
                }
            }
            else
            {
                // Check response vector
                if (_bAskMaxImageSize == true)
                {
                    _bAskMaxImageSize = false;

                    result = MessageBox.Show("It's not possible obtain max image size", "Retry",
                                             MessageBoxButtons.RetryCancel);
                    if (result == DialogResult.Retry)
                    {
                        GetMaxImageSize();
                    }
                }
                else if (_bSettingsParameters == true)
                {
                    _bSettingsParameters = false;

                    result = MessageBox.Show("It's not possible settings the parameters", "Retry",
                                             MessageBoxButtons.RetryCancel);
                    if (result == DialogResult.Retry)
                    {
                        buttonSetParameters_Click(this, EventArgs.Empty);
                    }
                }
                else if (_bGetMotorParameters == true)
                {
                    _bGetMotorParameters = false;

                    result = MessageBox.Show("It's not possible obtain parameters", "Retry",
                                             MessageBoxButtons.RetryCancel);
                    if (result == DialogResult.Retry)
                    {
                        GetMotorParameters();
                    }
                }
                else if (_bGetDrillDiameter == true)
                {
                    _bGetDrillDiameter = false;

                    result = MessageBox.Show("It's not possible obtain drill diameter", "Retry",
                                             MessageBoxButtons.RetryCancel);
                    if (result == DialogResult.Retry)
                    {
                        GetDrillDiameter();
                    }
                }
            }
        }