Détecter dans le JS un changement de variable du code C++ (ESP32)

Détecter dans le JS un changement de variable du code C++ (ESP32) - Nano-ordinateur, microcontrôleurs, FPGA - Electronique, domotique, DIY

Marsh Posté le 12-11-2021 à 19:22:12    

Bonjour
 
Comment je peux détecter, dans le javascript du navigateur, qu'un booléen a changé dans le main.cpp ?
 
Actuellement je fais, dans le JS pour aller chercher le booléen ("transformé" en string tout prêt), une requête toutes les 3 secondes et vu que j'ai 3 booléens ça fait 1 requête par seconde rien que pour ça.  Je voudrais que quand le booléen change dans main.cpp il informe le JS, de plus ça serait instantané au lieu d'attendre 3 secondes
 

Code :
  1. setInterval(function getHygroChambreBool()
  2. {
  3.    var xhttp = new XMLHttpRequest();
  4.  
  5.    xhttp.onreadystatechange = function()
  6.    {
  7.        if(this.readyState == 4 && this.status == 200)
  8.        {
  9.            var color = this.responseText;
  10.            document.getElementById("hygroChambre" ).style.color = color;
  11.        }
  12.    };
  13.  
  14.    xhttp.open("GET", "getHygroChambreBool", true);
  15.    xhttp.send();
  16. }, 3000);


 
Je vous remercie d'avance


Message édité par Lt Ripley le 25-11-2021 à 12:52:13

---------------
Mes apps  |  Viens coder  |  Mon topal de vente
Reply

Marsh Posté le 12-11-2021 à 19:22:12   

Reply

Marsh Posté le 25-11-2021 à 11:35:27    

up !


---------------
Mes apps  |  Viens coder  |  Mon topal de vente
Reply

Marsh Posté le 25-11-2021 à 13:13:06    

Désolé, je voudrais bien t'aider mais ne connaissant ni le ESP, ni le C++ et très très très peu le JS... :o
 
Tu peux au moins faire une seule requête pour plusieurs valeurs, genre avec du JSON ou un format custom plus simple, genre valeur1;valeur2;valeur3.
 
Sinon faudrait une espèce de comm bidirectionnelle entre le ESP et le JS, mais là c'est du dév web, aucune idée...

Reply

Marsh Posté le 25-11-2021 à 13:23:57    

Ah très bonne idée en effet !  Merci !


---------------
Mes apps  |  Viens coder  |  Mon topal de vente
Reply

Marsh Posté le 27-11-2021 à 14:09:40    

Bon j'ai foutu du JSON partout.  Ça tourne au poil [:didier frogba:4] , j'ai 3 fois moins de requêtes, et j'ai du gagner 20% de taille de code.  Coté c++ je le fais à la mano, j'y crée même des tableaux, et dans le JS j'ai qu'un JSON.parse(maStringReçue) à faire et roulez jeunesse ensuite on fait myJson.monTableau[i]
 
 [:shay]


Message édité par Lt Ripley le 27-11-2021 à 19:39:33

---------------
Mes apps  |  Viens coder  |  Mon topal de vente
Reply

Marsh Posté le 26-01-2022 à 22:41:15    

Tant mieux que ça te satisfasse (et c'était une très bonne suggestion le JSON, bravo RdC :jap: ), parce qu'à mon avis ton truc du .cpp qui notifie le js seulement en cas de changement côté serveur c'était un peu mort :o
 
En développement web traditionnel tout ce qui est bidirectionnel et événement du serveur vers le client ça fait déjà appel à des protocoles très modernes (genre les Server Push de HTTP/2) ou à de la magie noire, alors arriver à faire ça avec un ESP32 et du JS natif c'était optimiste :o


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 07-02-2022 à 16:48:55    

D'après ce que j'ai vu il y a les websocket qu'on peut utiliser avec un ESP32
 
Mais c'était trop compliqué à mettre en œuvre pour mon cas et mes justes 3 booléens [:mauvlam]


---------------
Mes apps  |  Viens coder  |  Mon topal de vente
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed