Programmieren mit KI (42)

OP #8005071
Lesenswert?

(Firma: 1984now) #8005341
Lesenswert?

Alexander schrieb:

Hast Du den Screenshot gesehen

Welchen Screenshot? Du hirnloser Troll hast nur ein paar Links gepostet. Und das sogar noch ohne jede Erklärung, was man da zu sehen bekommen würde. Kein vernünftig denkender Mensch klickt auf sowas. Wirklich kritisch denkende Menschen klicken nichtmal drauf, wenn die Begleitgeschichte stimmig ist. Aber hier gab es ja nicht mal eine.

trollst Du hier gerade.

Jepp, das tust du.

#8005442
Lesenswert?

Harald K. schrieb:

Darauf haben wir sicher alle ganz dringend gewartet.

👍👍👍

Da der Beitrag vom TO so eh nutzlos sein wird, mal eine Frage zu den jetzt auf den Markt strömenden KI-ICs: Kann mal jemand erklären was die anders machen? Ich lese nur immer (aber nicht tief in die Materie) wie toll die sind, aber nie wie genau die arbeiten.

Harald K. schrieb:

Da ist der Einfluss des Rückganges von mit Fünfmastern arbeitenden Piraten auf die Verfügbarkeit von Parkplätzen am Stachus größer.

😂😂😂😂

OP #8005577
Lesenswert?

Philipp K. schrieb:

Eine Idee zu den fehlenden Sourcen..

Die neuen esp32 Arduino Versionen linken bei lwip auf vorkompilierte Bibliotheken.

Die Datei gibt's eigentlich nicht mehr direkt.

Ist das ein Projekt mit offenem Code, das man das ausprobieren kann?

Hm.. ab welcher Version? Muss ich später noch mal testen, erstmal Kaffee und Ibuprofen... ausprobieren kann man das mit der Arduino IDE, wobei das schon paar Monate her ist. Sollte sich da was geändert haben wäre das blöd.

Alexander schrieb:

Solange es keine Breaking Changes zwischen arduino-esp32 v3.0.7 (ESP-IDF v5.1.4) und v3.3.6 (ESP-IDF v5.5.2) gibt liegt es wohl eher nicht am Framework, da es in der Arduino IDE kompiliert. Ich denke die vscode-arduino Community Edition ist nicht offiziell und wohl schon länger nicht gepflegt.

Nemopuk schrieb:

Wie gesagt: Es compiliert trotzdem. Dem Compiler ist egal, ob der Texteditor alle referenzierten Dateien findet. Alles was der Compiler braucht ist auch vorhanden.

Ist das so? Auf Github verlinkter Workaround ist die fehlenden Includes in die c_cpp_properties.json einzutragen. Copilot meinte aber ich kann die c_cpp_properties.json löschen und den Pfad global hinterlegen. Ich hab also nur diese beiden Dateien, hier verlinkt.

1
%AppData%/Code/User/settings.json
2
.vscode/arduino.json

https://www.mikrocontroller.net/topic/goto_post/8004871

Was ich schon herausgefunden habe es werden keine env vars geparsed, man kann also %UserProfile% oder %AppData% nicht verwenden. Wildcards sollten doch aber funktionieren? Backslash mit Escape?

1
"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-libs\\*\\include\\**"
#8005687
Lesenswert?

Alexander schrieb:

Ohne das kann ich auch bei Notepad++ bleiben.

Alexander schrieb:

Aber das ist doch genau das weshalb ich überhaupt VS Code installieren wollte - Programmieren mit KI. Ohne das kann ich auch bei Notepad++ bleiben.

Die fehlenden Dateien brauchst du nicht. Der Compiler braucht sie nicht. Die KI braucht sie auch nicht.

Wo ist dein Problem? Hast du Angst vor der roten Schlangenlinie und der zugehörigen "Problem" Meldung?

: Bearbeitet durch User
OP #8005691
Lesenswert?

Also Augen zu und durch ist nicht so meins. Es werden Fehlermeldungen angezeigt. Woher soll man echte von falschen Fehlermeldungen unterscheiden wenn wirklich mal eine Lib fehlt?

IntelliSense funktioniert auch nicht. Nur die KI im Chatfenster. Aber da muss ich ja prompten. Es hieß es ginge ohne, das wollte ich testen.

#8005699
Lesenswert?

Alexander schrieb:

Woher soll man echte von falschen Fehlermeldungen unterscheiden wenn wirklich mal eine Lib fehlt?

Indem man den Ausgaben des Compilers vertraut.

IntelliSense funktioniert auch nicht

Das kenne ich. Da musst du nur den Nippel durch die Lasche ziehen, und mit der kleinen Kurbel ganz nach oben drehen. Dann erscheint sogleich ein Pfeil, und da drücken sie dann drauf, und schon geht die Sache auf.

Oder so ähnlich. Bei deinen beschissenen Problembeschreibungen habe ich absolut keine Lust, den ganzen Kram bei mir zu installieren, um es hoffentlich (wahrscheinlich aber nicht) nachvollziehen zu können. Mache das mal schön selber. Könntest ja mit einer frischen Windows/Linux Installation (ggf. in einer VM) beginnen.

Bei mir hatte es (Arduino+ESP32+Copilot in vscode) vor ein paar Monaten auf dem alten Laptop funktioniert. A aber den habe ich "platt" gemacht. Da ist im Moment gar nichts drauf, außer ein frisches Debian.

: Bearbeitet durch User
OP #8005772
Lesenswert?

Nemopuk schrieb:

Bei deinen beschissenen Problembeschreibungen habe ich absolut keine Lust, den ganzen Kram bei mir zu installieren, um es hoffentlich (wahrscheinlich aber nicht) nachvollziehen zu können.

Musst Du ja auch nicht. Ich hab das ja schon gemacht und das Problem identifiziert. Du hast es bei Dir auch nicht lösen wollen, sondern ignoriert. Kann man so machen. Ich hab den Thread aufgemacht für den Fall dass es jemand lösen will.

Das sauberste wäre die vscode-arduino Extension zu verstehen und einen Commit auf Github einzusenden. Die c_cpp_properties.json wird autogeneriert. Da fehlt halt der neue Pfad esp32-libs

#8005779
Lesenswert?

Jetzt habe ich doch nochmal installiert, nur für dich Alexander.

Wie du siehst, compiliert das Projekt trotz der "Problems" vom Texteditor. Dein "Intellisense" funktioniert auch. Wie man hier sieht ist das Editor-Fenster keineswegs winzig (wie du im anderen Thread schriebst).

Alexander schrieb:

Das sauberste wäre die vscode-arduino Extension zu verstehen und einen Commit auf Github einzusenden. Die c_cpp_properties.json wird autogeneriert. Da fehlt halt der neue Pfad esp32-libs

Da stimme ich dir zu

Angehängte Dateien:
: Bearbeitet durch User
OP #8005793
Lesenswert?

Danke fürs testen. Den Verbose Log hatte ich bei mir nicht eingestellt, deswegen habe ich nur in der Statusleiste eine Sanduhr die mir anzeigt dass es kompiliert.

Schau mal bitte in Deiner ~/.config/Code/User/settings.json ob die Fehlermeldungen verschwinden, entweder C_Cpp.default.includePath oder C_Cpp.default.compilerPath eines von beiden.

Angehängte Dateien:
#8005814
Lesenswert?

Ich ändere die Pfade lieber in der Projekt-Konfiguration, weil ich nicht nur ESP32 Projekte bearbeite. Also die Datei .vscode/c_cpp_properties.json

Habe diese beiden Zeilen hinzugefügt:

1
"/home/stefan/.arduino15/packages/esp32/hardware/esp32/3.3.6/libraries/**",
2
"/home/stefan/.arduino15/packages/esp32/tools/esp32-libs/3.3.6/include/**"

Der Pfad "3.3.6/cores/esp32" war schon drin und in meinen persönlichen Ordnern habe ich gerade keine Bibliotheken. Einige "Problems" sind dadurch weg. Aber er findet die Datei portmacro.h noch nicht.

Die Konfigurationsdatei wird aber vom Arduino Plugin irgendwann wieder überschrieben, deswegen ist das keine Lösung für mich.

Was man machen kann: In der Konfigurationsdatei das gesamte Array-Element mit dem Namen "Arduino" mit einem eigenen Namen wie "My Settings" duplizieren. Dann dort die gewünschten Pfade hinzufügen und diese Konfiguration ganz unten in der Statuszeile der IDE (anstelle von Arduino) auswählen.

Aber: Diese eigene Konfiguration wird nicht automatisch aktualisiert.

Damit bin ich immer noch nicht weiter als vor ein paar Jahren. Es ist den Aufwand nicht Wert. Editor und Compiler funktionieren ja. Die paar Warnungen ignoriere ich lieber.

: Bearbeitet durch User
#8005890
Lesenswert?

Alexander schrieb:

Manche wollen auch gar nichts damit anfangen können, und sich lieber aufregen.

Wer will sich halt ohne Kontext mit irgendwas beschäftigen? Sorry, aber das Ei hast du dir echt selbst gelegt.

Du willst VSCode wg. KI-Integration nutzen, kannst aber scheinbar die eigene reale Intelligenz nicht dazu einsetzen, es so hinzubekommen, wie du es dir wünscht.

Hast du schonmal die KI gefragt, wie das geht? Ich mein, wenn KI dabei nicht helfen kann, weil die eigene R(eal)I nichts bringt, solltest zumindest DU auf diese Features verzichten. - Sorry für den Angriff, aber man sollte seine genutzten Werkzeuge schon kennen.

Wenn du ein Problem hast, dass mit KI nicht gelöst werden kann, dann schildere dieses explizit. Wer KI "versteht", weiß auch, dass es Probleme gibt, die nicht ausreichend lösbar sind. Dann frag' halt Menschen, wie es vernünftig funktioniert nimm' nicht den Umweg über die KI. Wenn etwas in VSCode nicht funktioniert, suche den Fehler; Und wenn es dir möglich ist, behebe Ihn! - Aber mach' nicht den Fehler, die KI dafür zu blamen, denn Diese ist manchmal dümmer als nen 3-jähriger mit Trisomie-21. (Sorry dafür - und vor allem nichts gegen entsprechend betroffene Personen, aber es braucht glaube ich klare Worte...)

(Schon wieder viel zu ausfallend... Aber das musst irgendwie sein...)

OP #8005905
Lesenswert?

M. P. schrieb:

Dann frag' halt Menschen, wie es vernünftig funktioniert nimm' nicht den Umweg über die KI.

https://www.mikrocontroller.net/topic/goto_post/8004613

M. P. schrieb:

Wenn etwas in VSCode nicht funktioniert, suche den Fehler; Und wenn es dir möglich ist, behebe Ihn!

Ist ein bisschen armselig wenn ausgerechnet ich als DAU der eigentlich nur mal eine Empfehlung testet darauf stoße. Niemand scheint vscode-arduino ernsthaft zu nutzen.

https://github.com/microsoft/vscode-arduino

#8005929
Lesenswert?

Alexander schrieb:

M. P. schrieb:

Dann frag' halt Menschen, wie es vernünftig funktioniert nimm' nicht den Umweg über die KI.

https://www.mikrocontroller.net/topic/goto_post/8004613

Wieder ein Link, ohne Kontext - wenn auch hier im Forum selbst. - Trotzdem ist kein Zusammenhang zum ersten Post in diesem Thread zu sehen. Vielleicht, weil noch immer der Kontext von dir in diesem Beitrag fehlt...

M. P. schrieb:

Wenn etwas in VSCode nicht funktioniert, suche den Fehler; Und wenn es dir möglich ist, behebe Ihn!

Ist ein bisschen armselig wenn ausgerechnet ich als DAU der eigentlich nur mal eine Empfehlung testet darauf stoße. Niemand scheint vscode-arduino ernsthaft zu nutzen.

https://github.com/microsoft/vscode-arduino

Weil es Github ist, habe ich den Link auch mal ausnahmsweise geklickt...

"Visual Studio Code extension for Arduino (deprecated).."

Weist du, was "deprecated" bedeutet, gerade, wenn das letzte Update als "2 years ago" gekennzeichnet ist?

Ich mein, direkt nach der Kopfzeile kommt sowas wie:

"This extension is deprecated and no longer maintained. We recommend existing customers to use the Arduino IDE software."

oder

"This extension will no longer be available on the marketplace as of 10/1/2024, please see details here."

Ich glaube zu wissen, dass 07/2/2026 mittlerweile nahezu vergangen ist - zumindest hier in Deutschland. Das ist weit nach 10/1/2026...

#8005937
Lesenswert?

Alexander schrieb:

M. P. schrieb:

Weißt du, was "deprecated" bedeutet

Was glaubst Du warum ich Dir das verlinkt habe? Der Fork davon ist im OP verlinkt.

Also besteht deine Kritik weiterhin aus Links und du willst uns nicht weiter erläutern, warum du dieses Thema aufgemacht hast?

Ja, µC.net ist in mancher Hinsicht verkommen, aber gewisses Mindestmaß an Informationen in einem Beitrag sollte auch im ersten Beitrag davon vorhanden sein.

Möchtest du eine Antwort auf eine nicht vorhandene Frage? Möchtest du Kritik äußern? Hast du sonst klärungsbedarf? Diese Fragen bleiben einfach offen, wenn du lediglich 5 Links ohne irgendeinen Text postest. - Dementsprechend "aufmerksam" nehme deine Redebeiträge in diesem "Thema" wahr.

Aber btt.: Wenn du genau deswegen irgendeinen unzitierten Link gepostet hast: Du weißt es also scheinbar, ignorierst aber die Entwicklung der letzten ~1.5 Jahre -oOder den von dir genannten Fork: Was steht da? Kannst du es verstehen?

OP #8005950
Lesenswert?

Das Problem (Zitat aus Link #1): "VS Code findet nicht mal die Standard Includes." Untermauert mit Screenshot.

Dazu 4x Issues (eines davon sogar mit pull request als mögliche Lösung) die genau /eines/ gemeinsam haben (Link #2 - #5): VS Code findet nicht die Includes.

VS Code hat kein Interesse daran es zu pflegen - /deprecated/ - deswegen der Community Fork als Nachfolger (um den es hier geht). Dieser wurde mir (neben PlatformIO) in dem anderen (über Link #1 erreichbaren) Thread empfohlen. Scheint aber ebenfalls irgendwie /abandoned/ zu sein.

Brauchst Du weiteres spoon feeding, oder bist Du in der Lage STRG + F zu klicken, "alecxs" einzutippen und Dich in ein Thema einzulesen bevor Du es kommentierst?

: Bearbeitet durch User
#8005969
Lesenswert?

Alexander schrieb:

Ist ein bisschen armselig wenn ausgerechnet ich als DAU der eigentlich nur mal eine Empfehlung testet darauf stoße.

Nein, darauf sind (wie ich bereits schrieb) schon andere gestoßen. Aber andere können damit leben, dass kostenlose Tools Fehler enthalten. Du hingegen reitest seit 3 Tagen auf ein völlig unwichtigen Warnmeldungen für Dateien herum, die für deine Arbeit unwichtig sind. Nochmal: Das Projekt compiliert trotzdem!

Alexander schrieb:

VS Code findet nicht mal die Standard Includes.

Falsch. Das ist kein Fehler in vscode, sondern im Arduino Plugin. Wobei die Entwickler dieses Plugins den schwarzen Peter vielleicht an Espressif weiter reichen, weil deren ESP32 Core nicht 100% Arduino kompatibel strukturiert ist. Das Problem ist allerdings noch viel älter, denn schon der ESP8266 core von 2018 (der ein Community Projekt war, nicht von Espressif) hatte bereits das gleiche Problem. Tausende Nutzer leben schon seit 8 Jahren damit. Nur du kannst es nicht. Denke mal darüber nach!

Noch was: Du wolltest das Programmieren mit KI Agenten ausprobieren. Dir wurde vscode als eine Möglichkeit dazu vorgeschlagen. Und die funktioniert auch bei dir. Warum zum Teufel hängst du dich an den verfickten Warnmeldungen auf, die das Ausprobieren der KI kein bisschen behindern?

: Bearbeitet durch User
#8006018
Lesenswert?

Alexander schrieb:

Das Problem (Zitat aus Link #1): "VS Code findet nicht mal die Standard Includes." Untermauert mit Screenshot.

Dazu 4x Issues (eines davon sogar mit pull request als mögliche Lösung) die genau eines gemeinsam haben (Link #2 - #5): VS Code findet nicht die Includes.

VS Code hat kein Interesse daran es zu pflegen - deprecated - deswegen der Community Fork als Nachfolger (um den es hier geht).

O weh.

Vscode interessiert sich nicht für Deine Includes. Dafür ist vscode nicht zuständig.

Zuständig ist dafür die von Dir dafür installierte Erweiterung.

Wenn Du rumheulen willst, dann doch bitte sachlich richtig.

Eine von mehreren Möglichkeiten besteht darin, die "intellisense"-Erweiterung zu verwenden (das erkennt man an der Datei c_cpp_settings.json im .vscode-Verzeichnis), aber das ist nur eine.

Eine andere wäre die Verwendung von clangd zusammen mit einem passenden Languageserver - auch dafür gibt es eine Erweiterung.

Nur: Was auch immer an diesen oder anderen Erweiterungen veraltet ist, nicht funktioniert oder auch einfach nicht verstanden wird -- das ist nicht vscode, sondern nur die jeweilige Erweiterung.

Egal aber, welche Erweiterung man verwendet, man muss sich damit beschäftigen, und man muss sich auch damit beschäftigen, wo denn nun die von einem verwendete "toolchain" (hier ja wohl irgendeine Arduino-Variante) ihre ganzen Includedateien etc. unterbringt, damit man die vom Compiler verwendeten Suchpfade passend auch in die Intellisense- bzw- Äquivalenzerweiterung eintragen kann.

Ja, man muss schon ein bisschen den Arsch selbst hochbekommen.

OP #8006063
Lesenswert?

Harald K. schrieb:

Vscode interessiert sich nicht für Deine Includes. Dafür ist vscode nicht zuständig.

Zuständig ist dafür die von Dir dafür installierte Erweiterung.

Wenn Du rumheulen willst, dann doch bitte sachlich richtig.

Wortklauberei. Die originalen Entwickler der Erweiterung sind die Visual Studio Code Entwickler von Microsoft. Vielleicht nicht das VS Code Kernteam, aber definitiv ein separates Microsoft‑Team das speziell für die Arduino‑Erweiterung zuständig war.

https://devblogs.microsoft.com/iotdev/visual-studio-code-extension-for-arduino-is-now-open-sourced

Dass heute niemand mehr dafür zuständig ist steht auf einem anderen Blatt.

Harald K. schrieb:

Ja, man muss schon ein bisschen den Arsch selbst hochbekommen.

(Wäre nicht das erste mal..

Problem: https://github.com/espressif/arduino-esp32/issues/10120#issuecomment-2395594762

Lösung: https://forum.arduino.cc/t/ide-preferences-leveldb/1312668/6

Umsetzung: https://github.com/aIecxs/arduino-esp32/commits/release/v3.0.x/tools/rawconfig.py

... andere Baustelle)

#8006178
Lesenswert?

Harald K. schrieb:

Vscode interessiert sich nicht für Deine Includes. Dafür ist vscode nicht zuständig.

Zuständig ist dafür die von Dir dafür installierte Erweiterung.

Bei mir habe ich eine zunächst nicht gefundene Include-Datei einfach zusammen mit ihrem Pfad in die Include-Anweisung der main.cpp eingetragen. Da wird sie dann auch gefunden, sowohl von der PlatformIO- als auch von der MS-IntelliSense-Extension. In meinem Fall ist der Pfad relativ: #include "../../abc/def.h". Trotz Windows kein Backward-Schrägstrich!

OP #8006684
Lesenswert?

Man kann die fehlenden esp32-libs Includes auch in der platform.txt eintragen bzw. eine platform.local.txt erstellen, dann landen diese in der c_cpp_properties.json.

%UserProfile%/AppData/Local/Arduino15/packages/esp32/hardware/esp32/3.3.6/platform.local.txt

1
# Compile Flags
2
compiler.cpreprocessor.flags.extra.intellisense="-I{compiler.sdk.path}/include/"
3
compiler.cpreprocessor.flags="@{compiler.sdk.path}/flags/defines"                \
4
                             "-I{build.source.path}"                             \
5
                             -iprefix "{compiler.sdk.path}/include/"             \
6
                             "@{compiler.sdk.path}/flags/includes"               \
7
                             "-I{compiler.sdk.path}/{build.memory_type}/include" \
8
                             "{compiler.cpreprocessor.flags.extra.intellisense}"

Allerdings akzeptiert der Parser kein recursive globbing (include/**) daher müsste man alle -iprefix, -iwithprefixbefore, -iwithprefixafter selbst rekursiv auflösen und einzeln anhängen. Das liese sich über ein platform.local.txt Script (z.b. python) realisieren welches man über recipe.hooks.prebuild.1.pattern= ausführt.

Man könnte auch die arduino.json nutzen um ein Script zu starten, über VSCA_BUILD_MODE == Analyzing wird allerdings nur prebuild angestoßen. Sinnvoller wäre ein postbuild Script, damit könnte man den -iprefix Pfad als globstar pattern direkt in c_cpp_properties.json eintragen, ohne Umweg über Fake -I Includes.

https://github.com/vscode-arduino/vscode-arduino#pre--and-post-build-commands

Ist mir aber zu viel gebastel. Das eigentliche Problem ist, dass der Intellisense Parser gar keine platform.txt Properties liest, es werden nur recipe.cpp.o.pattern aus dem arduino-cli JSON Compileraufruf extrahiert. Es ist nur eine Engine gebaut wurden die ausschließlich den Standard ccp.ParserGcc() an den Runner übergibt, und der kann halt nur -I Includes.

Man müsste eigentlich eine -iprefix Engine basteln die den Pfad extrahiert und ein globstar anhängt. Das könnte man direkt hinter runner.result.cleanup() einbauen.

https://github.com/vscode-arduino/vscode-arduino/blob/main/src/arduino/intellisense.ts#L144

Aber erst die ganze VS Code Arduino Community Extension selbst kompilieren und den Kram auf verschiedenen Plattformen testen (win/linux/darwin) habe ich keine Lust. Zumal die Extension wohl vor allem für Arduino Boards genutzt wird, und weniger für ESP32 Boards (sonst hätte das schon längst mal jemand gefixt)

Harald K. schrieb:

Nemopuk schrieb:

Aber er findet die Datei portmacro.h noch nicht.

Na, und wo liegt die?

Die liegt ebenfalls in den esp32-libs ist wohl ein Problem mit der -maxdepth Rekursionstiefe. So gehts - entweder in c_cpp_properties.json oder global in settings.json. Die c_cpp_properties.json kann man deaktivieren, dann greifen die globalen C_Cpp.default.includePath:

1
"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-libs\\3.3.6\\include\\**",
2
"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-libs\\3.3.6\\include\\freertos\\FreeRTOS-Kernel\\portable\\xtensa\\include\\freertos",

Harald K. schrieb:

(Übrigens sollte es auch möglich sein, die Pfade ohne Benutzernamen anzugeben,

${env:UserProfile} oder ${UserProfile} könnte funktionieren, ist aber nicht plattformübergreifend.

: Bearbeitet durch User
OP #8007453
Lesenswert?

Nemopuk schrieb:

Alexander schrieb:

Das sauberste wäre die vscode-arduino Extension zu verstehen und einen Commit auf Github einzusenden. Die c_cpp_properties.json wird autogeneriert. Da fehlt halt der neue Pfad esp32-libs

Da stimme ich dir zu

Hat schon mal jemand gemacht. Der entsprechende pull request #17 hängt leider seit 3 Jahren in der Pipe.

https://github.com/tylerjwatson/cocopa/blob/feature/gcc-directory-options/src/ParserGcc.ts

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren