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;
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        /*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;
            }
        }
Пример #6
0
 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;
            }
        }
Пример #9
0
        //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);
            }
        }