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); }
private void GetDrillDiameter() { string[] svImageSize = new string[1]; EndNormalTransferDelegate endNormalTrasferDelegate = EndOfSettingsParameters; this.Enabled = false; svImageSize[0] = "@gT;"; _bGetDrillDiameter = true; _parentForm.SendNormalCommands(svImageSize, _responseCommands, endNormalTrasferDelegate); }
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); }
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); } }
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); }
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); }
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); }
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); }
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(); } } } }