Existe uma maneira de detectar se o Arduino, Stino ou outro IDE / toolchain está em uso?

8

Notei algumas diferenças irritantes entre o Arduino IDE e o Stino (principalmente incluindo certos arquivos de cabeçalho). Esses são provavelmente erros que precisam ser acompanhados por uma ou ambas as partes, mas, enquanto isso, eu gostaria que meu código fosse compilado com as duas sem editar. Isso ocorre porque não quero bloquear nenhum usuário de usar meu código.

Existe alguma macro ou similar que esteja prontamente disponível (como em, não requer modificação da cadeia de ferramentas ou IDE) que me permita detectar qual está em uso?

Por exemplo, em muitas bibliotecas, existe este trecho:

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

No entanto, Stino e Arduino definem isso.

Cybergibbons
fonte
11
Eu procurei bastante na cadeia de ferramentas Stino e enviei uma solicitação de recebimento ou duas. Deve ser bem fácil #define STINO_COMPILERadicionar algo como o tempo de compilação definido. O cara que gerencia o repositório é bastante aberto a solicitações de recebimento sensatas como essa e, uma vez que esteja corretamente no repositório principal, não exigiria alterações para nenhum usuário final.
Connor Wolf
Obrigado Fake Name - sim, acho que parece um bom plano. Eu acho que só preciso de suporte para o Stino. Eu não vi o Eclipse usado com frequência suficiente para cuidar.
Cybergibbons
Esta não é uma solução real, mas você também pode adicionar duas versões do código ou, de alguma forma, fazer um comentário: Remova o comentário das seguintes linhas e exclua as outras linhas do Stino . | @ Fake Isso seria um problema ao usar esse código com o Arduino IDE?
Anonymous Penguin
Para aprofundar o comentário do Anonymous Penguin, você pode definir uma libra por compilador. E a versão padrão do código apresenta um erro e não será executada, a menos que o usuário comente uma linha para especificar qual compilador está usando. Algo assim#if !defined(STINO_COMPILER) #error please uncomment one of the compiler lines #endif
portforwardpodcast

Respostas:

1

Como o Stino afirma usar o Arduino IDE instalado, você já possui, o que significa que você não pode diferenciar em tempo de compilação.

Macsek
fonte