Entwickler-Ecke

WinForms - Senden über Serielle Schnittstelle


blutengel - Mo 26.07.10 15:05
Titel: Senden über Serielle Schnittstelle
Hi!

Habe da mal ein Problem. Und zwar sende ich mit:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
                    if (radioButton1.Checked)
                {
                    COM1.Open();
                    COM1.Write(anzeigetext.Text);
                    anzeigetext.Clear();
                    COM1.Close();
                    btn_send.Enabled = false;

                    try
                    {
                        byte[] busy = new byte[1];
                        COM1.Open();
                        System.Threading.Thread.Sleep(1);
                        int message = COM1.ReadByte();
                        COM1.Close();
                        if (message == 79)
                        {
                            //MessageBox.Show(Convert.ToString(message));
                            MessageBox.Show("Text erfolgreich übertragen!",   Application.ProductName,
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Asterisk);
                            btn_send.Enabled = false;
                        }
                        else
                        {
                            MessageBox.Show("Textteile fehlen." + Environment.NewLine + "Bitte wiederholen", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);

                        }
                    }
                    catch
                    {
                        MessageBox.Show("Textteile fehlen." + Environment.NewLine + "Bitte wiederholen", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }


                    //MessageBox.Show("Text übertragen" + Environment.NewLine + "Bitte zunächst den Schalter 'PROG'" + Environment.NewLine + "auf 'AUS' stellen" + Environment.NewLine + "und anschließend die RESET-Taste betätigen", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }



Ein Text aus meinem Eingabefeld und danach wartet er auf ein Zeichen .Hier ein "O"
Jetzt habe ich auf einem 2. Rechner ein Terminalprogramm laufen. Sobal ich sende kommt der Text auch an, aber am ende steht immer eine 1. Wo kommt die her, und wie kann ich das unterdrücken?Ich brauche ausserdem am Ende des Textes ein CR bzw. in Dezimal die 13. Sobald der 2. Rechner dies empfängt also das CR, schickt dieser ein "O" los um den Empfang zu bestätigen.

Kann mir da Jemand helfen?

MFG

blutengel


Yogu - Mo 26.07.10 21:13

Hallo,

warum die 1 erscheint, kann ich dir nicht sagen, aber deine zweite Frage lässt sich doch recht einfach beantworten:

user profile iconblutengel hat folgendes geschrieben Zum zitierten Posting springen:
Ich brauche ausserdem am Ende des Textes ein CR bzw. in Dezimal die 13.


C#-Quelltext
1:
COM.Write(13);                    

Oder heißt es WriteByte?

user profile iconblutengel hat folgendes geschrieben Zum zitierten Posting springen:
Sobald der 2. Rechner dies empfängt also das CR, schickt dieser ein "O" los um den Empfang zu bestätigen.

Hast du das schon oder musst du das noch machen?

Grüße,
Yogu


jaenicke - Mo 26.07.10 21:32

user profile iconblutengel hat folgendes geschrieben Zum zitierten Posting springen:
Sobal ich sende kommt der Text auch an, aber am ende steht immer eine 1. Wo kommt die her, und wie kann ich das unterdrücken?
Ich vermute mal da ist ein entsprechendes Terminatorzeichen oder ähnliches eingestellt. Das sollte die ComPort-Klasse als Einstellung haben.