Forum: PC-Programmierung C# COM Port auslesen


von Walt N. (belayason)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
ich sende vier Werte über mein NUCLEOf411RE an meinen rechner. Mit putty 
kann ich am virtuellen COM Port COM98 diese auslesen (siehe screenshot). 
Programmiert habe ich das ganze in C. Nun will ich Visual Studio eine 
Winforms Anwendung programmieren. Das ganze soll in c# realisiert 
werden. nach mehreren veruschen habe ich es noch nicht hinbekommen diese 
Daten auszulesen und in einer Textbox wieder zu geben. Ich habe eine try 
catch Bedingung eingebaut und beim start bringt er sofort eine 
exception. Ich bin neu in c# und habe nur wenig Erfahrung damit. Am 
liebsten wäre es mir wenn er die Werte nicht nur einmal schreibt sondern 
die ganze zeit in der Textbox aktualisiert. So sieht bis jetzt mein code 
aus. Die Serielle Schnittstelle hab ich im Form1.cs hinzugefügt und 
eingestellt.

 private void button1_Click(object sender, EventArgs e)
        {

            try
            {

                serial.Open();
                string oldvalue = null;

                string A = serial.ReadExisting();

                if (A != oldvalue)
                {
                    if (!string.IsNullOrEmpty(A) && A.StartsWith("BT"))
                    {
                        textBox1.AppendText(A);
                    }
                }
            }
            catch
            {
                MessageBox.Show("COMPORT ist geschlossen");
            }
        }
Würde mich über hilfe freuen.
Gruß

: Bearbeitet durch User
von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Walt N. schrieb:
> Programmiert habe ich das ganze in C. Nun will ich Visual Basics eine
> Winforms Anwendung programmieren. Das ganze soll in c# realisiert
> werden.

Was jetzt?
c?
c#?
vb?

von Walt N. (belayason)


Lesenswert?

c#! Auf dem MC hab ich mit c programmiert. Ich meine Visual Studio und 
nicht Visual Basics sorry.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

warum nicht mit lcc32?

da wäre dein C und win kein Problem
http://www.bei-ekke.de/htmltidy/mfischer/lcc32-index.html

von Dominik S. (dasd)


Lesenswert?

Hi,
geb uns doch bitte ein paar Infos mehr.

Walt N. schrieb:
> Ich habe eine try
> catch Bedingung eingebaut und beim start bringt er sofort eine
> exception

Die da wäre? Die Exception sagt dir doch eigentlich bereits was das 
Problem ist.

von Walt N. (belayason)


Lesenswert?

System.UnauthorizedAccessException
  HResult=0x80070005
  Nachricht = Access to the port 'COM98' is denied.

von Dominik S. (dasd)


Lesenswert?

So... jetzt musst du doch eigentlich nur noch das Wort 
"UnauthorizedAccessException" zusammen mit "COM port" bei Google 
einsetzen und schon bekommst du seitenweise Lösungshinweise.

Erster Tipp: Jemand anderes (Putty??) hat die besagte Schnittstelle 
schon geöffnet.

von Johannes S. (Gast)


Lesenswert?


von Micha (nichtgast)


Lesenswert?

Johannes S. schrieb:
> oder das alte Problemchen mit Com Portnamen >COM9?
> 
https://support.microsoft.com/de-de/help/115831/howto-specify-serial-ports-larger-than-com9

Öhm, nein. Das ist ein altes C Problem. Das existiert so nicht in C#

von J Zimmermann (Gast)


Lesenswert?

dasd:
> Erster Tipp: Jemand anderes (Putty??) hat die besagte Schnittstelle
> schon geöffnet.
genau.
Und dann solltest Du darauf achten, den Port nach Nutzung wieder zu 
schliessen, denn Du versuchst ihn ja bei jedem "buttom1_Click" wieder zu 
öffnen.
also:
- testen, ob Port schon geöffnet
- ja: versuchen, den Port zu schliessen, Fehler: Meldung, Routine 
verlassen
...
mfg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.