mikrocontroller.net

Forum: PC-Programmierung C# COM Port auslesen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Walt N. (belayason)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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
Autor: Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)
Datum:

Bewertung
1 lesenswert
nicht 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?

Autor: Walt N. (belayason)
Datum:

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

: Bearbeitet durch User
Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum nicht mit lcc32?

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

Autor: Dominik S. (dasd) Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Walt N. (belayason)
Datum:

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

Autor: Dominik S. (dasd) Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johannes S. (jojos)
Datum:

Bewertung
1 lesenswert
nicht lesenswert

Autor: Keiner N. (nichtgast)
Datum:

Bewertung
0 lesenswert
nicht 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#

Autor: J Zimmermann (Gast)
Datum:

Bewertung
1 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.