private void saveAndSendAck(object sender, EventArgs e) { byte[] instruction, sendAckNak, dataWithoutHeader_1, dataWithoutHeader_2, dataWithoutHeader_3; if (!UartCom.RxHandshake_16byte(InByte_16, out instruction)) { UartCom.TxHandshake_16byte(out sendAckNak); sPort.Write(sendAckNak, 0, 7); return; } UartCom.DataHeader header = UartCom.classifyHeader_16byte(instruction, out dataWithoutHeader_1, out dataWithoutHeader_2, out dataWithoutHeader_3); Realtime = UartCom.uARTBytetoFloat(dataWithoutHeader_1); //realtime Measure = UartCom.uARTBytetoFloat(dataWithoutHeader_2); //measure PWM = UartCom.uARTBytetoFloat(dataWithoutHeader_3); //PWM UartCom.TxHandshake_16byte(out sendAckNak); sPort.Write(sendAckNak, 0, 7); if (status == GraphStatus.GraphRun) { graphUpdate(); } if (cBoxLog.Checked == true) { logTable.Rows.Add(Realtime, Setpoint, Measure, PWM); } }
private void ReTrans_Tick(object sender, EventArgs e) { byte[] buffer; if (UartCom.ReHandshake(out buffer)) { if (fail <= 10) { sPort.Write(buffer, 0, 7); tBoxDisplayGet.Text += ("NAK" + Environment.NewLine); fail++; } else { fail = 0; sPort.ReadExisting(); UartCom.rxack = true; UartCom.rxnak = false; ReTrans.Enabled = false; MessageBox.Show("Transmission line is unstable, or Motor is not working" + "Please re-plug in the cable and reset the Motor", "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { fail = 0; ReTrans.Enabled = false; } }
private void btnMotorRun_Click(object sender, EventArgs e) { try { clearGraph(); logTable.Rows.Clear(); byte[] setPointBuffer; if (UartCom.TxHandshake(UartCom.ControlHeader.Run, "0", out setPointBuffer)) { sPort.Write(setPointBuffer, 0, 7); } ReTrans.Enabled = true; //btnMotorRun.Enabled = false; //btnMotorStop.Enabled = true; //gBoxWhatToMeasure.Enabled = false; //gBoxPID.Enabled = false; //tBoxSetPoint.Enabled = false; } catch (Exception err) { MessageBox.Show(err.Message, "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); //throw; } }
private void saveAndSendAck(object sender, EventArgs e) { byte[] instruction, dataWithoutHeader_1, dataWithoutHeader_2, dataWithoutHeader_3; if (!UartCom.RxHandshake_16byte(InByte_16, out instruction)) { return; } UartCom.DataHeader header = UartCom.classifyHeader_16byte(instruction, out dataWithoutHeader_1, out dataWithoutHeader_2, out dataWithoutHeader_3); float displayValue1 = UartCom.uARTBytetoFloat(dataWithoutHeader_1); //realtime float displayValue2 = UartCom.uARTBytetoFloat(dataWithoutHeader_2); //measure float displayValue3 = UartCom.uARTBytetoFloat(dataWithoutHeader_3); //PWM Realtime = displayValue1; Measure = displayValue2; PWM = displayValue3; if (status == GraphStatus.GraphRun) { graphUpdate(); } if (cBoxLog.Checked == true) { logTable.Rows.Add(Setpoint, Measure); } }
/*Radio Button methods*/ private void rBtnVP_CheckedChanged(object sender, EventArgs e) { try { clearGraph(); if (rBtnVelocity.Checked) { lbVelocity.Text = "Velocity"; tbCalib.Text = "4.8"; GraphPane myPane = zGrphPlotData.GraphPane; myPane.YAxis.Scale.Min = 0; //Tương tự cho trục y myPane.YAxis.Scale.Max = 2500; myPane.AxisChange(); //byte[] temp = new byte[1]; //temp[0] = (byte)UartCom.controlHeader.Velocity; //sPort.Write(temp, 0, 1); byte[] setPointBuffer; if (UartCom.TxHandshake(UartCom.ControlHeader.Velocity, "0", out setPointBuffer)) { sPort.Write(setPointBuffer, 0, 7); } ReTrans.Enabled = true; } else { lbVelocity.Text = "Position"; tbCalib.Text = "40"; GraphPane myPane = zGrphPlotData.GraphPane; myPane.YAxis.Scale.Min = 0; //Tương tự cho trục y myPane.YAxis.Scale.Max = 600; myPane.AxisChange(); //byte[] temp = new byte[1]; //temp[0] = (byte)UartCom.controlHeader.Position; //sPort.Write(temp, 0, 1); byte[] setPointBuffer; if (UartCom.TxHandshake(UartCom.ControlHeader.Position, "0", out setPointBuffer)) { sPort.Write(setPointBuffer, 0, 7); } ReTrans.Enabled = true; } } catch (Exception err) { MessageBox.Show(err.Message, "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); //throw; } }
private void ReTrans_Tick(object sender, EventArgs e) { byte[] buffer; if (UartCom.ReHandshake(out buffer)) { sPort.Write(buffer, 0, 7); tBoxDisplayGet.Text += ("NAK" + Environment.NewLine); } else { ReTrans.Enabled = false; } }
private void tBoxCalib_KeyDown(object sender, KeyEventArgs e) { try { if (e.KeyCode == Keys.Enter) { byte[] setPointBuffer; if (UartCom.TxHandshake(UartCom.ControlHeader.Calib, tbCalib.Text, out setPointBuffer)) { sPort.Write(setPointBuffer, 0, 7); } ReTrans.Enabled = true; } } catch (Exception err) { MessageBox.Show(err.Message, "Error!!", MessageBoxButtons.OK, MessageBoxIcon.Error); //throw; } }
//private void readBuffer(ref byte[] outBuffer) //{ // for (int ii = 0; ii <= 4; ii++) // { // outBuffer[ii] = Convert.ToByte(sPort.ReadByte()); // } //} private void saveData(object sender, EventArgs e) { byte[] instruction, dataWithoutHeader; if (!UartCom.RxHandshake(InByte, out instruction)) { return; } UartCom.DataHeader header = UartCom.classifyHeader(instruction, out dataWithoutHeader); float displayValue = UartCom.uARTBytetoFloat(dataWithoutHeader); switch (header) { //case UartCom.DataHeader.Realtime: // //realtimestep = displayValue; // break; case UartCom.DataHeader.Setpoint: Setpoint = displayValue; tBoxDisplayGet.Text += UartCom.motorMessage[4]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; //case UartCom.DataHeader.Measure: // Measure = displayValue; // Realtime += Realtimestep; // break; case UartCom.DataHeader.Run: tBoxDisplayGet.Text += UartCom.motorMessage[0]; tBoxDisplayGet.Text += Environment.NewLine; lbRun.Text = "RUN"; lbRun.ForeColor = Color.Green; break; case UartCom.DataHeader.Stop: tBoxDisplayGet.Text += UartCom.motorMessage[1]; tBoxDisplayGet.Text += Environment.NewLine; lbRun.Text = "STOP"; lbRun.ForeColor = Color.Red; break; case UartCom.DataHeader.Velocity: tBoxDisplayGet.Text += UartCom.motorMessage[2]; tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Position: tBoxDisplayGet.Text += UartCom.motorMessage[3]; tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Kp: tBoxDisplayGet.Text += UartCom.motorMessage[5]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Ki: tBoxDisplayGet.Text += UartCom.motorMessage[6]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Kd: tBoxDisplayGet.Text += UartCom.motorMessage[7]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; //case UartCom.DataHeader.Data: // char transChar = (char)displayValue; // tBoxDisplayGet.Text += Convert.ToString(transChar); // break; //case UartCom.DataHeader.Floattype: // tBoxDisplayGet.Text += displayValue.ToString(); // tBoxDisplayGet.Text += Environment.NewLine; // break; case UartCom.DataHeader.Calib: tBoxDisplayGet.Text += UartCom.motorMessage[8]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; default: break; } }
//private void readBuffer(ref byte[] outBuffer) //{ // for (int ii = 0; ii <= 4; ii++) // { // outBuffer[ii] = Convert.ToByte(sPort.ReadByte()); // } //} private void saveData(object sender, EventArgs e) { byte[] instruction, dataWithoutHeader; if (!UartCom.RxHandshake(InByte, out instruction)) { return; } UartCom.DataHeader header = UartCom.classifyHeader(instruction, out dataWithoutHeader); float displayValue = UartCom.uARTBytetoFloat(dataWithoutHeader); switch (header) { case UartCom.DataHeader.Realtime: //realtimestep = displayValue; break; case UartCom.DataHeader.Setpoint: Setpoint = displayValue; tBoxDisplayGet.Text += UartCom.motorMessage[4]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Measure: Measure = displayValue; Realtime += Realtimestep; break; case UartCom.DataHeader.Run: tBoxDisplayGet.Text += UartCom.motorMessage[0]; tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Stop: tBoxDisplayGet.Text += UartCom.motorMessage[1]; tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Velocity: tBoxDisplayGet.Text += UartCom.motorMessage[2]; tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Position: tBoxDisplayGet.Text += UartCom.motorMessage[3]; tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Kp: tBoxDisplayGet.Text += UartCom.motorMessage[5]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Ki: tBoxDisplayGet.Text += UartCom.motorMessage[6]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Kd: tBoxDisplayGet.Text += UartCom.motorMessage[7]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Data: char transChar = (char)displayValue; tBoxDisplayGet.Text += Convert.ToString(transChar); break; case UartCom.DataHeader.Floattype: tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; case UartCom.DataHeader.Calib: tBoxDisplayGet.Text += UartCom.motorMessage[8]; tBoxDisplayGet.Text += displayValue.ToString(); tBoxDisplayGet.Text += Environment.NewLine; break; default: break; } if (status == GraphStatus.GraphRun) { graphUpdate(); } if (cBoxLog.Checked == true) { logTable.Rows.Add(Setpoint, Measure); } }