Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
erreur compillation V13
#1
Bonjour,
Je test l'installation de la V13 pour remplacer la V11.20.
Ayant un OLED, je test les différentes versions soit V11.20; V11.20.OLED; V13.00; V13.00.OLED.
Pour les trois premières RAS mais pour la version 13.00.OLED, j'ai l'erreur:
exit status 1

Compilation error: no matching function for call to 'Action::TypeEnCours(int16_t&, float [4], int&)'

J'ai appelé pour les 2 versions OLED la fonction " TypeEnCours " et ci dessous les différences en bleu sauf pour le point D) que je vous laisse découvrir:

A)  Actions.cpp
V11.20 :
byte Action::TypeEnCours(int Heure, float Temperature, int Ltarfbin) {  //Retourne type d'action  active à cette heure et test temperature OK
V13.00 :
byte Action::TypeEnCours(int Heure, float Temperature, int Ltarfbin, int Retard) {  //Retourne type d'action  active à cette heure et test temperature OK

B) Actions.h
V11.20 :
byte TypeEnCours(int Heure,float Temperature, int Ltarfbin);
V13.00 :
byte TypeEnCours(int Heure, float Temperature, int Ltarfbin, int Retard);
 
C)OLED.ino
V11.20
if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin);
V13.00 :
if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin);

D)
 Solar_Router_V11_20_SG_OLED
 Type_En_Cours = LesActions[i].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin);                         //0=NO,1=OFF,2=ON,3=PW,4=Triac
    if (Actif[i] > 0 && Type_En_Cours > 1 && DATEvalid && (Source_Temp == "tempNo" || TemperatureValide > 0)) {  // On ne traite plus le NO
      if (Type_En_Cours == 2) {
 
 
 Solar_Router_V13_00_SG_OLED :
Type_En_Cours = 1;  //  on arrete
    } else {
      Type_En_Cours = LesActions[i].TypeEnCours(HeureCouranteDeci, laTemperature, LTARFbin, Retard[i]);  //0=NO,1=OFF,2=ON,3=PW,4=Triac
    }
    if (Actif[i] > 0 && Type_En_Cours > 1 ) {  // On ne traite plus le NO
      if (Type_En_Cours == 2) {
        RetardF[i] = 0;
      } else {  // 3 ou 4
 

Avec tous ces éléments, pouvez vous me dire ce que je dois faire pour résoudre mon problème.
J'ai la bibliothèque ESP32 V3.0.7 installée.
Merci d'avance.
Serge
Répondre
#2
J ai pas chargé le code source de la v13 mais dans le D)
Tu as
Type_En_Cours = LesActions[i].TypeEnCours(HeureCouranteDeci, laTemperature, LTARFbin, Retard[i]);

Je verrai bien
Type_En_Cours = LesActions[i].TypeEnCours(HeureCouranteDeci, lTemperature, LTARFbin, Retard[i]);

C est à remplacer laTemperature par temperature

Les tableaux Retard et RetardF sont ils declarés ?
Répondre
#3
(03-01-2025, 06:37 PM)Lolo69 a écrit : J ai pas chargé le code source de la v13 mais dans le D)
Tu as
      Type_En_Cours = LesActions[i].TypeEnCours(HeureCouranteDeci, laTemperature, LTARFbin, Retard[i]);

Je verrai bien
      Type_En_Cours = LesActions[i].TypeEnCours(HeureCouranteDeci, lTemperature, LTARFbin, Retard[i]);

C est à remplacer laTemperature par temperature

Les tableaux Retard et RetardF sont ils declarés ?

Je veux bien mais c'est modifier le code source qui fonctionne, a priori, chez d'autres utilisateurs.
Pourquoi je ferai exception???
Répondre
#4
Il fonctionne pas puisque tu compiles pas…. C est un code deja modifié non car je ne connais pas de version Oled sur le site d André
Répondre
#5
(03-01-2025, 09:51 PM)Lolo69 a écrit : Il fonctionne pas puisque tu compiles pas…. C est un code  deja modifié non car je ne connais pas de version Oled sur le site d André

Sur le Forum, il existe la section " Code OLED 128*64 " que je t'invite à consulter.
Répondre
#6
Lol
C est pas le code original donc de André, je t invite donc à etre « prudent » avec ces repliquas très bien mais qui ne sont pas testés dans toutes les configurations : la preuve c est que tu compiles pas…
Je chargerai cette version et pourrais te dire ou se trouve ton soucis de compilation.
Mets moi le lien pour y acceder ca m evitera de fouiller
Répondre
#7
(03-01-2025, 03:15 PM)Serge111 a écrit : Bonjour,
Je test l'installation de la V13 pour remplacer la V11.20.
Ayant un OLED, je test les différentes versions soit V11.20; V11.20.OLED; V13.00; V13.00.OLED.
Pour les trois premières RAS mais pour la version 13.00.OLED, j'ai l'erreur:
exit status 1

Compilation error: no matching function for call to 'Action::TypeEnCours(int16_t&, float [4], int&)'

J'ai appelé pour les 2 versions OLED la fonction " TypeEnCours " et ci dessous les différences en bleu sauf pour le point D) que je vous laisse découvrir:

A)  Actions.cpp
V11.20 :
byte Action::TypeEnCours(int Heure, float Temperature, int Ltarfbin) {  //Retourne type d'action  active à cette heure et test temperature OK
V13.00 :
byte Action::TypeEnCours(int Heure, float Temperature, int Ltarfbin, int Retard) {  //Retourne type d'action  active à cette heure et test temperature OK

B) Actions.h
V11.20 :
byte TypeEnCours(int Heure,float Temperature, int Ltarfbin);
V13.00 :
byte TypeEnCours(int Heure, float Temperature, int Ltarfbin, int Retard);
 
C)OLED.ino
V11.20
if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin);
V13.00 :
if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin);

D)
 Solar_Router_V11_20_SG_OLED
 Type_En_Cours = LesActions[i].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin);                         //0=NO,1=OFF,2=ON,3=PW,4=Triac
    if (Actif[i] > 0 && Type_En_Cours > 1 && DATEvalid && (Source_Temp == "tempNo" || TemperatureValide > 0)) {  // On ne traite plus le NO
      if (Type_En_Cours == 2) {
 
 
 Solar_Router_V13_00_SG_OLED :
Type_En_Cours = 1;  //  on arrete
    } else {
      Type_En_Cours = LesActions[i].TypeEnCours(HeureCouranteDeci, laTemperature, LTARFbin, Retard[i]);  //0=NO,1=OFF,2=ON,3=PW,4=Triac
    }
    if (Actif[i] > 0 && Type_En_Cours > 1 ) {  // On ne traite plus le NO
      if (Type_En_Cours == 2) {
        RetardF[i] = 0;
      } else {  // 3 ou 4
 

Avec tous ces éléments, pouvez vous me dire ce que je dois faire pour résoudre mon problème.
J'ai la bibliothèque ESP32 V3.0.7 installée.
Merci d'avance.
Serge
Je viens de faire la même manip avec la version 12.06.
Compil code source OK.
Compil avec ajout de l'option OLED  erreur:
Compilation error: no matching function for call to 'Action::TypeEnCours(int&, float [4], int&)'.
Merci pour votre aide.

Serge
Répondre
#8
Je charge cette version et vous dirai demain. En tout cas il semble bien y avoir une erreur car plusieurs personnes ont le pb de compil avec cette fonction
Répondre
#9
de mon coté compilation sans aucune erreur avec blblio ESP32 v3.0.7 d installée....
Selection de la carte ESP32 Dev Module
Paritition scheme noFS
Arduino IDE 2.3.3

J ai bien les memes lignes que tu as montré en D)

pourrais tu recopier l'integralité du message des erreurs dans la fenetre de


Heyyy bingo je pense avoir trouvé
dans ta version Solar_Router_V13_00_SG_OLED qui ne se compile pas

dans oled.ino tu as bien la ligne
if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin); ??

sinon ce que je comprends pas dans ton chapitre C) qui est censé ne pas etre "OLED" tu as ecrit

V13.00 :
if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, temperature, LTARFbin);

cette ligne dans le fichier oled.ino ca devrait plutot etre

if (MATERIEL_ROUTAGE != -1) Mode = LesActions[MATERIEL_ROUTAGE].TypeEnCours(HeureCouranteDeci, laTemperature, LTARFbin, Retard[MATERIEL_ROUTAGE]);
j ai l impression que dans ta version OLED 13 tu as gardé une version oled.ino antérieure
Répondre
#10
Bonjour,
J'ai écrit le code pour l'écran, même remarque que précédemment, l'appel de la fonction ne correspond pas au code présent sur le forum. 
Reprendre le code original ici
Tu as probablement récupéré une version de code antérieur à la V12.
Routeur avec Triac, CE 2500w. Shelly pro em50 pour les mesures. Kit PV pnp 2 kW. Home assistant
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)