Existe-t-il un moyen de détecter si Arduino, Stino ou un autre IDE / chaîne d'outils est utilisé?

8

J'ai remarqué des différences irritantes entre l'IDE Arduino et Stino (principalement autour de l'inclusion de certains fichiers d'en-tête). Ce sont probablement des bogues qui nécessitent un suivi avec l'une des parties ou les deux, mais en attendant, j'aimerais que mon code soit compilé avec les deux sans modification. C'est parce que je ne veux pas empêcher les utilisateurs d'utiliser mon code.

Y a-t-il des macros ou similaires qui sont facilement disponibles (comme dans, ne nécessitent aucune modification de la chaîne d'outils ou de l'IDE) qui me permettraient de détecter ce qui est utilisé?

Par exemple, dans de nombreuses bibliothèques, il y a cet extrait:

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

Cependant Stino et Arduino le définissent tous les deux.

Cybergibbons
la source
1
J'ai fouillé un peu dans la chaîne d'outils Stino et soumis une ou deux demandes de tirage. Il devrait être assez facile d'obtenir quelque chose comme #define STINO_COMPILERajouté aux définitions au moment de la compilation. Le gars qui gère le dépôt est assez ouvert aux demandes de tirage sensibles comme ça, et une fois qu'il est correctement dans le dépôt principal, cela ne nécessitera de changements pour aucun des utilisateurs finaux.
Connor Wolf
Merci Fake Name - oui, je pense que cela ressemble à un bon plan. Je pense que je n'ai vraiment besoin que de support pour Stino. Je n'ai pas vu Eclipse utilisé assez souvent pour s'en soucier.
Cybergibbons
Ce n'est pas une vraie solution, mais vous pouvez également ajouter deux versions du code ou avoir un commentaire: commentez les lignes suivantes et supprimez les autres lignes pour Stino . | @Fake Serait-ce un problème lors de l'utilisation de ce code avec l'IDE Arduino?
Pingouin anonyme
Pour approfondir le commentaire de Anonymous Penguin, vous pourriez avoir un livre à définir par compilateur. Et puis la version par défaut du code a une erreur et ne s'exécutera que si l'utilisateur commente une ligne pour spécifier le compilateur qu'ils utilisent. Quelque chose comme ça#if !defined(STINO_COMPILER) #error please uncomment one of the compiler lines #endif
portforwardpodcast

Réponses:

1

Comme Stino prétend utiliser l'IDE Arduino installé, vous avez déjà, ce qui signifie que vous ne pouvez pas différencier au moment de la compilation.

Macsek
la source