¿Hay alguna forma de detectar si Arduino, Stino u otro IDE / toolchain está en uso?

8

He notado algunas diferencias irritantes entre Arduino IDE y Stino (principalmente en torno a la inclusión de ciertos archivos de encabezado). Estos son probablemente errores que necesitan seguimiento con una o ambas partes, pero mientras tanto, me gustaría que mi código se compile con ambos sin editar. Esto se debe a que no quiero bloquear a ningún usuario para que no use mi código.

¿Hay macros o similares que estén fácilmente disponibles (como en, no requieren modificación de la cadena de herramientas o IDE) que me permitan detectar cuál está en uso?

Por ejemplo, en muchas bibliotecas, existe este fragmento:

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

Sin embargo, tanto Stino como Arduino definen esto.

Cybergibbons
fuente
1
He hurgado un poco en la cadena de herramientas Stino y he enviado una solicitud de extracción o dos. Debería ser bastante fácil obtener algo así como #define STINO_COMPILERagregado a las definiciones de tiempo de compilación. El tipo que administra el repositorio está bastante abierto a solicitudes de extracción sensatas como esa, y una vez que esté correctamente en el repositorio principal, no requerirá cambios para ninguno de los usuarios finales.
Connor Wolf
Gracias nombre falso: sí, creo que suena como un buen plan. Creo que realmente solo necesito apoyo para Stino. No he visto que Eclipse se use con la frecuencia suficiente para preocuparse.
Cybergibbons
Esta no es una solución real, pero también puede agregar dos versiones del código o de alguna manera tener un comentario: Descomente las siguientes líneas y elimine las otras líneas para Stino . El | @Fake ¿Sería un problema al usar ese código con el IDE de Arduino?
Anonymous Penguin
Para ampliar el comentario de Anonymous Penguin, podría tener una definición de libra por compilador. Y luego, la versión predeterminada del código tiene un error y no se ejecutará a menos que el usuario comente una línea para especificar qué compilador están utilizando. Algo como esto#if !defined(STINO_COMPILER) #error please uncomment one of the compiler lines #endif
portforwardpodcast

Respuestas:

1

Como Stino afirma que usa el IDE Arduino instalado que ya tiene, lo que significa que no puede diferenciarse en el momento de la compilación.

Macsek
fuente