Tentative de migration vers PIO

Bonsoir,
Pour divers raisons, je souhaite essayer de passer sur Platform IO, c'est donc du tout nouveau pour moi..

J'ai fait l'installation de VCS, puis l'ajout de l'addon PIO, restart etc.
puis j'ai importé mon projet, configuré pour ma carte ESP32DevKit, ..

Première chose, PIO ne semble pas aimer le fait que mon sketch est en .ino plutôt qu'en .cpp
J'ai pris le temps de lire la page d'aide sur le sujet..
Je me demande si je dois juste renommer mon ino en cpp? Quelles sont les conséquences? Si c'est ok etc.. ou alors il y a une procédure pour correctement effectuer la conversion?
Je me demande également quelle sera du coup la rétro-compatibilité avec IDE Arduino, et le partage de sketches avec la communauté.. ceux qui ne sont pas sur PIO..

C/C++ IntelliSense service does not support .INO files. It might lead to the spurious problems with code completion, linting, and debugging. Please convert .INO sketch into the valid .CPP file.

Deuxième point, PIO ne semble pas avoir fait le nécessaire (au moment de l'importation de mon projet) pour ce qui est des custom librairies qui se trouvent dans mon classeur 'libraries' qui est lui avec mon code de l'IDE Arduino..

Quel est le mieux:
Indiquer à PIO le chemin quelque part (genre 'chemin d'inclusion' dans l'onglet 'C/C++ Configurations') ?
Ou alors copier à nouveau les librairies ailleurs pour PIO?
Ou alors configurer PIO pour qu'il utilise et travaille dans les mêmes dossiers que l'IDE Arduino, là où se trouve déjà le code et les librairies custom?

[Erreurs #include détectées. Mettez à jour includePath. Les tildes sont désactivés pour cette unité de traduction (C:\Users\JP\Documents\PlatformIO\Projects\220408-224135-esp32dev\src\Free-Laundry-Manager_2201162100.ino).

impossible d'ouvrir le fichier source "MFRC522.h"
impossible d'ouvrir le fichier source "LiquidCrystal_I2C.h"

...etc pour les autres custom libraries du projet: Keypad_I2C.h et Keypad.h

Aucun souci pour compiler et uploader via l'IDE Arduino.

Comme toujours, merci d'avance pour vos conseils!
Ps, j'ai fait une recherche avant, mais rien trouvé,..
J'imagine que c'est ok de parler également PIO ici ? :thinking:

Bonjour,

Personnellement je n'utilise pas l'importation d'un projet IDE. Ca ne fait le travail qu'à moitié et tu te retrouves avec un projet bancal.

Pour récupérer un projet je fais comme ça:

  • Je crée un nouveau projet en sélectionnant la carte utilisée
  • Je copie le contenu de mon fichier ino et le colle dans le fichier main.cpp
  • S'il y a plusieurs fichiers je les drag and drop (pans le paneau explorateur de VSCode) soit dans le répertoire src pour les .cpp ou le répetoire include pour les .h
  • Pour les librairies tu as plusieurs solutions:
    Soit tu installes les librairies en global
    Soit tu indiques le chemin des librairies IDE dans platformio.ino
    Soit tu drag and drop les librairies qui te sont nécessaires dans le lib de ton projet
    Soit tu indiques le chemin des librairies dans github (ou ailleurs) avec lib_deps dans platformio.ini

VScode/Platformio suit les règles du C++, en particulier les noms doivent être déclarés avant d'être utilisés.
Il faut donc ajouter <#include Arduino.h> au début du fichier et définir ou déclarer les fonctions avant de les utiliser.
Les fichiers de VSCode/Platformio sont compilables sous l'IDE (éventuellement en les renommant en .ino), mais l'inverse n'est pas forcément vrai à cause de la remarque pécédente.

Merci Kamill, je vais regarder à ça à tête reposée :+1:

Il me reste à trouver comment je change le dossier de travail,
Je n'aime pas avoir mon travail dans 'mes documents/'.. je préfères quand c'est sûr mon disque data..

Pareil, j'ai vu que les fichiers spiff sont direct dans l'explorateur.... Ce qui devrait être plutôt bien pour tout avoir sous la main, et bosser direct en même temps sur les html et css ...

Encore merci pour tes conseils🥷

Quand tu crées un projet tu peux le mettre ou tu veux.

Oui, mais dès fois ce n'est pas très visible....
Exemple à la création d'un nouveau projet j'ai ça :

Ce n'est pas très clair.

Si je décoche "Use default location et que je fais défiler la fenêtre active je vois ceci :

C'est un défaut de vscode ou de platformIO : la fenêtre active n'est pas forcée au-dessus des autres.

Il faut que j'essaie pour vraiment me rendre compte, mais ça me paraît ok comme ça,
Tu sélectionne et tu passes à la suite, j'imagine.

Par contre il est sûrement plus prudent de rester à l'écart des dossiers de l'ide Arduino.. pour bien tout séparer et éviter toute possibilité de conflits..

Cela ne m'est jamais venu à l'idée de les mélanger.
Je n'ai pas vraiment confiance en l'IDE arduino et je maîtrise trop mal PIO.

L'avantage que je trouve à PIO c'est que les bibliothèques sont par défaut localisées dans un projet.
Cela permet d'éviter le foutoir des bibliothèques qui portent le même nom, mais qui ne sont pas compatibles comme cela se passe avec la structure de l'IDE Arduino, héritée de Processing.

Oui, c'est vrai. Maintenant je le fais sans chercher, mais je me souviens que la première fois j'avais galéré pour trouver comment on pouvait changer le répertoire du projet.

Tu n'es pas tout seul.
Je n'ai toujours pas trouvé où changer le répertoire par défaut.

:rofl:
Ça va, ça me rassure..

Bonjour,
Peut être une piste : PlatformIO - Changing default projects location in vscode · GitHub

Cool, je vais regarder à ça! Merci !! :pray:

Je viens de regarder, bonne info, j'imagine pour le cas où l'option n'est pas disponible..

Par contre ça fait limite finir de 'coder' l'interface avant de pouvoir coder avec..:stuck_out_tongue_winking_eye:

Si tu veux du simple tu prends arduino, si tu veux des possibilités avancées il faut des logiciels complexes et mettre les mains dans le cambouis.
C'est toujours pareil : le beurre ou l'argent du beurre.

Je prendrais volontiers les deux merci :stuck_out_tongue_winking_eye: :sweat_smile:

PROBLEME RESOLU!
Un grand merci pour votre précieuse aide, me voilà en route grâce à vos conseils.

J'ai fait comme tu suggérais @kamill pour 'importer' manuellement, nickel....
J'ai effectivement dû ajuster mon écran @68tjs au moment de choisir mon nouvel emplacement.. Comme j'ai un écran de taille suffisante, ça c'est finalement bien passé.

J'ai pris soin d'insérer les librairies à l'explorateur avant de copier/coller le code.
Puis j'ai copié le code en oubliant pas d'ajouter #include <Arduino.h>

PIO semble un peu plus pointilleux niveau déclaration des fonctions,.. je me suis fais rappeler à l'ordre une paire de fois, alors que ça ne posait aucun problème à IDE :sweat_smile:

Une fois tout résolu, le téléversement s'est lui aussi bien passé, cool! :sunglasses:

Pour le moment le feeling est toujours bon,

Prochaine étape, rajouter les html, css, etc, et uploader tout ça.. :upside_down_face:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.