C'è un modo per rilevare se è in uso Arduino, Stino o un altro IDE / toolchain?


8

Ho notato alcune fastidiose differenze tra l'IDE di Arduino e Stino (principalmente in giro includendo alcuni file di intestazione). Questi sono probabilmente bug che devono essere seguiti da una o entrambe le parti, ma nel frattempo vorrei che il mio codice si compilasse con entrambi senza modificarlo. Questo perché non desidero bloccare nessun utente che non utilizza il mio codice.

Ci sono macro o simili che sono prontamente disponibili (come in, non richiedono alcuna modifica della toolchain o dell'IDE) che mi consentirebbero di rilevare quale è in uso?

Ad esempio, in molte librerie esiste questo frammento:

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

Comunque sia Stino che Arduino lo definiscono.


1
Ho frugato un po 'nella toolchain Stino e ho inviato una o due richieste pull. Dovrebbe essere abbastanza facile ottenere qualcosa di simile #define STINO_COMPILERal tempo di compilazione definito. Il tipo che gestisce il repository è abbastanza aperto a richieste pull di questo tipo, e una volta che è correttamente nel repository mainline, non richiederebbe modifiche per nessuno degli utenti finali.
Connor Wolf,

Grazie Nome falso - sì, penso che suona come un buon piano. Penso di aver bisogno solo del supporto per Stino. Non ho visto Eclipse usato abbastanza spesso per curare.
Cybergibbons,

Questa non è una vera soluzione ma potresti anche aggiungere due versioni del codice o in qualche modo avere un commento: decomprimere le seguenti righe ed eliminare le altre righe per Stino . | @Fake Sarebbe un problema quando si utilizza quel codice con l'IDE di Arduino?
Anonimo Penguin,

Per ulteriori commenti di Penguin anonimo, potresti avere una sterlina definita per compilatore. Quindi la versione predefinita del codice presenta un errore e non verrà eseguita a meno che l'utente non commenti una riga per specificare quale compilatore sta utilizzando. Qualcosa del genere#if !defined(STINO_COMPILER) #error please uncomment one of the compiler lines #endif
portforwardpodcast

Risposte:


1

Poiché Stino afferma di utilizzare l'IDE Arduino installato che già possiedi, il che significa che non puoi differenziare in fase di compilazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.