Création de library arduino

Hello Hello ! Je reprend arduino après une longue pose donc je suis un peu rouillé.
J'ai un projet ou le but est notament de faire une base un peu générique pour de l'IoT avec ESP8266. Pour cela je crée une classe C++ de base incluant les outils de base comme l'initialisation de la library wifi manager.

Pour l'instant, la structure de mon projet ressemble à :

.
├── HestiaIoT.cpp
├── HestiaIoT.h
└── lib
    └── WiFiManager

J'ai fait un lien symbolique dans ~/Arduino/library à la racine du projet. J'ai donc un dossier "hestia" dans ~/Arduino/library contenant tout ce qu'il y'a au dessus

Mon .h

#include "lib/WiFiManager/WiFiManager.h"
#include <string>

#ifndef HestiaIoT_H
#define HestiaIoT_H

class HestiaIoT {
public:
    // Constructor
    HestiaIoT(std::string IoTname);

    // Destructor
    ~HestiaIoT();

private:
    // Attributs
    std::string IoTname;
    WiFiManager wm;
};

#endif // HestiaIoT_H

Mon .cpp

#include "HestiaIoT.h"


// Constructor
HestiaIoT::HestiaIoT(std::string IoTname) {
    IoTname = IoTname;

    bool res;
    res = wm.autoConnect("IoTname" ,"password"); // password protected ap

    if(!res) {
      // throw;
    }
}

// Destructor
HestiaIoT::~HestiaIoT() {
  wm.~WiFiManager();
}

mon .ino

#include "HestiaIoT.h"

HestiaIoT* iot;

void setup() {
  iot = new HestiaIoT("michel");
}

void loop() {
  // put your main code here, to run repeatedly:

}

En faisant ça j'ai des référence indéfinie vers les fonctions de la classe wifimanager

Je suis assez sur de ne pas faire les choses proprement mais j'avoue que mon C++ est pas mal rouillé donc je interessé des bonnes pratique concernant la création de library et l'inclusion d'une library arduino dans la library que j'essaie de crée.

Merci d'avance !
Breizh

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