Exemplo n.º 1
0
        private void StartPing()
        {
            Cmd.Commando_Struct ping = new Cmd.Commando_Struct();

            ping.MessageID = 0;
            byte[] send = Parser.BuildHeader(ping);

            Port.WriteCommando(send);
        }
Exemplo n.º 2
0
        private void SendCommando(object sender, EventArgs e)
        {
            string[] message       = richtxtbx_message.Text.Split(new char[] { ',' });
            int      messageLength = richtxtbx_message.Text.Split(new char[] { ',' }).Length;
            int      messageBytes  = 0;

            switch (cmbbx_data_typ.SelectedIndex)
            {
            case (byte)Cmd.Data_Type_Enum.DATA_TYP_UINT8:    { messageBytes = messageLength * sizeof(byte); }   break;

            case (byte)Cmd.Data_Type_Enum.DATA_TYP_UINT16:   { messageBytes = messageLength * sizeof(UInt16); }   break;

            case (byte)Cmd.Data_Type_Enum.DATA_TYP_UINT32:   { messageBytes = messageLength * sizeof(UInt32); }   break;

            case (byte)Cmd.Data_Type_Enum.DATA_TYP_FLOAT:    { messageBytes = messageLength * sizeof(float); }   break;

            case (byte)Cmd.Data_Type_Enum.DATA_TYP_STRING:   { messageBytes = messageLength * sizeof(char); }   break;
            }

            if (richtxtbx_message.TextLength == 0)
            {
                messageBytes = 0;
            }

            Cmd.Commando_Struct CommandoToSend = new Cmd.Commando_Struct(messageBytes);

            uint index = 0;

            for (uint x = 0; x < messageLength && richtxtbx_message.TextLength > 0; x++)
            {
                switch (cmbbx_data_typ.SelectedIndex)
                {
                case (byte)Cmd.Data_Type_Enum.DATA_TYP_UINT8:
                {
                    try
                    {
                        CommandoToSend.Data[index++] = Convert.ToByte(message[x]);
                    }catch
                    {
                        MessageBox.Show("Falsches Format");
                        return;
                    }
                } break;

                case (byte)Cmd.Data_Type_Enum.DATA_TYP_UINT16:
                {
                    try
                    {
                        UInt16 tmp = Convert.ToUInt16(message[x]);
                        CommandoToSend.Data[index++] = (byte)(tmp & 0x00FF);
                        CommandoToSend.Data[index++] = (byte)((tmp & 0xFF00) >> 8);
                    }catch
                    {
                        MessageBox.Show("Falsches Format");
                        return;
                    }
                } break;

                case (byte)Cmd.Data_Type_Enum.DATA_TYP_UINT32:
                {
                    try
                    {
                        UInt32 tmp = Convert.ToUInt32(message[x]);
                        CommandoToSend.Data[index++] = (byte)(tmp & 0x000000FF);
                        CommandoToSend.Data[index++] = (byte)((tmp & 0x0000FF00) >> 8);
                        CommandoToSend.Data[index++] = (byte)((tmp & 0x00FF0000) >> 16);
                        CommandoToSend.Data[index++] = (byte)((tmp & 0xFF000000) >> 26);
                    }catch
                    {
                        MessageBox.Show("Falsches Format");
                        return;
                    }
                } break;

                case (byte)Cmd.Data_Type_Enum.DATA_TYP_FLOAT:
                {
                    try
                    {
                        float tmp = Convert.ToSingle(message[x]);
                        CommandoToSend.Data = BitConverter.GetBytes(tmp);
                    }catch
                    {
                        MessageBox.Show("Falsches Format");
                        return;
                    }
                } break;

                case (byte)Cmd.Data_Type_Enum.DATA_TYP_STRING:
                {
                    try
                    {
                        CommandoToSend.Data = Encoding.ASCII.GetBytes(message[x]);
                    }catch
                    {
                        MessageBox.Show("Falsches Format");
                        return;
                    }
                } break;
                }
            }

            CommandoToSend.MessageID  = (byte)numeric_msg_id.Value;             // Nachrichten Type
            CommandoToSend.DataType   = (byte)cmbbx_data_typ.SelectedIndex;     // Datentyp der Bytes
            CommandoToSend.DataLength = (byte)CommandoToSend.Data.Length;       // Länge der gesamten Nachricht

            byte[] send = Parser.BuildHeader(CommandoToSend);

            Port.WriteCommando(send);

            richtxtbx_data_was_send.AppendText("[Hex] Header: " + BitConverter.ToString(send, 0, (byte)Cmd.Communication_Header_Enum.__CMD_HEADER_ENTRYS__) + "   -   ");

            if (messageBytes > 0)
            {
                richtxtbx_data_was_send.AppendText("Nutzdaten: " + BitConverter.ToString(send, (byte)Cmd.Communication_Header_Enum.__CMD_HEADER_ENTRYS__, CommandoToSend.DataLength) + "\r\n");
            }
            else
            {
                richtxtbx_data_was_send.AppendText("Nutzdaten: -\r\n");
            }
        }
Exemplo n.º 3
0
        private void FrameToGUI(Cmd.Commando_Struct Parsed)
        {
            string DecStrParas = "";

            if (listView1.Items.Count > 1000)
            {
                listView1.Items.Clear();
            }

            try
            {
                DialogResult UserResult = new DialogResult();
                if (byte.Parse(toolStripMenuItem2.Text) == Parsed.MessageID && iDToolStripMenuItem.CheckState == CheckState.Checked)
                {
                    if (checkBox1.CheckState == CheckState.Checked)
                    {
                        UserResult = MessageBox.Show("Eingestellte \"ID\" empfangen!\r\nZyklisch senden beenden?", "Benachrichtigung", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    }
                    else
                    {
                        UserResult = MessageBox.Show("Eingestellte \"ID\" empfangen!", "Benachrichtigung", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                if (byte.Parse(toolStripMenuItem3.Text) == Parsed.DataLength && frameLängeToolStripMenuItem.CheckState == CheckState.Checked)
                {
                    if (checkBox1.CheckState == CheckState.Checked)
                    {
                        UserResult = MessageBox.Show("Eingestellte \"Frame Länge\" empfangen!\r\nZyklisch senden beenden?", "Benachrichtigung", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    }
                    else
                    {
                        UserResult = MessageBox.Show("Eingestellte \"Frame Länge\" empfangen!", "Benachrichtigung", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                if (byte.Parse(toolStripMenuItem4.Text) == Parsed.Exitcode && exitkodeToolStripMenuItem.CheckState == CheckState.Checked)
                {
                    if (checkBox1.CheckState == CheckState.Checked)
                    {
                        UserResult = MessageBox.Show("Eingestellten \"Exitcode\" empfangen!\r\nZyklisch senden beenden?", "Benachrichtigung", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    }
                    else
                    {
                        UserResult = MessageBox.Show("Eingestellten \"Exitcode\" empfangen!", "Benachrichtigung", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }

                if (UserResult == DialogResult.Yes)
                {
                    checkBox1.Checked = false;
                    Port.RingBuff.Clear();
                }
            }
            finally { }

            switch (Parsed.DataType)
            {
            /*  Vorzeichenbehaftete Werte
             */
            case (byte)Cmd.Data_Type_Enum.DATA_TYP_INT8:
            {
                DecStrParas = Parser.ConvertByteToSignedByte(Parsed.Data, 0, Parsed.DataLength, " , ");
            } break;

            case (byte)Cmd.Data_Type_Enum.DATA_TYP_INT16:
            {
                DecStrParas = Parser.ConvertInt16ToInt16(Parsed.Data, 0, Parsed.DataLength, " , ");
            } break;

            case (byte)Cmd.Data_Type_Enum.DATA_TYP_INT32:
            {
                DecStrParas = Parser.ConvertInt32ToInt32(Parsed.Data, 0, Parsed.DataLength, " , ");
            } break;


            /*  Vorzeichenlose Werte
             */
            case (byte)Cmd.Data_Type_Enum.DATA_TYP_UINT8:
            {
                DecStrParas = Parser.ConvertByte(Parsed.Data, 0, Parsed.DataLength, " , ");
            } break;


            case (byte)Cmd.Data_Type_Enum.DATA_TYP_UINT16:
            {
                DecStrParas = Parser.ConvertUInt16(Parsed.Data, 0, Parsed.DataLength, " , ");
            } break;


            case (byte)Cmd.Data_Type_Enum.DATA_TYP_UINT32:
            {
                DecStrParas = Parser.ConvertUInt32(Parsed.Data, 0, Parsed.DataLength, " , ");
            } break;


            case (byte)Cmd.Data_Type_Enum.DATA_TYP_FLOAT:
            {
                DecStrParas = Parser.ConvertToFloat(Parsed.Data, 0, Parsed.DataLength, " , ");
            } break;

            /*  String
             */
            case (byte)Cmd.Data_Type_Enum.DATA_TYP_STRING:
            {
                DecStrParas = Parser.ConvertToString(Parsed.Data, 0, Parsed.DataLength);
            } break;
            }


            ListViewItem cmdItems = new ListViewItem(Parsed.MessageID.ToString());

            cmdItems.SubItems.Add(Parsed.DataLength.ToString());
            cmdItems.SubItems.Add(Parsed.Exitcode.ToString());
            cmdItems.SubItems.Add(Parsed.DataType.ToString());

            if (Parsed.DataLength > 0)
            {
                cmdItems.SubItems.Add(DecStrParas);
            }
            else
            {
                cmdItems.SubItems.Add("-");
            }

            listView1.Items.Add(cmdItems);
            listView1.Items[listView1.Items.Count - 1].EnsureVisible();

            float FrameErrorPercent = (((float)Parser.BadFrameCount / (float)Parser.GoodFrameCount)) * 100;

            lbl_crc_statistik.Text = "Erfolgreich: " + Parser.GoodFrameCount.ToString() + "\r\n" + "Fehlgeschlagen: " + Parser.BadFrameCount.ToString() + " " + "( " + FrameErrorPercent.ToString("0.0000") + "% )";


            if (messageBoxAnzeigenToolStripMenuItem.CheckState == CheckState.Checked)
            {
                this.Show();
            }

            this.Text = "Kommando Interpreter" + "          " + ">>[" + Parser.GoodFrameCount.ToString() + "]<<" + " " + "Kommando(s) empfangen!";
        }