Serielle Verbindung zu Arduino in Visual Studio 2021 C++



  • This post is deleted!


  • Du meinst RS232 oder öhnliches?
    Dann ist "schnelle serielle Verbindungen" ein Oxymoron. Das kannst du mit jeder modernen Scriptsprache handhaben.

    Soll das Visual Studio die Verbindung aufbauen oder möchtest du das mit einem C++-Programm machen, das in Visual Studio compiliert wird?



  • Ich bin nicht ganz sicher was du hier versuchst. Wenn du mit VisualStudio Programme für einen Arduino schreiben möchtest kann ich nur die VisualMicro-Extension empfehlen. Des Weiteren hat C++ keine Befehle, wenn dann Keywords und diese ändern sich nicht mal eben alle paar Jahre. Sie werden höchstens erweitert. Code-Snippets ist es egal ob sie in der ArduinoIDE laufen oder in VisualStudio, somit funktionieren alle gängigen Arduino-Beispiele bei dir. Und C++ ist keine Scriptsprache.
    Ich kann dir nur raten schau dir Arduino-Tutorials an und wenn du VisualStudio zum programmieren nehmen möchtest, dann nutze die VisualMicro Extension.



  • @Zhavok Um den Arduino geht es überhaupt nicht, sondern um das PC-seitige Programm welches mit einem Arduino kommunizieren soll über usb.



  • @DirkB serial über usb, sprich am pc hängt ein arduino welcher daten sendet. PC soll daten empfangen. es geht mir ums PC seitige Programm was eine Verbindung mit dem Arduino herstellt.



  • @whatever sagte in Serielle Verbindung zu Arduino in Visual Studio 2021 C++:

    Also ich habe jetzt bereits Wochen damit verbracht, eine Anleitung zu finden, um eine serielle Verbindung in Visual Studio C++ herzustellen. Leider gibt es keinerlei Informationen zur aktuellen Version.

    Ob du Visual Studio verwendest, und welche Version, macht da keinen Unterschied. Kommunikation über serielle Schnittstellen kannst du über die Win32 API machen. MFC & Co helfen dabei nicht wirklich.

    Ich finde nur Tutorials von vor 10 Jahren oder so, welche leider alle (und das waren ungelogen über 50 Links von google jetzt) nicht mehr funktionieren und mir nur tausende von Errors ausspucken bezüglich Befehlen die nicht mehr aktuell sind oder verändert worden etc.

    Kann ich nicht nachvollziehen. Such dir WinAPI Beispiele. Die werden heute noch genau so funktionieren wie vor 10 Jahren. An den WinAPI Funktionen hat sich da nichts geändert. Es sind bloss neue dazugekommen.

    Find das eh ganz schön doof dass da so viele Befehle einfach umgeändert werden aber gut.

    Die WinAPI Funktionen haben sich wie gesagt nicht geändert. Mir sind auch keine MFC Klassen/Funktionen bekannt um mit seriellen Schnittstellen zu arbeiten. Und da du nicht sagst um welche Funktionen es sich handelt die sich deiner Meinung nach geändert haben - kann ich dir auch nicht helfen.

    Ich hoffe mir kann hier ein freundlicher Mensch weiterhelfen und eventuell nen Hinweis oder ein Code-Snippet zeigen was mir schonmal die Richtung zeigt.

    Hier mal der erste Artikel den ich auf die Schnelle gefunden habe wie man das mit Win32 macht:
    https://www.codeproject.com/Articles/3061/Creating-a-Serial-communication-on-Win

    Ich bin mir gerade nichtmal mehr sicher, ob man in Visual Studio C++ überhaupt noch mit Serial Ports arbeiten kann.

    Natürlich geht das.

    Damals ging das doch alles noch so einfach es muss doch nen Weg geben.

    Da hat sich nicht wirklich was geändert. Wenn du es heute nicht hinbekommst, wieso meinst du dass du es vor 10 Jahren hinbekommen hättest?

    Ich programmiere eigentlich in einer anderen Scriptsprache aber grade für schnelle serielle Verbindungen schien mir C++ am schlausten daher hab ich mir mal die Basics angeeignet aber wie gesagt, bezüglich serial ports finde ich keinerlei aktuelle Scripts oder Anleitungen an denen ich mich orientieren könnte.

    Ich glaube dass deine Probleme eher damit zu tun haben dass du dich mit C++ und dem ganzen dazu nötigen drumherum nicht ausreichend auskennst.

    Wieso zeigst du uns nicht einfach einen Versuch den du anhand von einer dieser 10 Jahre alten Beispiele gemacht hast, und was für Fehler du dabei bekommen hast?



  • @hustbaer Beispiel 1: .NET Core und der nuget package manager. musste erstmal System.IO.Ports darüber installieren. Ging trotzdem nicht. Im Serial Monitor der ArduinoIDE kommen sofort daten an. im visual studio programm nichts. obwohl der port geöffnet zu sein scheint denn er wird als busy erkannt wenn ich in der arduino ide dann versuche den serial monitor zu öffnen.

    Beispiel 2: immer wieder "keywords" die als "deprecated" markiert wurden. es ändert sich nix ja?



  • @hustbaer Hier mal ein Beispiel was in C# immer ging.

    using System;
    using System.IO.Ports;
    using System.Threading;
    
    namespace SerialReadTest
    {
        class SerialRead
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Serial read init");
                SerialPort port = new SerialPort("COM4", 115200);
                port.Open();
                while (true)
                {
                    Console.WriteLine(port.ReadLine());
                }
    
            }
        }
    }
    
    
    


  • @whatever sagte in Serielle Verbindung zu Arduino in Visual Studio 2021 C++:

    @hustbaer Beispiel 1: .NET Core und der nuget package manager. musste erstmal System.IO.Ports darüber installieren.

    Du hast geschrieben dass du C++ verwenden willst. .NET Core und System.IO.Ports haben nichts mit C++ zu tun.

    Beispiel 2: immer wieder "keywords" die als "deprecated" markiert wurden. es ändert sich nix ja?

    Ich hab ja auch nix von Keywords geschrieben sondern von Win32 Funktionen. Von denen werden zwar auch manchmal welche als deprecated markiert, aber die wirst du für serielle Kommunikation nicht brauchen.



  • @whatever sagte in Serielle Verbindung zu Arduino in Visual Studio 2021 C++:

    @hustbaer Hier mal ein Beispiel was in C# immer ging.

    C# und C++ sind zwei völlig verschiedene Sprachen.

    Davon abgesehen: wieso sollte das Beispiel nicht mehr gehen? Und wenn du mit .NET Core Probleme hast, dann versucht doch einfach das gute alte .NET Framework.

    Und entscheide dich bitte ob du C++ oder C# verwenden willst.



  • @hustbaer sag du's mir wieso es nicht mehr geht. Ich hab das Gefühl dass gar nichts mehr geht in version 2022.



  • Also willst du es jetzt mit C# machen oder wie?

    Falls ja, dann probier wie gesagt mal das gute alten .NET Framework statt .NET Core.
    Wenn der Code vor 10 Jahren so funktioniert hat, dann wird er heute auch noch so funktionieren. Die Visual Studio Version macht da sicher keinen Unterschied. Was einen Unterschied machen könnte ist die Framework-Version bzw. so Sachen wie .NET Core vs. .NET Framework. Sollte zwar nicht sein, aber das ist durchaus möglich.


Log in to reply