Guten Tag, ich habe ein möglicherweise ungewöhnliches Anliegen in Bezug auf die Mikrocontroller-Programmierung. Aktuell sitze ich an einem relativ umfangreichen Mikrocontroller-Programm, werde oft weg von zu Hause sein und möchte die Zeit nutzen, um weiter an meinem Projekt zu arbeiten. Mein Laptop ist für die von mir bevorzugte IDE jedoch zu langsam und die Schaltung ist auch nicht wirklich portabel, daher werde ich beides auswärts nicht nutzen können. Mal abgesehen davon, dass ich im Zug auch nicht spontan einen Sensor oder eine LED anbringen kann. Ich habe jedoch vor langer Zeit unter Windows in C++ ziemlich umfangreiche Programme geschrieben, oft mit GUI und mit Kommunikation zwischen meinen Anwendungen. Inzwischen bin ich jedoch auf Linux umgestiegen und programmiere mehr im Backend-Bereich mit Webservern und Datenbanken. Da es so etwas wie einen Simulator in der IDE von STM nicht zu geben scheint, kam mir die Idee, dass ich vielleicht unter Linux eine minimale GUI programmiere, die meine Peripherie darstellt. Im Grunde würden mir ein Textfeld als Display sowie diverse Steuerelemente, Eingabefelder und bunte Flächen als LEDs genügen, um meine Peripherie und die Sensorik abzubilden. Diese GUI sollte mit einem C-Programm kommunizieren, dass die Logik der Steuerung abbildet. Das mag vielleicht übertrieben erscheinen, aber ich werde jetzt viel Zeit mit der Programmierung grundsätzlicher Abläufe, Funktionen und der Kommunikation zwischen Funktionen verbringen und das habe ich als grobes Schema, quasi so etwas wie eine StateMachine, bereits ohne Mikrocontroller lauffähig als C-Programm in Code::Blocks abbilden können und Code:Blocks läuft auf meinem Laptop schnell genug. Mir fehlt im Grunde nur noch die GUI, um z.B. mit Buttons Änderungen an Sensoren zu simulieren und die Reaktionen der Steuerung zu visualisieren. Wenn ich die GUI z.B. mit PHP/HTML programmiere, könnte ich das später sogar für die Visualisierung der Steuerung im LAN verwenden. Ich suche vermutlich also eine Lösung, um unter Linux eine einfache GUI zu programmieren, die Messages mit einem klassischen C-Programm austauscht. Ich bin mir aber nicht sicher, wie ich das am schnellsten umsetzen kann. GUI und C scheint ja nicht so sinnvoll zu sein, da nimmt man anscheinend auch unter Linux eher C++ mit entsprechenden Toolkits wie QT oder wxWidgets. Aber welches ist der sinnvollste Weg, um Ein- und Ausgaben mit dem C-Programm zu kombinieren? Mich interessiert sehr, wie ihr das Problem lösen würdet, also ob ihr z.B. QT für die GUI und dann NamedPipes für die Kommunikation mit einem C-Konsolen-Programm nehmen würdet, oder ob man die GUI doch gleich mit HTML/PHP programmieren sollte? Herzliche Grüße Karlfried
Für die Arduinowelt gibt es diese Art von Simulatoren: https://wokwi.com/projects/328451800839488084
Christoph M. schrieb: > Für die Arduinowelt gibt es diese Art von Simulatoren: Wow, das sieht ja richtig schick aus. Ich programmiere einen STM32 (Arm Cortex M4), falls das wichtig ist.
Ich würde da ganz simpel anfangen, und die Kommunikation mit deinem "µC-Simulator" per stdin/stdout machen. dort mit einfachen Befehlen zum Setzten von Inputs, und einfacher Ausgabe wenn sich an den Outputs was ändert. => verkompliziert den Code nicht allzusehr, und, großer Vorteil, du kannst den Teil erstmal ohne GUI an der Konsole testen. (Also kein Binär-Protokoll verwenden, sondern was "tippbares") Nächster Schritt wäre dann das verheiraten von STDIN/OUT deines Prozesses mit einer GUI. Mein Weg wäre ein kleines, relativ generisches Server-Progrämmchen, was den Prozess startet, und einfach input/output auf einen Websocket umbiegt. Eigentliche GUI dann in HTML+Javascript zum Zugriff auf den Websocket.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.