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
(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
#3
(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
#4
(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
#5
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
#6
(04-01-2025, 03:27 AM)Raphael591 a écrit : 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.

Bonjour Raphael591.
Mise à Zéro de mes sources et nouveau départ avec les fichiers origines plus mes adaptations liés à mes GPIO.
Lancement d'Arduino.IDE avec une page vierge car il démarre toujours avec le dernier code source!
Cela fonctionne (compilation et téléversement).
J'installe l'ESP dans la journée et vous informe.
Je pense que l'Arduino.IDE gère des sauvegardes muettes qui font je ne sais quoi.
A force de chercher, on oublie l'essentiel: faire table rase.
Merci pour l'aide.
Bon WE.
Serge
Répondre


Atteindre :


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