WebServer sur ESP32 ("arduino") - Divers - Programmation
Marsh Posté le 15-08-2020 à 02:59:49
Si j'ai bien pigé ce que j'ai lu sur le web, il faut passer par un lambda :
server->on("/", handleRoot); a remplacer par server->on("/", [this](){ handleRoot(); });
cf https://stackoverflow.com/questions [...] ction-type
A+,
Marsh Posté le 15-08-2020 à 07:20:53
C'est bien ça, j'ai plus d'erreur du tout.
J'accède à ma page hébergée sur mon ESP32 !
Je vais me renseigner un peu sur les lambda que je ne connais pas
Merci beaucoup !
Marsh Posté le 16-08-2020 à 13:41:33
Nouveau truc qui m'arrive
Quand je crée un objet WebServer1 (monServer) je lui passe mon objet ServosDriver (SD) fraîchement créé en paramètre (pour pouvoir modifier un booleen et utiliser des methodes). Ensuite je fais "ServosDriverLocal = ServosDriver" (SD2 = SD) dans mon constructeur pour pouvoir l'utiliser
Mais quand je modifie mon booleen dans SD2 celui d'origine n'est pas modifié, et vice versa, ils sont indépendants.
J'essaye avec une reference (& ) mais j'y arrive pas non plus
Si vous pouvez m'aider c'est cool
Voici mon code : (WebServer1 c'est une classe a moi, WebServer c'est une librairie)
main.cpp
Code :
|
WebServer1.h
Code :
|
Et WebServer1.cpp
Code :
|
Marsh Posté le 16-08-2020 à 16:37:37
J'y suis arrivé avec un pointeur !
Edit :
Dans le main :
ServosDriver servosDrive;
ServosDriver *SD_PTR = &servosDrive;
WebServer1 monServer(SD_PTR);
Je déclare un pointeur SD_PTR2 dans mon WebServer1 puis je fais SD_PTR2 = SD_PTR dans le constructeur
Et j'accède au variables et méthodes, depuis monServeur avec -> au lieu de . ( SD_PTR2->textEtatPene au lieu de SD2.textEtatPene initialement)
Marsh Posté le 15-08-2020 à 00:57:03
Bonjour !
Pour mon petit bricolage qui fonctionne bien (pêne motorisé("serrure" )), avec badge RFID etc, je veux maintenant pouvoir tenir un journal de ce qu'il se passe (ouverture à telle heure etc) sur une page Web sur l'ESP
Je me connecte en wifi sur ma box.
Maintenant j'ai un soucis avec WebServer. Quand je fais server->on("/", handleRoot) ligne 64 j'ai cette erreur (sur on) : aucune instance de fonction surchargée "WebServer::on" ne correspond à la liste d'arguments -- les types d'arguments sont : (const char [2], void ()) -- le type d'objet est : WebServer
Et cette erreur sur handleRoot : invalid use of non-static member function
Et même erreur sur handleNotFound (ligne 65)
Sur le github je vois ça
void on(const Uri &uri, THandlerFunction handler);
void on(const Uri &uri, HTTPMethod method, THandlerFunction fn);
void on(const Uri &uri, HTTPMethod method, THandlerFunction fn, THandlerFunction ufn);
Voici mon code
Mon .cpp
Mon .h
Qu'en pensez vous ?
Merci d'avance pour votre aide !
Message édité par Lt Ripley le 15-08-2020 à 01:01:21
---------------
Mes apps | Viens coder | Mon topal de vente