Gibt es eine Möglichkeit zu erkennen, ob Arduino, Stino oder eine andere IDE / Toolchain verwendet wird?


8

Ich habe einige irritierende Unterschiede zwischen der Arduino IDE und Stino festgestellt (hauptsächlich in Bezug auf bestimmte Header-Dateien). Dies sind wahrscheinlich Fehler, die mit einer oder beiden Parteien behoben werden müssen. In der Zwischenzeit möchte ich jedoch, dass mein Code mit beiden kompiliert wird, ohne ihn zu bearbeiten. Dies liegt daran, dass ich keine Benutzer daran hindern möchte, meinen Code zu verwenden.

Gibt es Makros oder ähnliches, die leicht verfügbar sind (wie in, erfordern keine Änderung der Toolchain oder IDE), mit denen ich erkennen kann, welche verwendet werden?

In vielen Bibliotheken gibt es beispielsweise diesen Ausschnitt:

#if ARDUINO >= 100
  #include "Arduino.h"
#else
  #include "WProgram.h"
#endif

Dies definieren jedoch sowohl Stino als auch Arduino.


1
Ich habe mich ein bisschen in der Stino-Toolchain umgesehen und ein oder zwei Pull-Anfragen eingereicht. Es sollte ziemlich einfach sein, so etwas wie #define STINO_COMPILERzu den Definitionen der Kompilierungszeit hinzuzufügen. Der Typ, der das Repo verwaltet, ist ziemlich offen für solche vernünftigen Pull-Anfragen, und sobald es richtig im Haupt-Repo ist, würde es für keinen der Endbenutzer Änderungen erfordern.
Connor Wolf

Danke Fake Name - ja, ich denke das klingt nach einem guten Plan. Ich glaube, ich brauche wirklich nur Unterstützung für Stino. Ich habe nicht gesehen, dass Eclipse oft genug verwendet wurde, um sich darum zu kümmern.
Cybergibbons

Dies ist keine echte Lösung, aber Sie können auch zwei Versionen des Codes hinzufügen oder einen Kommentar abgeben : Kommentieren Sie die folgenden Zeilen aus und löschen Sie die anderen Zeilen für Stino . | @Fake Wäre das ein Problem, wenn Sie diesen Code mit der Arduino IDE verwenden?
Anonymer Pinguin

Um den Kommentar von Anonymous Penguin weiter voranzutreiben, können Sie pro Compiler ein Pfund definieren. Und dann hat die Standardversion des Codes einen Fehler und wird nur ausgeführt, wenn der Benutzer eine Zeile kommentiert, um anzugeben, welchen Compiler er verwendet. So etwas wie das#if !defined(STINO_COMPILER) #error please uncomment one of the compiler lines #endif
portforwardpodcast

Antworten:


1

Da Stino behauptet, die installierte Arduino-IDE zu verwenden, die Sie bereits haben, bedeutet dies, dass Sie zur Kompilierungszeit nicht unterscheiden können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.