Question:
Comment gérer plusieurs environnements de développement Arduino simultanés?
pseudon
2016-05-29 02:21:01 UTC
view on stackexchange narkive permalink

Je développe pour plusieurs microcontrôleurs cibles différents (sur OS X 10.11), ce qui nécessite des combinaisons uniques de version IDE (Arduino), de versions de bibliothèque, de pilotes USB, de logiciels de support, etc.

Que sont les avantages et les inconvénients de l'utilisation d'utilisateurs connectés séparés pour chaque environnement par opposition à l'utilisation de machines virtuelles? Existe-t-il d'autres méthodes couramment utilisées pour séparer les environnements et conserver les environnements archivés pour tous les besoins hérités?

Mise à jour: j'ai également le désir de garder ces environnements aussi standard que possible: installer les composants publiés (par exemple , IDE, pilotes) et la personnalisation des paramètres de l'application IDE, mais en essayant d'éviter les fourchettes au niveau de la source. C'est pour ma propre raison et pour donner les meilleures chances de reproduire l'environnement à l'avenir.

Cela semble horrible. Et la 1.6.x ne vous permet pas de gérer toutes les cartes?
Même dans 1.6.x, il y a beaucoup de variabilité entre les versions, ce qui peut tout simplement empêcher les choses de fonctionner, en particulier pour de nombreux plugins de matériel alternatif. L'organisation d'installation "ordinaire" d'Arduino pour les extensions et les bibliothèques est assez sérieusement cassée pour tout développement logiciel sérieux, pouvoir spécifier un chemin de bibliothèque personnalisé serait d'une grande aide. Ne pas se plaindre inutilement des dossiers .git serait également une aide.
Vous pourrez peut-être obtenir des bibliothèques / et du matériel / des dossiers personnalisés par version en modifiant le répertoire du carnet de croquis, le problème est que toutes les versions à partir de la version 1.5 semblent vouloir stocker une telle configuration au même endroit, comme ~ / .arduino15 / preferences .txt - et il n'est pas clair comment vous pourriez changer * cela * sans modifier la source ou le binaire ou jouer à un jeu comme des montages uniques au processus (qui sont généralement héritables par les enfants)
Vous pouvez exécuter plusieurs versions de l'EDI très bien. Renommez simplement Arduino.app par ex. Arduino-1.5.app. Pour les différentes bibliothèques, vous pouvez simplement placer les bibliothèques dans le package d'application `/Applications/Arduino.app/Contents/Java/libraries`, au lieu du dossier bibliothèques standard `~ / Documents / Arduino / bibliothèques`.
@ignacio-vazquez-abrams,, l'autre problème est de vouloir éviter les tests de régression de chaque environnement de travail lors de la mise à jour de l'EDI, des bibliothèques, etc. pour un seul. Je voudrais pré-tester les mises à jour dans un clone hors production.
Deux réponses:
Chris Stratton
2016-05-29 06:32:06 UTC
view on stackexchange narkive permalink

Je n'ai pas encore vu de preuves qu'il existe un moyen solide ou complet de le faire, je serais donc ravi de lire de meilleures suggestions. Quant à savoir pourquoi vous le souhaiteriez, il existe un certain nombre de plugins / extensions de support de carte qui sont modérément fonctionnels sur certaines versions récentes d'Arduino, mais partiellement ou entièrement incompatibles avec d'autres.

Vous pouvez obtenir une partie très limitée ségrégation des versions en créant un nouveau dossier de carnet de croquis pour chaque version, qui hébergerait vos bibliothèques et vos dossiers matériels.

Pour que l'EDI le prenne en charge, vous pouvez avoir un fichier de préférences personnalisé (plutôt que preferences.txt ) avec cet emplacement de carnet de croquis défini. Vous pouvez spécifier le fichier à utiliser sur la ligne de commande, par exemple:

  /opt/arduino-1.6.8/arduino --preferences-file ~ / .arduino15 / Alternate.txt  

Cependant, il y a encore un peu lié à la prise en charge de la carte supplémentaire et similaire stocké dans le dossier des paramètres, et à l'heure actuelle, il est codé en dur sur le même chemin "Arduino15" ou ".arduino15" pour toutes les versions récentes.

Ce codage en dur du dossier de paramètres est implémenté dans la version de Platform.java applicable au système d'exploitation sous lequel vous utilisez, donc il n'est pas clair comment vous pourriez changer ceci sauf au niveau source, en modifiant le fichier jar, ou en jouant des astuces au niveau du système de fichiers avec le système d'exploitation (montages uniques au processus, etc.).

Merci pour vos commentaires et réponses utiles. J'attendrai de voir si quelqu'un parle spécifiquement des machines virtuelles par rapport aux utilisateurs, etc. (je n'ai pas encore essayé, donc je ne suis même pas sûr si les machines virtuelles auront leurs propres problèmes, mais j'espère). Je vais également modifier ma question pour inclure mon désir de garder chaque environnement aussi standard que possible (pour ne pas devenir fou en gardant une trace des méta-personnalisations).
Soit des identifiants utilisateur distincts (avec toute l'installation dans un répertoire spécifique à l'utilisateur), soit des machines virtuelles fonctionneraient probablement plutôt bien ... désolé d'avoir ignoré cela, je ne considère tout simplement pas que ce soit une chose raisonnable à utiliser pour tous les jours. développement.
kzyapkov
2017-01-23 02:52:10 UTC
view on stackexchange narkive permalink

J'ai fini par exécuter arduino-buider , disponible dans Arduino IDE 1.6.6 et plus récent.

Lors de la mise en page de votre projet, mettez un bibliothèques / et le dossier hardware / à côté de votre répertoire de croquis, comme ceci:

  YourHipProject / Makefile hardware / Vendor / arch / {boards.txt, platform.txt} bibliothèques / SomethingUseful / NoIdeaHowThisWorks / ProjectSketch / ProjectSketch.ino othersource.cpp  

Le répertoire hardware / n'est nécessaire que si vous avez besoin de la prise en charge de cartes tierces. Ensuite, dans le Makefile:

  ARDUINO_DIR? = /Opt/arduino-1.6.13 # devez définir ceci pour votre environnement PHONY: ProjectSketchProjectSketch: arduino-builder -compile -verbose \ -hardware $ (ARDUINO_DIR) / hardware \ -tools $ (ARDUINO_DIR) / tools-builder \ -tools $ (ARDUINO_DIR) / hardware / tools / avr \ -built-in-library $ (ARDUINO_DIR) / bibliothèques \ -hardware ./hardware \ -libraries ./libraries \ -fqbn = Le fournisseur: arch: board \ ./ProjectSketch/ProjectSketch.ino

ARDUINO_DIR doit pointez vers l'endroit où votre Arduino est installé, assurez-vous de définir correctement -fqbn = également.

L'exécution de make devrait compiler le firmware à partir de ProjectSketch / avec les bibliothèques d'accompagnement et les définitions matérielles. De plus, avec la sortie de compilation détaillée activée, l'IDE Arduino vous montrera comment il exécute arduino-builder .



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...