Go Down

Topic: AQUABOUN'S /// GESTION D'AQUARIUM RECIFAL (Read 44216 times) previous topic - next topic

djbouns

Bonjour hbachetti,

Code: [Select]
bool  recvRetCommandFinished ( uint32_t timeout)
{   
    bool ret = false ;
    uint8_t temp [ 4 ] = { 0 };
   
    nexSerial. setTimeout (timeout);
    if ( sizeof (temp)! = nexSerial. readBytes (( char *) temp, sizeof (temp)))
    {
        ret = false ;
    }

    if (temp [ 0 ] == NEX_RET_CMD_FINISHED
        && temp [ 1 ] == 0xFF
        && temp [ 2 ] == 0xFF
        && temp [ 3 ] == 0xFF
        )
    {
        ret = vrai ;
    }


et pour toi cela explique le plantage de l'arduino ?

hbachetti

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

djbouns


J-M-L

#663
Jul 12, 2018, 02:16 am Last Edit: Jul 12, 2018, 02:16 am by J-M-L
Lire ce post sur leur forum ==> comment est géré l'écran ? en dim ou en sleep et avec quels params?
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

djbouns

#664
Jul 12, 2018, 05:04 pm Last Edit: Jul 12, 2018, 05:04 pm by djbouns
Merci Jean marc cela rejoint mes précédentes lectures.
J'ai donc :
Crée une page "standby" avec un bouton couvrant toute la surface
Dans la page menu, un timer (1min)
Dans chaque bouton de l'écran menu j'ai ajouter une ligne de commande qui remet le timer a zéro des que le bouton en cliquer et remet le rétroéclairage a son niveau "Default" si ce n'est pas le cas
Si aucune activité au bout d'une minute, le luminosité décent progressivement et quand a zéro, bascule sur la page standby et envoi cette info a l'arduino.
L'arduino stop toute mise a jour car plus sur la page "menu"
Quand on touche l'écran "noir" de la page standby, envoie info a l'arduino qui demande d'afficher la page menu et met tout les champs a jour.
Un fois celle ci charger le nextion remet la luminosité a "Default"

depuis ce matin pas de beug, je laisse tourner pour être sur ...


J-M-L

Cool

Mais il ne semblait - à la lecture de leur doc - que vous n'aviez pas vraiment Besoin de le gérer vous même et que des variables d'environnement permettait de gérer cela
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

djbouns

la traduction laisse pensé que oui
Précédament j'avais thsp = 60 + thup = 1
sauf que des que l'écran passe en mode "thsp" l'arduino fini par beuger même ci pour hbachetti cela n'en n'est pas la cause.
pour le mode sleep, il faut le gérer le passage dans se mode manuellement, donc faire un timer ... comme je l'ai fait sauf qu'il est préciser "mais la mise à jour d'autres variables pendant le sommeil peut s'attendre à des problèmes." j'ai déjà assez de problème  :smiley-lol:

Ce que j'ai fait le met pas l'écran en veille mais éteint le rétroéclairage et passe sur une page "bouton" tout en prévenant l'arduino qui stop toute communication.

depuis que ces en place, pas un seul beug  :smiley-cool:


Pour le reste du projet, je voix le bout du tunnel concernant la partie arduino/ecran
Il me reste toute la partie PH que je pensait sur la bonne voix mais qui en faite n'est pas au point.
Le montage plus code est OK pour un PH stable mais dérive des lors que le ph change et le calibrage est impossible. j'attend  quelque composant pour me remette dessus.

hormis ça, il me reste 4 flotteurs a cree/coder puis il faut que j'integre la partie SMS et WIFI que l'on a vu il y a plusiseurs mois.
La partie SMS devrait être la plus simple il faut juste que je me remette dans les "char" (comme ben-hur  :smiley-eek:  :-X )
La partie wifi va demander un gros travaille car il faut déjà intégrer les échanges puis complètement revoir la partie html, un gros morceau  :smiley-confuse:

C'est sur la bonne voix  :smiley-grin:

J-M-L

Encore du pain sur la planche mais c'est aussi ça qui est intéressant !!
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

djbouns

#668
Jul 14, 2018, 01:13 am Last Edit: Jul 14, 2018, 01:14 am by djbouns
Encore du pain sur la planche mais c'est aussi ça qui est intéressant !!
:o  :smiley-roll-sweat:
Mais effectivement  ;D  je vais donc avoir besoin d'aide 8)

La partie Sms a bien été intégré en fonctionne
voici le retour du mais
J'ai un problème avec le numéro de téléphone sauvegardé.

a la sauvegarde le numéro est bien enregistré mais dans le fichier il y a un passage a la ligne.
Si je retire manuellement dans le fichier txt ce saut de ligne tout fonctionne.
C'est vraiment ce passage a la ligne qui fou tout en l'air.

J'ai beau chercher, je n'est ajouter aucun passage a la ligne, que un caractere de fin.

La partie recup du nextion
Code: [Select]
void enregistrerTel(void *ptr) {
  uint8_t i = 0;
  effaceBuffer();
  valeurtel.getText(bufferTexte, maxbufferTexte);
  strncpy(numero2tel, bufferTexte, maxnumero2tel);
   numero2tel[maxnumero2tel] = '\0';
  ecritSurSd("numero2tel.txt", numero2tel);


et sauvegarde sur sd
Code: [Select]
void ecritSurSd(char * nomDuFichierTxt, char * donneeAEcrireSurSD) {// *******************************************************************************************************************************************
  SD.remove(nomDuFichierTxt);
  myFile = SD.open(nomDuFichierTxt, FILE_WRITE);
  if (myFile) {
    myFile.println(donneeAEcrireSurSD);
  } else {
    DPRINTF("Erreur d'écriture dans le fichier "); DPRINTLN(nomDuFichierTxt); DPRINTLN();
  }
  myFile.close();
}

J-M-L

#669
Jul 14, 2018, 01:13 am Last Edit: Jul 14, 2018, 01:17 am by J-M-L
Le retour charriot à la fin dans le fichier provient du
myFile.println(donneeAEcrireSurSD);

Faudrait just faire un print mais dans l'absolu la fonction de lecture ne devrait pas tenir compte de la fin de ligne et juste ignorer tout ce qui n'est pas des chiffres par exemple

Sinon juste par acquis de conscience, vous aviez bien déclaré la taille du buffer comme celà:
char numero2tel[maxnumero2tel+1];
N'est-ce pas ?
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

djbouns

#670
Jul 14, 2018, 01:15 am Last Edit: Jul 14, 2018, 01:24 am by djbouns
ba oui, comme le serial.println ... pfff
2h de perdu :(
merci

djbouns

#671
Jul 14, 2018, 12:08 pm Last Edit: Jul 14, 2018, 12:09 pm by djbouns
Sinon juste par acquis de conscience, vous aviez bien déclaré la taille du buffer comme celà:
char numero2tel[maxnumero2tel+1];
N'est-ce pas ?
Code: [Select]
const uint8_t maxnumero2tel = 15;
Code: [Select]
char numero2tel [maxnumero2tel + 1];

:)

C'était bien fait et sa fait parti des choses vérifier 10 fois avant de comprendre le problème.

hbachetti

En général on procède plutôt comme ceci :

Code: [Select]

#define MAXNUMERO2TEL    15
char numero2tel [MAXNUMERO2TEL + 1];


Car dans ce cas, la macro MAXNUMERO2TEL n'occupe aucune place en mémoire.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

djbouns

C'est valable pour tout les const uint8_t ?

J-M-L

#674
Jul 14, 2018, 12:46 pm Last Edit: Jul 14, 2018, 12:55 pm by J-M-L
En général on procède plutôt comme ceci :
Code: [Select]

#define MAXNUMERO2TEL    15
char numero2tel [MAXNUMERO2TEL + 1];

Car dans ce cas, la macro MAXNUMERO2TEL n'occupe aucune place en mémoire.
En théorie ce que vous dites est correct mais c'est oublier l'étage d'optimisation de code du compilateur. Comme on a pris soin de d'utiliser const le compilateur sait que ça ne va pas changer et n'alloue pas de mémoire et remplace directement par la valeur dans le code généré. (Idéalement il faudrait utiliser  const byte plutôt que int. ça aiderait encore plus le compilateur)

D'autre part quand on fait des define comme cela On laisse moins de chance au compilateur de faire des optimisations car c'est de la substitution de texte et il prend donc en mémoire la place d'un int signé (2 octets sur uno, 4 sur esp par exemple) pour les calculs que le préprocesseur ne sait pas faire (pour le +1 le compilateur ne génère pas de code il sait que c'est 16 le résultat). En utilisant une "variable constante" ça vous donne l'avantage de pouvoir aider le compilateur en typant la constante.
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Go Up