Есть ли способ определить, используется ли Arduino, Stino или другая IDE / toolchain?

8

Я заметил некоторые раздражающие различия между Arduino IDE и Stino (в основном это касается некоторых заголовочных файлов). Скорее всего, это ошибки, которые необходимо исправить с одной или обеими сторонами, но в то же время я хотел бы, чтобы мой код компилировался с ними обоими без редактирования. Это потому, что я не хочу блокировать пользователей от использования моего кода.

Существуют ли какие-либо макросы или аналогичные элементы, которые легко доступны (например, не требуют модификации цепочки инструментов или IDE), которые позволили бы мне определить, какой из них используется?

Например, во многих библиотеках есть этот фрагмент:

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

Однако и Stino, и Arduino определяют это.

Cybergibbons
источник
1
Я немного поковырялся в инструментальной цепочке Stino и отправил один или два запроса. Должно быть довольно легко получить что-то вроде #define STINO_COMPILERдобавления к определениям времени компиляции. Парень, который управляет репо, вполне открыт для таких разумных пулл-запросов, и, как только он будет должным образом включен в основной репо, он не потребует изменений ни для одного из конечных пользователей.
Коннор Вольф
Спасибо Fake Name - да, я думаю, это звучит как хороший план. Я думаю, что мне нужна только поддержка Stino. Я не видел, чтобы «Затмение» использовалось достаточно часто, чтобы заботиться.
Cybergibbons
Это не настоящее решение, но вы также можете добавить две версии кода или добавить комментарий: Раскомментируйте следующие строки и удалите другие строки для Stino . | @ Fake Может ли это быть проблемой при использовании этого кода с Arduino IDE?
Анонимный Пингвин
Для дальнейшего комментария Anonymous Penguin вы можете указать фунт для каждого компилятора. И тогда версия кода по умолчанию имеет ошибку и не будет работать, если пользователь не прокомментирует строку, чтобы указать, какой компилятор он использует. Как то так#if !defined(STINO_COMPILER) #error please uncomment one of the compiler lines #endif
portforwardpodcast

Ответы:

1

Поскольку Stino утверждает, что использует установленную Arduino IDE, которая у вас уже есть, это означает, что вы не можете различить во время компиляции.

Macsek
источник