Apakah ada cara untuk mendeteksi apakah Arduino, Stino atau IDE / toolchain lain sedang digunakan?

8

Saya telah memperhatikan beberapa perbedaan menjengkelkan antara Arduino IDE dan Stino (terutama sekitar termasuk file header tertentu). Ini kemungkinan bug yang perlu ditindaklanjuti dengan salah satu atau kedua pihak, tetapi sementara itu, saya ingin kode saya dikompilasi dengan keduanya tanpa mengedit. Ini karena saya tidak ingin mengunci pengguna yang menggunakan kode saya.

Apakah ada makro atau yang serupa yang tersedia (seperti, tidak memerlukan modifikasi toolchain atau IDE) yang akan memungkinkan saya untuk mendeteksi yang sedang digunakan?

Misalnya, di banyak perpustakaan, ada cuplikan ini:

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

Namun Stino dan Arduino mendefinisikan ini.

Cybergibbons
sumber
1
Saya telah melihat-lihat di toolchain Stino sedikit adil, dan mengajukan satu atau dua permintaan tarik. Seharusnya cukup mudah untuk mendapatkan sesuatu seperti #define STINO_COMPILERditambahkan ke definisi waktu kompilasi. Orang yang mengelola repo cukup terbuka untuk permintaan tarik yang masuk akal seperti itu, dan sekali itu benar dalam repo arus utama, itu tidak akan memerlukan perubahan untuk pengguna akhir mana pun.
Connor Wolf
Terima kasih Nama Palsu - ya, saya pikir itu terdengar seperti rencana yang bagus. Saya pikir saya hanya perlu dukungan untuk Stino. Saya tidak melihat Eclipse cukup sering digunakan untuk peduli.
Cybergibbons
Ini bukan solusi nyata tetapi Anda juga bisa menambahkan dua versi kode atau entah bagaimana berkomentar: Batalkan komentar pada baris berikut dan hapus baris lain untuk Stino . | @ Palsu Apakah itu menjadi masalah saat menggunakan kode itu dengan Arduino IDE?
Penguin Anonim
Untuk lebih jauh komentar Penguin Anonim, Anda bisa memiliki satu pound mendefinisikan per kompiler. Dan kemudian versi standar dari kode memiliki kesalahan dan tidak akan berjalan kecuali pengguna berkomentar baris untuk menentukan kompiler mana yang mereka gunakan. Sesuatu seperti ini#if !defined(STINO_COMPILER) #error please uncomment one of the compiler lines #endif
portforwardpodcast

Jawaban:

1

Seperti yang dikatakan Stino untuk menggunakan Arduino IDE yang terinstal yang sudah Anda miliki, yang berarti Anda tidak dapat membedakan pada waktu kompilasi.

Macsek
sumber