Go Down

Topic: Angular e Chart JS com arduino  (Read 2159 times) previous topic - next topic

Gibbasun

Bom dia.

Se puderem, agradeço uma ajuda.

Estou estudando o mundo Iot, usando um projeto de monitoramento de temperatura, que peguei na internet, utilisando a NodeMCU. E estou com problemas para atualizar as informações na página no meu PC, onde uso HML5/CCS3 com Angular JS e ChartJs do google.

No loop do Arduino eu gravo na flash as temperaturas em cada período de tempo, por exemplo:
No Arduíno consigo obter a temperatura atual e as últimas temperaturas registradas pelo serial.println(...).
Temperatura no momento - 14º C
Últimos minutos:
12:02:00 - 16º C
12:03:00 - 17º C
12:04:00 - 16º C
12:05:00 - 15º C
12:06:00 - 14º C


Na minha página, eu espero receber, a cada 10 segundos, a temperatura atual, sem acionar um botão.
Além de também atualizar um gráfico com informações das temperaturas dos últimos 5 minutos que estão gravadas na memória flash. 


bubulindo

Que estás à espera que alguém te diga? Não colocaste nada acerca da configuração ou o código que estás a correr.
This... is a hobby.

Gibbasun

#2
Nov 03, 2017, 03:51 pm Last Edit: Nov 03, 2017, 10:38 pm by Gibbasun
Me desculpe a demora.
Troquei o cenário, mas o problema continua.

No arduíno tenho a sequencia dos seguintes códigos:
void MontaJson()
{
      json = "";
      json +=                 "[{";
      json +=                          "\"hoje\": ";
      json +=                                      "\"" + String(day()) + "/" +  String(month())  + "/" +   String(year())   + "\", ";
      json +=                          "\"hora\": ";
      json +=                                      "\"" +  String(hour()) + ":" + String(minute()) +  ":" + String(second()) + "\", ";
      json +=                         "\"ciclo\": ";
      json +=                                      "\"" +  String(timeCicle) + " horas"                                      + "\", ";

     
      calculoConsumo(acMin, 1);
      json +=                       "\"AcumMin\": ";
      json +=                                      qtdeConsumo;
      json +=                                  ", ";
      json +=                         "\"Unit1\": ";
      json +=                                      "\"" + UnitConsumo + "\", ";
      .
      .
      .
      json += "}]";
      .
      .
      .
}

Na string "json" obtenho a seguinte estrutura, que funciona quando simulo na na página, copiando esta mesma estrutura:

[{ "hoje":  "03/11/2017", "hora": "16:35:06",
"ciclo":  "40.58 horas",
"AcumMin":     0,        "Unit1": "WH" ,
"AcumHora":   287,   "Unit2": "WH" ,
"AcumDia":    0,        "Unit3": "WH" ,
"AcumMes":  287,     "Unit4": "WH" ,
"Projetado":    5,        "Unit5": "KWH" ,
"UltimaHora": 0,        "Unit6": "WH (15) ",
"UltimoDia":    0,       "Unit7": "KWH (1) ",
"UltimoMes":  0,       "Unit8": "KWH (10) "
}]

Anteriormente a página era montada inteiramente no arduíno e acessada pelo IP do dispositivo, sem problemas.

Após a montagem da string Json, faço o seguinte:

//==============================================
// Envia informações montadas na estrutura Json
//==============================================
void EnviaJson()
{
 
      WiFiClient client = server.available();
       if (!client) {
         return;
       }   
       while(!client.available()){
          delay(1);
       }

     client.println("HTTP/1.1 200 OK");
     client.println("Content-Type: application/json");
     client.println("Connection: close");
     // this is the CORS header. Yery important. Google CORS.
     client.println("Access-Control-Allow-Origin: *");
     client.println();
     
       client.print(json);
 
       // g...
       delay(1);
       client.flush();
       // close the connection:
       client.stop();
}

Ná página:
<!DOCTYPE html>
<html ng-app="readArduinoApp">
.
.
.
   <script type="text/javascript" >
      var app = angular.module('readArduinoApp', []);
      app.controller("ReadArduinoController", function ($http, $scope) {
          $http.get('http://192.168.0.14:80').then(function (response) {
              $scope.acumuladores = response.data;
          });
      });

/*      
      var app = angular.module("readArduinoApp", []);
      app.controller("ReadArduinoController", function($scope)
      {
         $scope.acumuladores =    [{        "hoje": "2/11/2017",
                             "hora": "16:35:6",
                            "ciclo": "40.58 horas",
                          "AcumMin": 0   , "Unit1":    "WH",
                          "AcumHora": 287   , "Unit2":    "WH",
                           "AcumDia": 0   , "Unit3":    "WH",
                           "AcumMes": 287   , "Unit4":    "WH",
                         "Projetado": 5      , "Unit5":    "KWH",
                        "UltimaHora": 0   , "Unit6":    "WH (15) ",
                         "UltimoDia": 0      , "Unit7":    "KWH (1) ",
                         "UltimoMes": 0   , "Unit8":    "KWH (10) "
               }]

      });
*/      
</script>
.
.
.
       <article ng-controller="ReadArduinoController">
           <header>
               <h2>Consumo em tempo real</h2>
           </header>
           <p>
                <h3>   
                   <ul ng-repeat="d in acumuladores">
                      <li>         Em: {{d.hoje}} às     {{d.hora}}      </li>
                       <li>      Ciclo: {{d.ciclo}} - Delay de 10 sedundos </li> <br>
                      <li>  Acum. Min: {{d.AcumMin}}     {{d.Unit1}}      </li>
                      <li> Acum. Hora: {{d.AcumHora}}    {{d.Unit2}}    </li>
                      <li>   Acum dia: {{d.AcumDia}}       {{d.Unit3}}      </li>
                      <li>  Acum. Mês: {{d.AcumMes}}       {{d.Unit4}}    </li>
                      <li>  Projetado: {{d.Projetado}}    {{d.Unit5}}    </li>
                      <li>Última Hora: {{d.UltimaHora}}    {{d.Unit6}}    </li>
                      <li> Último Dia: {{d.UltimoDia}}    {{d.Unit7}}    </li>
                      <li> Último Mês: {{d.UltimoMes}}    {{d.Unit8}}      </li>
                   </ul>
                </h3>            
           </p>
       </article>
          <header

No link abaixo, o resultado quando colo a estrutura na na própria página ...
https://image.prntscr.com/image/4SlF6fkaQkGvvoEPoLvI8Q.png

tecdiego

Caro amigo, porque você não coloca um refresh automático na sua página web, no próprio exemplo de webserve do arduino tem isso :
Code: [Select]

client.println("Connection: close"); Só fechar a conexão e embaixo colocar o refresh com o tempo que você quer!
client.println("Refresh: 5");  // refresh the page automatically every 5 sec



Gibbasun

#4
Nov 04, 2017, 01:42 am Last Edit: Nov 04, 2017, 02:52 am by Gibbasun
Eu tenho um código dentro do Arduíno(dispositivo), que me abre uma página no Browser pelo IP do dispositivo via wifi, só para teste.
Agora preciso que o Arduíno, em seu loop,  apenas transfira as informações para a aplicação. Para isso estou tentando usar a estrutura json, com o AngularJs do outro lado.

Me guiei por um exemplo que peguei aqui, mas as informações não chegam na aplicação, com ou sem o refresh.
O exemplo pode ser visto em: https://playground.arduino.cc/Code/WebServerJson ... 

PS.: Biblioteca atual e as que já tentei.
//#include <ESP8266WebServer.h>
//#include <WiFiManager.h>         //https://github.com/tzapu/WiFiManager
#include <ESP8266WiFi.h>              // https://github.com/esp8266/Arduino
//#include  <Ethernet.h>

Jeff_85

#5
Nov 04, 2017, 10:37 pm Last Edit: Nov 05, 2017, 03:07 am by Jeff_85
Você está usando o ESP8266 como módulo principal ou ele está recebendo as as leituras do Arduino e depois as repassando para você obter via browser?

Uma dica seria também substituir sua linha:
Code: [Select]

client.println("HTTP/1.1 200 OK");
client.println("Content-Type: application/json");
client.println("Connection: close");
// this is the CORS header. Yery important. Google CORS.
client.println("Access-Control-Allow-Origin: *");
 client.println();


Por isso:

Code: [Select]

client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html><body>HELLO</body></html>");

Veja se seu módulo carrega isso na tela de seu navegador. Ai se tudo correr bem, você poderia montar um simples json na linha que contém a estrutura html e enviar para o outro lado (navegador) e com console.log ver o que aparece.


Eu ainda não olhei os detalhes de sua função void MontaJson(). Mas de ante mão, você poderia fazer o seguinte:
em
Code: [Select]
$scope.acumuladores = response.data; você poderia adicionar um console e verificar via browser o que te retorna. Ficaria assim:

Code: [Select]

$scope.acumuladores = response.data;
console.log("recebido: " + .$scope.acumuladores);

Isso deve mostrar ao menos recebidos: [object Object] no console. Com isso, você já terá seu objeto recebido. Basta fazer certo no lado html.

Quando for testar, você vai precisar dar F12 (para firefox ou chrome) e verificar no "console" o que aparece. Lembrando, eu não sei como estão as coisas por completo ai, pois você só postou uma mínima parte.


Jeff_85

#6
Nov 04, 2017, 10:58 pm Last Edit: Nov 05, 2017, 03:14 am by Jeff_85
Adicionalmente à minha resposta anterior:
Use sua página web assim:
Code: [Select]

<!DOCTYPE html>
<html  ng-app="readArduinoApp">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script type="text/javascript">

  var app = angular.module("readArduinoApp", []);
      app.controller("ReadArduinoController", function($scope)
      {
         $scope.acumuladores =    [{       
                              "hoje": "2/11/2017",
                              "hora": "16:35:6",
                             "ciclo": "40.58 horas",
                           "AcumMin": 0,
                             "Unit1": "WH",
                          "AcumHora": 287,
                             "Unit2": "WH",
                           "AcumDia": 0,
                             "Unit3": "WH",
                           "AcumMes": 287,
                             "Unit4": "WH",
                         "Projetado": 5,
                             "Unit5": "KWH",
                        "UltimaHora": 0,
                             "Unit6": "WH(15)",
                         "UltimoDia": 0,
                             "Unit7": "KWH (1)",
                         "UltimoMes": 0,
                             "Unit8":    "KWH (10) "
               }]
      });
     
</script>
<body>
<div>
  <h1>Controle de gastos</h1>

</div>

<div ng-controller="ReadArduinoController">
    <h2>Consumo em tempo real</h2>
           </header>
           <p>
                <h3>   
                   <ul ng-repeat="d in acumuladores">
                      <li>         Em: {{d.hoje}} às     {{d.hora}}      </li>
                       <li>      Ciclo: {{d.ciclo}} - Delay de 10 sedundos </li> <br>
                      <li>  Acum. Min: {{d.AcumMin}}     {{d.Unit1}}      </li>
                      <li> Acum. Hora: {{d.AcumHora}}    {{d.Unit2}}    </li>
                      <li>   Acum dia: {{d.AcumDia}}       {{d.Unit3}}      </li>
                      <li>  Acum. Mês: {{d.AcumMes}}       {{d.Unit4}}    </li>
                      <li>  Projetado: {{d.Projetado}}    {{d.Unit5}}    </li>
                      <li>Última Hora: {{d.UltimaHora}}    {{d.Unit6}}    </li>
                      <li> Último Dia: {{d.UltimoDia}}    {{d.Unit7}}    </li>
                      <li> Último Mês: {{d.UltimoMes}}    {{d.Unit8}}      </li>
                   </ul>
                </h3>           
           </p>     
</div>
</body>
</html>

 
Deve estar usando IDE do Arduino com o pacote do ESP8266, correto?
Em exemplos, busque por WifiWebServer e veja o exemplo completo. Vai perceber como os dados são enviados para "o outro lado".
Lembre-se, o exemplo WifiWebserver não envia JSON por padrão, você deve adaptá-lo para sua necessidade, mas isso é fácil pois o ESP apenas vai enviar um texto, então construa seu JSON de exemplo, bem curto e envie. Do outro lado veja o que recebe com console.log, como mostrado acima.

Gibbasun

Opa.
Já avancei aqui pessoal.
Dei uma limpada no código. Joguei a Ethernet fora e só uso a ESP8266WiFi.h.

Não mexi no envio do Jason e,  e no Browser, digitando o IP do Diispositiovo,  já aparecem os dados na estrutura do Json.

Agora não é mais no Arduino.

Vou fuçar mais aqui para ver se resolvo.

O script para tratar o json está assim na página, mas não está carregando as informações:
    <script type="text/javascript">


         var app = angular.module('readArduinoApp', []);
         app.controller("ReadArduinoController", function ($http, $scope)  {
                   $http.get('http://192.168.0.14').then(function (response) {
                   $scope.acumuladores = new array;
                    $scope.acumuladores = response.data;
               
                  console.log("status:" + response.status);
            
            }).catch(function(response) {
                 console.error('Erro ao obter estrutura JSon:', response.status, response.data);
            }).finally(function() {
               console.log("Task Finished.");
            });
         });    
         
   </script>


A página que está com erro, mas a estrutura tá chegando lá, conforme o link abaixo.

https://image.prntscr.com/image/uICrE2_IRFqSBW2faOwr6A.png

Jeff_85

A página que está com erro, mas a estrutura tá chegando lá, conforme o link abaixo.

Qual o erro?

Jeff_85

Poste os códigos usando TAGS </>.

Teste isso para exibição no navegador.

Code: [Select]
<!DOCTYPE html>
<html  ng-app="readArduinoApp">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script type="text/javascript">

   var app = angular.module('readArduinoApp', []);
      app.controller("ReadArduinoController", function ($http, $scope) {
          $http.get('http://192.168.1.101:80').then(function (response) {
              $scope.acumuladores = response.data;
          });
      });
     
</script>
<body>
<div>
  <h1>Controle de gastos</h1>

</div>

<div ng-controller="ReadArduinoController">
    <h2>Consumo em tempo real</h2>
           </header>
           <p>
                <h3>   
                   <ul ng-repeat="d in acumuladores">
                      <li>         Em: {{d.hoje}} às     {{d.hora}}      </li>
                       <li>      Ciclo: {{d.ciclo}} - Delay de 10 sedundos </li> <br>
                      <li>  Acum. Min: {{d.AcumMin}}     {{d.Unit1}}      </li>
                      <li> Acum. Hora: {{d.AcumHora}}    {{d.Unit2}}    </li>
                      <li>   Acum dia: {{d.AcumDia}}       {{d.Unit3}}      </li>
                      <li>  Acum. Mês: {{d.AcumMes}}       {{d.Unit4}}    </li>
                      <li>  Projetado: {{d.Projetado}}    {{d.Unit5}}    </li>
                      <li>Última Hora: {{d.UltimaHora}}    {{d.Unit6}}    </li>
                      <li> Último Dia: {{d.UltimoDia}}    {{d.Unit7}}    </li>
                      <li> Último Mês: {{d.UltimoMes}}    {{d.Unit8}}      </li>
                   </ul>
                </h3>           
           </p>     
</div>
</body>
</html>


Substitua o meu IP que está no código, pelo seu IP que foi fornecido ao ESP quando ele se conectou ao roteador. IP:80

Gibbasun

#10
Nov 05, 2017, 11:25 am Last Edit: Nov 05, 2017, 02:48 pm by Gibbasun
Valeu pela força Jeff.
Vamos lá. estamos assim ...

A página em html está assim:
Code: [Select]

<!DOCTYPE html>
<html ng-app="readArduinoApp" lang="pt-br">
<head>
    <meta charset="utf-8"/>
    <meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">
    <title>Monitoramento de energia elétrica</title>

   <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
   <!--  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> -->
    <!-- <script src="myscripts/obterjson.js"></script> -->
   <!-- <script src="myscripts/grf-ao-vivo.js"></script> -->
    <link href="mycss/energy.css" rel="stylesheet"/>
    <script type="text/javascript">
var readArduinoApp = angular.module('readArduinoApp', []);
readArduinoApp.controller("ReadArduinoController", function ($http, $scope)  {
    $http.get('http://192.168.0.14').then(function (response) {
    $scope.acumuladores = new array;
        $scope.acumuladores = response.data;
console.log("recebido: " + $scope.acumuladores);
})
    .catch(function(response) {
  console.error('Erro ao obter estrutura JSon:', response.status, response.data);
}).finally(function() {
console.log("Json carregado com sucesso");
});
});
</script>
       ...
       ...
       ...
      <article ng-controller="ReadArduinoController">
        <header>
            <h2>Consumo em tempo real</h2>
        </header>
        <p>
        <h3>
        <ul ng-repeat="d in acumuladores">
        <ul>
        <li>         Em: {{d.hoje}} às  {{d.hora}} </li>
          <li>      Ciclo: {{d.ciclo}} - Delay de 10 segundos </li> <br>
        <li>  Acum. Min: {{d.AcumMin}}  {{d.Unit1}} </li>
        <li> Acum. Hora: {{d.AcumHora}} {{d.Unit2}} </li>
        <li>   Acum dia: {{d.AcumDia}} {{d.Unit3}} </li>
        <li>  Acum. Mês: {{d.AcumMes}} {{d.Unit4}} </li>
        <li>  Projetado: {{d.Projetado}} {{d.Unit5}} </li>
        <li>Última Hora: {{d.UltimaHora}} {{d.Unit6}} </li>
        <li> Último Dia: {{d.UltimoDia}} {{d.Unit7}} </li>
        <li> Último Mês: {{d.UltimoMes}} {{d.Unit8}} </li>
        </ul>
        </h3>    
        </p>
    </article>


 
Code: [Select]

No arduíno:
//-----------------
// Bibliotecas
//------------------
#include <SPI.h>
#include <ESP8266WiFi.h>              // https://github.com/esp8266/Arduino
#include <WiFiUdp.h>
#include <Wire.h>
#include <Adafruit_ADS1015.h>         // https://github.com/adafruit/Adafruit_ADS1X15
#include <NTPClient.h>
#include <TimeLib.h>
#include <EEPROM.h>

 //==================================================================
// Prepara informações para atender requisão do Cliente/Servidor
//==================================================================
void MontaJson()
{
       json = "";
       json +=                 "[{";
       json +=                          "\"hoje\": ";
       json +=                                      "\"" + String(day()) + "/" +  String(month())  + "/" +   String(year())   + "\", ";
       json +=                          "\"hora\": ";
       json +=                                      "\"" +  String(hour()) + ":" + String(minute()) +  ":" + String(second()) + "\", ";
       json +=                         "\"ciclo\": ";
       json +=                                      "\"" +  String(timeCicle) + " horas"                                      + "\", ";
       
       calculoConsumo(acMin, 1);
       json +=                       "\"AcumMin\": ";
       json +=                                      qtdeConsumo;
       json +=                                  ", ";
       json +=                         "\"Unit1\": ";
       json +=                                      "\"" + UnitConsumo + "\", ";

       calculoConsumo(acHour, 1);
       json +=                      "\"AcumHora\": ";
       json +=                                      qtdeConsumo;
       json +=                                  ", ";
       json +=                         "\"Unit2\": ";
       json +=                                      "\"" + UnitConsumo + "\", ";

       calculoConsumo(acDay, 1);
       json +=                       "\"AcumDia\": ";
       json +=                                      qtdeConsumo;
       json +=                                  ", ";
       json +=                         "\"Unit3\": ";
       json +=                                      "\"" + UnitConsumo + "\", ";

       calculoConsumo(acMonth, 2);
       json +=                       "\"AcumMes\": ";
       json +=                                      qtdeConsumo;
       json +=                                  ", ";       
       json +=                         "\"Unit4\": ";
       json +=                                      "\"" + UnitConsumo + "\", ";

       calculoConsumo(projKWH, 2);
       json +=                     "\"Projetado\": ";
       json +=                                      qtdeConsumo;
       json +=                                  ", ";
       json +=                         "\"Unit5\": ";
       json +=                                      "\"" + UnitConsumo + "\", ";

       if (hora == 0) hora = 23;
       json +=                    "\"UltimaHora\": ";
       json +=                                      int(recHour[hora-1]);
       json +=                                  ", ";     
       json +=                         "\"Unit6\": ";
       json +=                                      "\" WH (" + String(hora-1) + ") \", ";
     
       json +=                     "\"UltimoDia\": ";
       if (dia == 1) {
          //calculoConsumo(recDay[LDM], 2);
          json +=                                  int(recDay[LDM]);
          json +=                               ", ";         
          json +=                      "\"Unit7\": ";
          json +=                                  "\"KWH (" + String(LDM)  + ") \", ";
       }
       else {
          json +=                                  int(recDay[mes-1]);
          json +=                               ", "; 
          json +=                      "\"Unit7\": ";         
          json +=                                  "\"KWH (" + String(dia-1) + ") \", ";       
       }
       json +=                     "\"UltimoMes\": ";
       json +=                                      recMonth[mes-1];
       json +=                                  ", ",       
       json +=                         "\"Unit8\": ";
       json +=                                      "\"KWH (" + String(mes-1) + ") \"";
       json +=                 "}]";
}

//==============================================
// Envia informações montadas na estrutura Json
//==============================================
void EnviaJson()
  {
        WiFiClient client = server.available();
        if (!client) {
          return;
        }   
        while(!client.available()){
           delay(1);
        }
     
      if (client) { 

          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: application/json");
          client.println("Connection: close");
          client.println("Refresh: 5");
          // this is the CORS header. Yery important. Google CORS.
          client.println("Access-Control-Allow-Origin: *");
          client.println();

          client.print(json);
                    // pequeno delay
          delay(1);
          client.flush();
          // Fechar conexão
          client.stop();
      }   
  }
 


Como já dito antes.
A estrutura abre no browser digitando o IP do dispositivo: https://image.prntscr.com/image/uICrE2_IRFqSBW2faOwr6A.png

Um amigo conseguiu resolver com o PHP, logo o Arduíno não é o problema. Mas o meu desafio é usar o Angular mesmo.

Penso, então, que o assunto foge ao propósito deste fórum.
Volto a postar com os códigos completos quando tiver a solução. 

Nos anexos há imagens retiradas do debug do Browser.
 



Gibbasun

Anexos:
Aqui uma imagem do debug do browser.

Jeff_85

Eu testei com a página que forneci e com o código básico Webserver e rodou. Acho que você está tentando muitas coisas ao mesmo tempo e não compreende que testes são feitos em etapas, às vezes em pequenos passos.

Gibbasun

Sim, os testes são feitos por etapas.
Usei o que me sugeriu, mas não funcionou.
Estou tentando ver onde está o meu erro, pois funcionou com o PHP.

Já já a coisa funciona e volto aqui ... 

Gibbasun

#14
Nov 07, 2017, 10:52 pm Last Edit: Nov 07, 2017, 11:03 pm by Gibbasun
Boas pessoal,

Em fim consegui fazer esse negócio funcionar porém não está bom.
Mesmo depois de velho é bom ouvir quem sabe.
Valeu Jeff, por me lembrar como testar as coisas!!!
Como o grande Jack já fazia e com o conselho do Jeff, fui por partes. Reduzi o escopo e cheguei ao cenário de hoje.

Em anexo os 2 arquivos dos meus testes.
Solução simples, apenas para mostrar a leitura de 2 informações do Arduíno na página: A leitura atual e leitura anterior, manipulados por um contador interno no dispositivo.

Estou usando apenas a biblioteca ESP8266WiFI.h, mas vou ver com a ESP8266WebServer e a WiFiManager.
Usei o dispositivo na conexão USB e também na minha rede Wifi, com os mesmos resultados.

Problemas:
O REFRESH, na estrutura do cabeçalho JSON, não funciona. Fico dando F5 e já estou partindo para o uso de sockets.
O refresh só funciona quando se digita o IP do dispositivo no Broweer. Aí sim, é aberta uma página com o texto referente a estrutura do Json, montada na string de mesmo nome no Arduíno.

O CLIENT.FLUSH, NÂO "Espera até que todos os caracteres de saída no buffer tenham sido enviados", conforme o link .  https://www.arduino.cc/en/Reference/ClientFlush. No caso, se comportou como um comando assíncrono, com as informações na página sendo atualizadas apenas a partir da 3ª iteração do looping.

Usei uma gambiarra no código, para só atualizar a leitura anterior (contadorAnterior no código) quando a string de requisição for alterada.

O CLIENT.STOP, realmente funciona, porém, como o processo do envio das informações não deve ter chegado ao fim, por conta de acreditar no Sr. CLIENT.FLUSH, nada acontece.   Por isso o Client.Stop está comentado no código.

Vou experimentar outras bibliotecas e fuçar mais por aqui para ver se melhoro esse negócio.
Abraços a todos e estou aberto a novas sugestões.

PS.:
Na imagem do link abaixo, poderão observar o problema que estou atribuindo ao CLient.Flush. No no caso, só a última ocorrência vai para a página. E se colocar o Client.Stop, nada acontece.

https://image.prntscr.com/image/x5yq9mfITm_K7KhealsKbw.png

Go Up