Mise à jour d'une librairie

Bonjour,

j'ai modifié une librairie perso, mais quand je l'appelle dans mon sketch, c'est toujours l'ancienne qui est utilisée. Comment remédier à ce problème, et de manière plus générale, comment supprimer réellement une librairie. Il semble que Arduino les sauvegarde quelque-part mais je n'ai pas réussi à trouver où.

Je travaille avec la version 1.0.5-r2.

Merci pour votre aide,

cordialement :slight_smile: ,

naute.

bonjour,
les lib sont dans le rep librayries.
pour éviter de charger une lib, tu peux mettre -old après sont nom, l'ide ne la chargera pas.
ou alors la déplacer dans un autre rep

Merci pour ta réponse.

Je n'ai pas de répertoire "librayries". Je pense que tu veux parler du répertoire "libraries". Le problème est que j'ai bien supprimé ma librairie de ce répertoire pour y mettre la nouvelle, qui a le même nom, mais elle n'est pas prise en compte. C'est toujours l'ancienne qui est utilisée. Et quand j'essaye de l'importer, Arduino me dit qu'il existe déjà une librairie qui porte le même nom.

Je ne vois pas trop quoi faire, à part, bien sûr, changer le nom de la librairie, mais ce n'est pas logique de changer le nom d'une librairie à chaque fois que l'on en fait une mise à jour.

Bonjour,

Tu as bien arrêté puis relancé l'IDE arduino après suppression de ta librairie?

Bonjour,

oui. Comme ça ne fonctionnait pas mieux, j’ai même relancé la machine à tout hasard. Ça ne coûtait pas cher mais ça n’a rien rapporté non plus. Ma librairie n’existe plus dans le dossier “libraries” mais son entrée existe toujours dans la liste des librairies disponibles. Elle est fonctionnelle et c’est toujours l’ancienne version :slightly_frowning_face: . Elle est forcément conservée quelque-part par Arduino.

Je me pose, d’ailleurs, une autre question, également. Où sont les fichiers de configuration d’Arduino? Quand on installe une nouvelle librairie, elle apparait dans le menu [Croquis->Importer bibliothèque…]. Comme ça n’a pas pu être codé en dur, ça doit bien se trouver dans un fichier genre “arduino.ini” puisque la base de registre n’est pas utilisée. Non?

Bonjour,

Je me pose, d'ailleurs, une autre question, également. Où sont les fichiers de configuration d'Arduino? Quand on installe une nouvelle librairie, elle apparait dans le menu [Croquis->Importer bibliothèque...]. Comme ça n'a pas pu être codé en dur, ça doit bien se trouver dans un fichier genre "arduino.ini" puisque la base de registre n'est pas utilisée. Non?

Comme Arduino peut être utilisé par plusieurs utilisateur du PC, les fichiers de configuration se trouvent dans :

C:\Users\[USER]\AppData\Roaming\Arduino15

Tu y trouveras :
preferences.txt qui contient les préférences :slight_smile:
library_index.json qui contient probablement une référence sur ton ancienne librairie...

Ceci étant, je suis incapable d'expliquer l'anomalie car malgré mon grand âge je suis Newbie en Arduino
:slight_smile:

Au fait je suis parti bille en tête pensant que tu es sous Windows...
Sur Linux, c'est pareil il doit y avoir un répertoire arduino dans le compte de l'utilisateur Linux

Et pour Windows il faut avoir coché :
Afficher les fichiers, dossier, et lecteurs cachés

Dans les Options d'affichage de l'explorateur :
Explorateur

sous linux il n'y a as ce genre de chose :wink:

quelle est cette lib modifiée?

infobarquee:
sous linux il n'y a as ce genre de chose :wink:

Pour info, faut-il en déduire que sous Linux chaque utilisateur du PC doit faire sa propre installation de Arduino ?

Et pour info, vite fait, infobarquee, car je découvre le forum :
Il n'y a pas la possibilité d'éditer un post pour corriger les fautes ?
[Edit 17:10]
Oups j'ai trouvé Quick Edit More... MERCI

Bonjour,

dmganges:
Comme Arduino peut être utilisé par plusieurs utilisateur du PC, les fichiers de configuration se trouvent dans :

C:\Users\[USER]\AppData\Roaming\Arduino15

Tu y trouveras :
preferences.txt qui contient les préférences :slight_smile:
library_index.json qui contient probablement une référence sur ton ancienne librairie...

Chez moi (Windows 7), Arduino15 se trouve dans ...\AppData\Local\ et contient, entre autres, les fichiers que tu cites. Dans ...\AppData\Roaming, j'ai le dossier Arduino qui ne contient que le fichier preferences.txt.

Malheureusement, il n'y a de référence à ma librairie dans aucun de ces fichiers, du moins dans ceux qui sont éditables.

infobarquee:
quelle est cette lib modifiée?

C'est une petite librairie perso qui travaille en corrélation avec un petit logiciel que j'ai écrit en Delphi et qui me permet de piloter les sorties GPIOs et PWM d'une carte UNO depuis mon ordi, à laquelle je viens d'ajouter, et c'est là le problème, la possibilité de piloter, depuis l'ordi également, un servo, en utilisant, bien sûr, la librairie "Servo" fournie avec la distribution Arduino.
Je précise que ma librairie première version fonctionnait parfaitement, ainsi que la coloration syntaxique.
La fonction que j'ai ajouté fonctionne également parfaitement (elle dérive directement de ma fonction PWM), dans la version de développement (un bien grand mot) mais tout se passe comme si Arduino ne reconnaissait pas la nouvelle librairie et liait systématiquement l'ancienne version. J'en veux pour preuve que la coloration syntaxique de la nouvelle fonction est absente, alors que les autres sont bien là. Cela prouve bien que le nouveau fichier keywords.txt n'est pas pris en compte.

Je viens de dézipper la nouvelle version de l'IDE (1.6.6) pour voir si je peux résoudre ce problème avec cette version. Un premier problème apparait déjà. Je n'arrive pas à modifier la version de l'IDE à utiliser par défaut pour ouvrir un fichier .ino. Bien qu'ayant fait la manip habituelle pour sélectionner le programme par défaut, Windows ouvre toujours avec la version 1.0.5-r2. Bizarre. Cela ne m'empêche pas d'ouvrir un fichier .ino avec Arduino1.6.6 mais c'est moins pratique.

En attendant, merci pour vos réponses :slight_smile: .

Donc j'ai "installé" ma nouvelle librairie dans Arduino 1.6.6 et là, elle est bien prise en compte, ainsi que la coloration syntaxique. Bon, ma nouvelle fonction, ou du moins l'appel à ma nouvelle fonction, bloque à la compilation mais je résoudrai ce problème (du moins je l'espère :grin: ).

Cependant, cela ne résout pas le problème initial. Qu'est-ce qu'il va se passer quand je voudrai modifier cette librairie, ce que je vais être amené à faire puisqu'elle ne fonctionne pas.

Si Arduino en crée une copie de travail à l'installation (de la librairie) et ne me permet pas de la réinstaller, il utilisera toujours la première version installée.

En attendant, je vais aller voir pourquoi mon appel de fonction bloque :o .

dmganges:
Pour info, faut-il en déduire que sous Linux chaque utilisateur du PC doit faire sa propre installation de Arduino ?

Et pour info, vite fait, infobarquee, car je découvre le forum :
Il n'y a pas la possibilité d'éditer un post pour corriger les fautes ?
[Edit 17:10]
Oups j'ai trouvé Quick Edit More... MERCI

sur mon nunux, j'ai 4 versions d'ide
une via les paquets, les autres dans un rep de mon home

Bon! J'avais oublié de typer une variable. Ben quoi, ça arrive :blush: :grinning: .

Je modifie, je compile et là... ça fonctionne :astonished: . Autrement dit, la modification de la librairie est bien prise en compte. Donc, je me pose la question: POURQUOI?

Pourquoi ça n'a pas fonctionné avec Arduino 1.0.5-r2 et que ça fonctionne avec Arduino 1.6.6. La seule différence, mise à par la version, bien sûr, réside dans le choix du fichier d'installation. J'ai installé le premier avec l'installateur exécutable, alors que j'ai opté pour le fichier zip pour le second. Mais, à priori, il ne devrait pas y avoir de différence.

Je plane un peu, là. Je me demande si je n'ai pas fait un tripatouillage un peu illicite. Mais je ne vois pas lequel :confused: .

Pour info, pour associer les fichiers .ino au nouvel exécutable Arduino.exe, ce que l'utilitaire de Windows refusait de faire, ça se passe dans le registre ici:

HKEY_CURRENT_USER\Software\Classes\ino_auto_file\shell\open\command

Dans la colonne "Données", remplacer le chemin de l'ancien exécutable par celui du nouveau.

Bonjour,

naute:
Pourquoi ça n'a pas fonctionné avec Arduino 1.0.5-r2 et que ça fonctionne avec Arduino 1.6.6. La seule différence, mise à par la version, bien sûr, réside dans le choix du fichier d'installation. J'ai installé le premier avec l'installateur exécutable, alors que j'ai opté pour le fichier zip pour le second. Mais, à priori, il ne devrait pas y avoir de différence.

A mon avis la différence d'installation suffit pour expliquer la différence de fonctionnement.
Le "dézippage" ne met pas à jour le registre, alors que le fichier d'installation lui le met à jour...

Maintenant que le registre est à jour, tu pourrais faire à nouveau des installations à partir d'un zip...
Mais seulement tant que les nouvelles versions de Arduino n'ont pas besoin d'autres infos dans le registre...
Sous Windows, à moins d'avoir des besoins spécifiques, il me semble qu'il est préférable d'utiliser l'installateur... même si ce n'est pas toujours limpide du côté du repérage des ports COM... :relaxed:
Mais j'ai encore trop peu d'expérience arduino pour être péremptoire :slight_smile:

naute:
Je plane un peu, là. Je me demande si je n'ai pas fait un tripatouillage un peu illicite. Mais je ne vois pas lequel :confused: .

Si tu n'as pas fait de manip supplémentaires dans le registre, je ne vois pas de tripatouillage !
Je ne vois pas ce qui te chiffonne ?
Il semble que l'installateur ait utilisé le répertoire de la 1.0.5-r2 soit : C:\Program Files (x86)\Arduino puisque tu retrouves tes librairies...
Si tu as un doute ou plutôt des comportements bizarres :
1 - tu sauvegardes les librairies, au moins celles que tu as ajouté !
2 - tu désinstalles la 1.6.6 avec le désinstallateur Windows
3 - tu supprimes à la mimine le répertoire C:\Program Files (x86)\Arduino MIEUX tu le renommes
4 - tu refais l'installation de la 1.6.6 avec l'installateur
5 - tu réinjectes ta librairie, plus seulement les librairies supplémentaires, à l'occasion ça te permet d'aller voir si tu as bien les dernières versions...
6 - Après qq mois d'utilisation sans pb tu peux détruire le répertoire renommé
Mais vraiment si tu as des pb... :wink:

infobarquee:
sur mon nunux, j'ai 4 versions d'ide
une via les paquets, les autres dans un rep de mon home

OK MERCI infobarquee !
C'est normal pour celles qui sont dans des rep de ton home.
Pour celle installée via les paquets, et si elle est installée en tant que root (autrement dit pour tous les utilisateurs du PC), il devrait y avoir un rep .arduino dans les différents répertoires home des utilisateurs du PC qui ont au moins lancé une fois l'exécutable arduino...
Mais bon si j'ai un besoin j'ouvrirai un fil la dessus, je ne veux pas plus polluer le sujet de naute
Encore MERCI

dmganges:
Le "dézippage" ne met pas à jour le registre, alors que le fichier d'installation lui le met à jour...

Je ne suis pas sûr que l'installateur inscrive quelque chose dans le registre. Ce n'est pas obligatoire, et de plus, ça voudrait dire qu'il y a deux version d'Arduino, une qui se sert du registre et l'autre pas. C'est peu vraisemblable. En outre, il n'y a pas d'entrée pour désinstaller le programme dans l'applet "Programmes et fonctionnalités", ce qui ne cadre pas avec une installation typique Windows. Je pense que l'installateur est plus proche d'une archive auto-extractible.

Personnellement, quand j'écris un programme, tous ses fichiers de configuration sont sous la forme de .ini dans son répertoire d'installation, que je fourni sous forme d'une archive auto-extractible. Je n'aime pas le coté obscur et très mal documenté de la base de registre. Je suis un dinausore :slight_smile: . Je ne suis peut-être pas le seul si je te lis bien:

dmganges:
Ceci étant, je suis incapable d'expliquer l'anomalie car malgré mon grand âge je suis Newbie en Arduino
:slight_smile:

Je n'ai donc pas besoin de dés-installateur: on efface le dossier point final. Alors bien sûr, je passe à coté de certaines fonctionnalités qu'offre le registre, comme, par exemple, la création d'un raccourcis pendant l'installation ou l'affectation automatique de type de fichier à l'exécutable. Mais pratiquement tout le monde sait faire ça à la main.

dmganges:
Il semble que l'installateur ait utilisé le répertoire de la 1.0.5-r2 soit : C:\Program Files (x86)\Arduino puisque tu retrouves tes librairies...

Non non :slight_smile: ! Comme je l'ai écris, c'est pour ma première installation, à savoir la 1.0.5-r2, que j'ai utilisé l'installateur, et donc le zip pour la seconde. Mais il est possible que ma phrase n'ait pas été très claire. Pour la librairie en question, je n'ai fait que la copier du répertoire libraries de la version 1.0.5-r2 vers celui de la version 1.6.6 .

dmganges:
3 - tu supprimes à la mimine le répertoire C:\Program Files (x86)\Arduino MIEUX tu le renommes

En fait, l'installateur propose de choisir le répertoire d'installation et pour la version 1.0.5-r2, j'ai installé Arduino dans le répertoire... C:\Arduino. Original, non? C'est plus rapide pour y avoir accès, et j'ai besoin de cet accès car mon dossier "projets" est dans ce répertoire. Ça me semble simple et logique. Quant à la version 1.6.6, je l'ai dézippée dans C:, ce qui fait qu'elle se trouve dans le répertoire C:\Arduino-1.6.6 . Les deux versions cohabitent sans problème. Par contre, il faut faire le choix à la main (voir plus haut) de la version à utiliser par défaut pour ouvrir les fichiers *.ino.

Bonjour,

Pour la version 1.6.6, sous Windows 7, l'installateur crée une entrée dans la base de registre pour les fichiers .ino et une entrée 'Aduino file' pour indiquer avec quel programme il doivent être ouverts. Donc je pense qu'ils sont ouverts par défaut avec le dernier programme installé.
Il y a bien une entrée pour désinstaller le programme dans 'Programmes et fonctionnalités'

Il n'y a pas de problème pour installer deux versions de l'IDE, il suffit de les installer dans deux répertoires différents.

Bonjour,

kamill:
Pour la version 1.6.6, sous Windows 7, l'installateur crée une entrée dans la base de registre pour les fichiers .ino et une entrée 'Aduino file' pour indiquer avec quel programme il doivent être ouverts.

Merci pour l'info.

kamill:
Donc je pense qu'ils sont ouverts par défaut avec le dernier programme installé.

Probablement.

kamill:
Il y a bien une entrée pour désinstaller le programme dans 'Programmes et fonctionnalités'

Apparemment ce n'était pas le cas pour la version 1.0.5-r2 car je n'ai pas cette entrée.
Il semblerait donc que les installations des nouvelles versions soient au standard Windows. C'est bon à savoir pour faire le choix entre l'archive et l'installateur.

Je confirme Kamill, moi qui ai commencé il y a 3 semaines avec la 1.6.5 l'installateur modifie bien à profusion le registre... ajoute aussi une entrée pour java de Arduino... et bien plus encore...
et ce en ne faisant une recherche que sur la chaîne "arduino", ce qui ne garanti pas l’absence de modifs ailleurs...

naute:
Je n'aime pas le coté obscur et très mal documenté de la base de registre. Je suis un dinausore :slight_smile: . Je ne suis peut-être pas le seul si je te lis bien:

BINGO :slight_smile:
En Unix je faisais ça aussi : "on efface le dossier point final"
En Windows j'ai dû revoir ma copie... :confused: j'utilise les désinstallateurs, puis éventuellement je vais voir à tâtons dans le registre s'il ne traîne pas quelques cochonneries... Ou avant une réinstallation, je n'hésite pas à tailler dans le lard... mais j'ai une profusion de sauvegardes :wink:

Vu que tu tournais avec une 1.0.5 tu as infiniment plus d'expérience que moi, je ne te serai plus d'un grand secours, sauf si s'est spécifique système et encore Windows n'est pas mon préféré...

dmganges:
Vu que tu tournais avec une 1.0.5 tu as infiniment plus d'expérience que moi, je ne te serai plus d'un grand secours, sauf si s'est spécifique système et encore Windows n'est pas mon préféré...

C'est gentil mais ça reste à voir. Tout au plus, j'ai plus d'ancienneté.

Quant au système, j'utilise Windows depuis la 3.11 et Linux depuis la première distribution de Red Hat. J'ai eu des galères et des satisfactions avec les deux.

J'utilise maintenant Windows XP et 7 ainsi que Trisquel, distribution Linux basée sur Ubuntu et cela me convient. Je ne connais pas bien les systèmes d'exploitation et me considère comme un simple utilisateur qui essaye de profiter du meilleur (de mon point de vue) des deux mondes et je trouve un peu puéril l'acharnement qu'ont certains aficionados d'un des deux camps à démolir le produit concurrent (c'est vrai dans les deux sens mais pas avec la même virulence). Je préfère ta position modérée: on a le droit d'avoir des préférences :).

Sur un tout autre plan, je m’aperçois en lisant ta citation de ma prose que j'ai inventé une nouvelle espèce animale: le dinausore. Comme si le dinosaure ne suffisait pas!!! Oups :grinning:. InGen et Spielberg vont m'attaquer pour plagiat... ou me faire un pont d'or 8) .