F1ATB forum
Ecran 480x320 - Version imprimable

+- F1ATB forum (https://f1atb.fr/forum_f1atb)
+-- Forum : Forum de F1ATB (https://f1atb.fr/forum_f1atb/forum-3.html)
+--- Forum : Routeur Photovoltaïque (https://f1atb.fr/forum_f1atb/forum-4.html)
+---- Forum : Affichage Routeur Distant (https://f1atb.fr/forum_f1atb/forum-11.html)
+---- Sujet : Ecran 480x320 (/thread-1635.html)



Ecran 480x320 - Alain H - 26-07-2025

Bonjour André,

Pourriez-vous me commenter toutes les lignes ci-dessous, car j'ai un écran déporté de 480X320 et je ne comprends pas le code afin de le dimensionner à mon écran.

void TraceCourbe() {
  RempliFond();
  TraceTarif();
  int Pmin = -10;
                                              //Pmin= -10 ?
  int Pmax = 10;                                               
// Pmax=  10 ?
  int i;
  int heure;
  for (i = 0; i < 240; i++) {                                  
//240 ?
    Pmin = min(Pmin, tabPw[i]);
    Pmax = max(Pmax, tabPw[i]);
  }
  Pmax = 1.05 * max(Pmax, -Pmin);                              
// Pmax=1.05 * max(Pmax,Pmin) ?
  Pmin = -Pmax;                                               
// Pmin = -Pmax ?
  int idx = (idxPw + 1) % 240;
                                 // int idx = (idxPw + 1) % 240;
  ;
  int X0 = 0;
  int Y0 = map(tabPw[idx], Pmin, Pmax, 135, 0);                
// int Y0 = map(tabPw[idx], Pmin, Pmax, 135, 0) ? le 135 ?
  for (i = 1; i < 240; i++) {
    int X1 = i;
    idx = (idx + 1) % 240//240 ?
    int Y1 = map(tabPw[idx], Pmin, Pmax, 135, 0);             
// int Y1 = map(tabPw[idx], Pmin, Pmax, 135, 0) ?  le 135 ?
    tft.drawLine(X0, Y0, X1, Y1, C16disp_Graph);
    X0 = X1; //  X0 = X1 ?
    Y0 = Y1; //  Y0 = Y1 ?
  }
  tft.setFreeFont(FS9);
  tft.setTextColor(C16disp_Texte, C16disp_FondCourant);
  tft.drawString("W", 8, 3, 1);
  tft.setTextColor(C16disp_Texte, C16disp_FondCourant);
  int X1;
  for (i = 0; i <= 4; i++) {                                 
// for (i = 0; i <= 4; i++) { ?
    heure = -i * 8;//  heure = -i * 8;
    X0 = 240 - i * 48;                                        
// X0 = 240 - i * 48 à quoi correspond 240?
    X1 = X0 - 10;                                             
// X1 = X0 - 10 ?
    tft.drawString(String(heure) + "h", X1, 80, 1);
    tft.drawLine(X0, 67, X0, 70, C16disp_Texte);
  }
}


En vous remerciant pour votre énorme travail.


RE: Ecran 480x320 - F1ATB - 26-07-2025

void TraceCourbe() {
RempliFond();
TraceTarif();
int Pmin = -10; //Pmin= -10 ? Pour avoir un cadrage, même si pas de resultat
int Pmax = 10; // Pmax= 10 ?
int i;
int heure;
for (i = 0; i < 240; i++) { //240 ?
Pmin = min(Pmin, tabPw[i]);
Pmax = max(Pmax, tabPw[i]);
}
Pmax = 1.05 * max(Pmax, -Pmin); // Pmax=1.05 * max(Pmax,Pmin) ? Des axes un peu 5% grand que les données *1.05
Pmin = -Pmax; // Pmin = -Pmax ?
int idx = (idxPw + 1) % 240; // int idx = (idxPw + 1) % 240;
;
int X0 = 0;
int Y0 = map(tabPw[idx], Pmin, Pmax, 135, 0); // int Y0 = map(tabPw[idx], Pmin, Pmax, 135, 0) ? le 135 ? changement de coordonnées entre pmin et pmax en entée et 135 et 0 pixels en sortie
for (i = 1; i < 240; i++) {
int X1 = i;
idx = (idx + 1) % 240; //240 ?
int Y1 = map(tabPw[idx], Pmin, Pmax, 135, 0); // int Y1 = map(tabPw[idx], Pmin, Pmax, 135, 0) ? le 135 ?
tft.drawLine(X0, Y0, X1, Y1, C16disp_Graph);
X0 = X1; // X0 = X1 ?
Y0 = Y1; // Y0 = Y1 ?
}
tft.setFreeFont(FS9);
tft.setTextColor(C16disp_Texte, C16disp_FondCourant);
tft.drawString("W", 8, 3, 1);
tft.setTextColor(C16disp_Texte, C16disp_FondCourant);
int X1;
for (i = 0; i <= 4; i++) { // for (i = 0; i <= 4; i++) { ?
heure = -i * 8;// heure = -i * 8;
X0 = 240 - i * 48; // X0 = 240 - i * 48 à quoi correspond 240? 240pixels vers le bas
X1 = X0 - 10; // X1 = X0 - 10 ? positionnement du texte
tft.drawString(String(heure) + "h", X1, 80, 1);
tft.drawLine(X0, 67, X0, 70, C16disp_Texte);
}
}


RE: Ecran 480x320 - Alain H - 27-07-2025

(Hier, 02:05 PM)F1ATB a écrit : void TraceCourbe() {
  RempliFond();
  TraceTarif();
  int Pmin = -10;                                              //Pmin= -10 ? Pour avoir un cadrage, même si pas de resultat
  int Pmax = 10;                                              // Pmax=  10 ?
  int i;
  int heure;
  for (i = 0; i < 240; i++) {                                  //240 ?
    Pmin = min(Pmin, tabPw[i]);
    Pmax = max(Pmax, tabPw[i]);
  }
  Pmax = 1.05 * max(Pmax, -Pmin);                              // Pmax=1.05 * max(Pmax,Pmin) ? Des axes un peu 5% grand que les données *1.05
  Pmin = -Pmax;                                                // Pmin = -Pmax ?
  int idx = (idxPw + 1) % 240;                                // int idx = (idxPw + 1) % 240;
  ;
  int X0 = 0;
  int Y0 = map(tabPw[idx], Pmin, Pmax, 135, 0);                // int Y0 = map(tabPw[idx], Pmin, Pmax, 135, 0) ? le 135 ? changement de coordonnées entre pmin et pmax en entée et 135 et 0 pixels en sortie
  for (i = 1; i < 240; i++) {
    int X1 = i;
    idx = (idx + 1) % 240;  //240 ?
    int Y1 = map(tabPw[idx], Pmin, Pmax, 135, 0);            // int Y1 = map(tabPw[idx], Pmin, Pmax, 135, 0) ?  le 135 ?
    tft.drawLine(X0, Y0, X1, Y1, C16disp_Graph);
    X0 = X1; //  X0 = X1 ?
    Y0 = Y1; //  Y0 = Y1 ?
  }
  tft.setFreeFont(FS9);
  tft.setTextColor(C16disp_Texte, C16disp_FondCourant);
  tft.drawString("W", 8, 3, 1);
  tft.setTextColor(C16disp_Texte, C16disp_FondCourant);
  int X1;
  for (i = 0; i <= 4; i++) {                                  // for (i = 0; i <= 4; i++) { ?
    heure = -i * 8;//  heure = -i * 8;
    X0 = 240 - i * 48;                                        // X0 = 240 - i * 48 à quoi correspond 240? 240pixels vers le bas
    X1 = X0 - 10;                                            // X1 = X0 - 10 ? positionnement du texte
    tft.drawString(String(heure) + "h", X1, 80, 1);
    tft.drawLine(X0, 67, X0, 70, C16disp_Texte);
  }
}

Merci pour votre réponse rapide, j'ai essayé de modifier mais ça ne marche pas, c'est pas grave et encore merci.