-
Notifications
You must be signed in to change notification settings - Fork 405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Platformio meldet folgende Fehler für die Dev #50
Comments
Dazu sind sicherlich einige in der Lage. Das Thema gab es auch schon: https://discourse.voss.earth/t/richtige-ide-statt-arduino-sdk/980 |
Hi, dann wäre das ja super, wenn sich jemand finden und das tun würde. Gruß |
Wenn du was auf die Schnelle ausprobieren möchtest, kannst du in mein Repo hinein schauen: https://github.com/grimmpp/audiobox-for-kids . Es basiert auf PIO. Es ist alles auch PIN-kompatibel zu TonUINO, allerdings kenne ich den Unterschied zur aktuellen DEV Version nicht. ... |
Guck ich mir an, danke. Den Code kompatibel zu machen, ist dann meine erste Hürde, um dann richtig loslegen zu können. Wäre nett, wenn das jemand hinkriegt, der das mal eben so aus dem Ärmel schüttelt. Auch wäre es mehr als sinnvoll, den Code einmal an einer Stelle sauber zu machen. |
Das hatte ich gemacht und dann habe ich angefangen ihn objektorientiert umzuschreiben. Unter lib kannst du die "Helfer"-Klassen finden. Wenn du es kompiliert werden dir die Abhängigkeiten als Baum gelistet. ... |
Das gefällt mir gut, was du gemacht hast. Der Code ist aber komplett anders, und so denke ich, dass, wenn die Dev mal zur Master wird, oder neue Änderungen reinkommen, auch der wieder "umgebaut" werden müsste. Ich probiere deshalb erst mal weiter an der Bereinigung der Dev zu Platformio rum, bin eigentlich auch schon fast fertig. |
https://github.com/A-A-G/TonUINO/tree/platformio PlatformIO zum laufen zu bekommen dauert ja länger als die paar Anpassungen... :) |
Ich stand heute vor dem gleichen Problem: Ich möchte mich zukünftig gerne an der Entwicklung dieses genialen Projekts (großen Dank an @xfjx!) beteiligen, arbeite jedoch ungern in der Arduino IDE. Also hieß es, das Projekt in VS Code auf Basis von PlatformIO aufzusetzen. Da Thorsten verständlicherweise die Einstiegshürden so niedrig wie möglich halten will und damit die Nutzbarkeit mit der Arduino IDE das Maß der Dinge ist, sind große Umbauten am Code also tabu. Glücklicherweise sind diese aber auch gar nicht notwendig gewesen. Am Ende habe ich das Projekt nun so aufgesetzt, dass die PIO-spezifischen Dateien und Verzeichnisse nicht ins Projekt gepusht werden (PR #53) und sich der Code ohne Fehler und Warnungen compilieren lässt (PR #54; hier sind die Anpassungen von @A-A-G enthalten). Basis ist die reguläre Verzeichnisstruktur des Originalrepo-DEV-Branches. Nach Einrichtung des PIO-Projektes ist dies der Inhalt meiner
Ich nutze einen barebone Atmega328 (der mit 8 MHz und 3.3V Spannung läuft) auf einer eigenen Platine, daher das ungewöhnliche Board. Wichtig ist eigentlich nur der Abschnitt Wenn Thorsten die beiden PRs mergt und die Änderungen in den DEV-Branch wandern, solltet Ihr also eigentlich recht schnell die PIO-Umgebung aufsetzen können. Viele Grüße, |
Zur Kenntnis: unter https://github.com/alexanderwillner/tonuino ist der Support auch drin. Was die Arduino-Unterstützung angeht, habe ich unter https://github.com/AlexanderWillner/TonUINO/tree/cleanup einmal getestet, dass eine leere |
Hallo @AlexanderWillner. Erstmal Danke für das Angebot. Aktuell bin ich sowohl beruflich als auch familiär sehr eingespannt. Auch der Rest des Projekts (Support) nimmt viel Zeit in Anspruch. Bald wird es sicher wieder etwas ruhiger bei mir und ich kann mich wieder aktiver um die Weiterentwicklung kümmern. Platform-IO ist aktuell nicht geplant, da es Dinge für Enduser verkomplizieren würde. Das ist ja das tolle an Opensource - du kannst es ja für dich so umstellen oder erweitern wie du willst. Darum habe ich es so aufgesetzt. |
Danke für das Feedback.
Das verstehe ich gut.
Nach den Änderungen ändert sich für den Enduser nichts: ein Doppelklick auf eine
Wirklich prima, dass der Code auf GitHub gehostet ist. Gleichzeitig ist die Idee von Opensource nicht, dass jeder für jeden Bugfix und jede Änderung seinen eigenen Fork hat, sondern dass die Community zum Quelltext beiträgt (Pull Requests). |
Hi Alexander. Meine Kritik würde gelöscht und wie du siehst, ist kein Interesse daran, den Code zugänglicher zu machen oder zu debuggen. Das sind Windmühlen, und das muss man nicht verstehen. Haben schon zig andere versucht, aber, warum auch immer, schalten die hier auf stur. |
Es kann ja auch nicht sein, dass es eine Stelle gibt, die den Master Code hier hat, viele Forken und debuggen, aber der Master wird hier nicht debugged. Das ist nicht Anfänger oder Anwenderfreundlich |
Das Löschen des Beitrags fand ich auch nicht so gelungen... |
Die Unterstützung einer richtigen Entwicklungs- und Buildumgebung würde dazu beitragen, dass - nennen wir sie mal fortgeschrittene - Entwickler sich eher an der Weiterentwicklung des Projektes beteiligen würden. Davon hätten dann auch die regulären Enduser etwas. Und wie @AlexanderWillner schon schreibt: Wenn es richtig gestaltet ist, ändert sich für normale Anwender nichts.
Genau das geschieht hier ja dummerweise schon: Viele, die Commits im Projekt erstellen, um entweder Fehler zu beheben oder Funktionalität hinzuzufügen, machen dies ausschließlich in ihren jeweiligen Forks. Das kann doch nicht wirklich in Deinem Interesse sein. Auf der Projekt-Website schreibst Du ja selbst:
oder
|
Die arduino IDE bügelt aber Fehler gut aus. Nutzt man dann aber eine andere, die das nicht macht, zum Beispiel PlatformIO, dann möchte diese erst, dass die Fehler entfernt werden. Das sind teilweise einfache typos, manchmal auch semantik. Diese Fehler sind halt in dem "Ur"-Quellcode, der hier vertrieben wird. Die müssen entfernt werden, hier und nur hier. Alle anderen forks haben auch dieselben Fehler, außer die bereinigten. Es ist so für den Anfänger nicht möglich, sich weiter zu entwickeln, außer, wenn er sich dann die Krümel sucht, und selbst debugged. Es gibt schon zig Versuche, tonuino auf eine andere Ebene zu heben, und jedesmal scheitert es an denselben festgefahrenen Stellen. Ich meine ihr wollt eine neue Platine rausbringen, wohl um vieles zu vereinfachen. Wie soll die anständig laufen, wenn der Code nicht 100% stimmt, bzw von anderen IDE fehlerfrei genutzt werden kann? Aber, das ist ja eigentlich auch egal. Totgefahren und zensiert, also bin ich zum Beispiel raus, auch wenn ich nicht viel beitragen konnte, da ich hier auf Granit stieß. |
Hi.
PlatformIO ist die Dev-Ebene meiner Wahl. Ist jemand in der Lage, die Dev so zu programmieren, dass folgende Fehler nicht mehr beim kompilieren erscheinen? PlatformIO Code dürfte ja auch bei der Arduino IDE klappen, welche ja eher Fehler ausbügelt/ignoriert, PlatformIO aber nicht.
Compiling .pio\build\nanoatmega328\src\main.cpp.o
src\main.cpp: In member function 'virtual void SleepTimer::loop()':
src\main.cpp:277:25: error: 'setstandbyTimer' was not declared in this scope
setstandbyTimer();
^
src\main.cpp:279:16: warning: deleting object of polymorphic class type 'SleepTimer' which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
delete this;
^
src\main.cpp: In member function 'virtual bool KindergardenMode::handleNext()':
src\main.cpp:422:20: error: 'playFolder' was not declared in this scope
playFolder();
^
src\main.cpp: In function 'void nextTrack(uint16_t)':
src\main.cpp:534:21: error: 'setstandbyTimer' was not declared in this scope
setstandbyTimer();
^
src\main.cpp:545:23: error: 'setstandbyTimer' was not declared in this scope
setstandbyTimer();
^
src\main.cpp:566:21: error: 'setstandbyTimer' was not declared in this scope
setstandbyTimer();
^
src\main.cpp:581:23: error: 'setstandbyTimer' was not declared in this scope
setstandbyTimer();
^
src\main.cpp: In function 'void waitForTrackToFinish()':
src\main.cpp:714:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
} while (!isPlaying() && millis() < currentTime + TIMEOUT);
^
src\main.cpp: In function 'void setup()':
src\main.cpp:758:27: warning: invalid conversion from 'int' to 'DfMp3_Eq' [-fpermissive]
mp3.setEq(mySettings.eq - 1);
^
In file included from src\main.cpp:3:0:
.pio\libdeps\nanoatmega328\DFPlayer Mini Mp3 by Makuna\src/DFMiniMp3.h:198:10: note: initializing argument 1 of 'void DFMiniMp3<T_SERIAL_METHOD, T_NOTIFICATION_METHOD>::setEq(DfMp3_Eq) [with T_SERIAL_METHOD = SoftwareSerial; T_NOTIFICATION_METHOD = Mp3Notify]'
void setEq(DfMp3_Eq eq)
^
src\main.cpp:786:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < EEPROM.length(); i++) {
^
src\main.cpp:794:17: error: 'playShortCut' was not declared in this scope
playShortCut(3);
^
src\main.cpp: In function 'void loop()':
src\main.cpp:977:10: warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]
if (ignorePauseButton == false)
^
src\main.cpp:1028:10: warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]
if (!ignoreUpButton)
^
src\main.cpp:1100:23: error: 'readCard' was not declared in this scope
if (readCard(&myCard) == true) {
^
src\main.cpp:1110:17: error: 'setupCard' was not declared in this scope
setupCard();
^
src\main.cpp: In function 'void adminMenu(bool)':
src\main.cpp:1117:37: warning: default argument given for parameter 1 of 'void adminMenu(bool)' [-fpermissive]
void adminMenu(bool fromCard = false) {
^
src\main.cpp:82:6: note: previous specification in 'void adminMenu(bool)' here
void adminMenu(bool fromCard = false);
^
src\main.cpp: In function 'void adminMenu(bool)':
src\main.cpp:1131:22: error: 'askCode' was not declared in this scope
if (askCode(pin) == true) {
^
src\main.cpp:1173:15: error: 'resetCard' was not declared in this scope
resetCard();
^
src\main.cpp:1192:29: warning: invalid conversion from 'int' to 'DfMp3_Eq' [-fpermissive]
mp3.setEq(mySettings.eq - 1);
^
In file included from src\main.cpp:3:0:
.pio\libdeps\nanoatmega328\DFPlayer Mini Mp3 by Makuna\src/DFMiniMp3.h:198:10: note: initializing argument 1 of 'void DFMiniMp3<T_SERIAL_METHOD, T_NOTIFICATION_METHOD>::setEq(DfMp3_Eq) [with T_SERIAL_METHOD = SoftwareSerial; T_NOTIFICATION_METHOD = Mp3Notify]'
void setEq(DfMp3_Eq eq)
^
src\main.cpp:1236:52: error: 'setupFolder' was not declared in this scope
setupFolder(&mySettings.shortCuts[shortcut - 1]);
^
src\main.cpp:1300:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 0; i < EEPROM.length(); i++) {
^
src\main.cpp:1318:22: error: 'askCode' was not declared in this scope
if (askCode(pin)) {
^
src\main.cpp: In function 'uint8_t voiceMenu(int, int, int, bool, int, int, bool)':
src\main.cpp:1349:120: warning: default argument given for parameter 4 of 'uint8_t voiceMenu(int, int, int, bool, int, int, bool)' [-fpermissive]
bool preview = false, int previewFromFolder = 0, int defaultValue = 0, bool exitWithLongPress = false) {
^
src\main.cpp:76:9: note: previous specification in 'uint8_t voiceMenu(int, int, int, bool, int, int, bool)' here
uint8_t voiceMenu(int numberOfOptions, int startMessage, int messageOffset,
^
src\main.cpp:1349:120: warning: default argument given for parameter 5 of 'uint8_t voiceMenu(int, int, int, bool, int, int, bool)' [-fpermissive]
bool preview = false, int previewFromFolder = 0, int defaultValue = 0, bool exitWithLongPress = false) {
^
src\main.cpp:76:9: note: previous specification in 'uint8_t voiceMenu(int, int, int, bool, int, int, bool)' here
uint8_t voiceMenu(int numberOfOptions, int startMessage, int messageOffset,
^
src\main.cpp:1349:120: warning: default argument given for parameter 6 of 'uint8_t voiceMenu(int, int, int, bool, int, int, bool)' [-fpermissive]
bool preview = false, int previewFromFolder = 0, int defaultValue = 0, bool exitWithLongPress = false) {
^
src\main.cpp:76:9: note: previous specification in 'uint8_t voiceMenu(int, int, int, bool, int, int, bool)' here
uint8_t voiceMenu(int numberOfOptions, int startMessage, int messageOffset,
^
src\main.cpp:1349:120: warning: default argument given for parameter 7 of 'uint8_t voiceMenu(int, int, int, bool, int, int, bool)' [-fpermissive]
bool preview = false, int previewFromFolder = 0, int defaultValue = 0, bool exitWithLongPress = false) {
^
src\main.cpp:76:9: note: previous specification in 'uint8_t voiceMenu(int, int, int, bool, int, int, bool)' here
uint8_t voiceMenu(int numberOfOptions, int startMessage, int messageOffset,
^
src\main.cpp: In function 'void resetCard()':
src\main.cpp:1466:13: error: 'setupCard' was not declared in this scope
setupCard();
^
src\main.cpp: In function 'void writeCard(nfcTagObject)':
src\main.cpp:1710:8: warning: unused variable 'size' [-Wunused-variable]
byte size = sizeof(buffer);
^
*** [.pio\build\nanoatmega328\src\main.cpp.o] Error 1
The text was updated successfully, but these errors were encountered: