How to calculate Mbps?

1

I'm getting information from the interface of an internet modem: TXBytes, RXBytes, Uptime It gives me a json entry:

Entrada=([[
    {
    "uptime":"15423",
    "txbytes":"1147089",
    "rxbytes":"23124634"
    }
]])
Tab = json.cod(Entrada)

I already did the calculation with the following excerpt:

TXAnterior,RXAnterior,TLAnterior = 0,0,0       // Definindo um valor inicial
TXAtual = convnumero(Tab.txbytes)              // Converte em números pra calcular
RXAtual = convnumero(Tab.rxbytes)              
TLAtual = convnumero(Tab.uptime)
Segundos = TLAtual - TLAnterior                // Pegando o que foi consumido
MenosTX = TXAtual - TXAnterior
MenosRX = RXAtual - RXAnterior
VezesTX = (MenosTX * 8)                        // Os valores foram dados em bytes
VezesRX = (MenosRX * 8)                        // Convertendo em bits
MediaTX = (VezesTX / (Segundos * 1048576))     // Divide por um milhão "Mega"
MediaRX = (VezesRX / (Segundos * 1048576))

TXAnterior = TXAtual                         // O anterior vai pegar o valor do atual
RXAnterior = RXAtual

Calling ajax:

window.onload = function(){
animaGraficos()
};

var dados = ("EnderecoDoRadio=]]..EnderecoDoRadio..[[");


function ajax(dados, nrTentativas, cb) {
  $.ajax({
    type: "GET",
    url: 'monitor.prisma',
    data: dados,
    dataType: "json",
    success: function(sucesso) {
      // Beleza deu certo!
      cb(null, sucesso);

            },
    error: function(erro) {
      // Tente novamente
      if (nrTentativas > 0) setTimeout(ajax.bind(null, dados, nrTentativas - 1, cb), 500);
      else cb(erro);
    }

  });
}





function animaGraficos() {
    var timers = [];
    var latencia = document.gauges.get('manometro-latencia');
    var sinal = document.gauges.get('manometro-sinal');
    var qualidade = document.gauges.get('manometro-qualidade');
    var envio = document.gauges.get('manometro-envio');
    var recebimento = document.gauges.get('manometro-recebimento');
    var processador = document.gauges.get('manometro-processador');

       setInterval(function() {

ajax(dados, 2, function(err, resposta) {
  if (err) return console.log(err);
  console.log(resposta);
  result=resposta;
            latencia.value = resposta.Ping;
            sinal.value = resposta.Sinal;
            qualidade.value=resposta.Qualidade;
            envio.value=resposta.TXBytes;
            recebimento.value=resposta.RXBytes;
            processador.value=resposta.Processador;
            //alert('oi');  
                if(result.Processador > 80){
                    $('#manometro-processador').addClass(' animated infinite flash');
                }

                if(result.Processador < 80){
                    $('#manometro-processador').removeClass(' animated infinite flash');                    
                }

                if(result.Sinal < -85){
                    $('#manometro-sinal').addClass(' animated infinite flash');
                    //$('#manometro-sinal').attr('data-value-text','Rafael');

                }

                if(result.Sinal > -86){
                    $('#manometro-sinal').removeClass(' animated infinite flash');                  
                }

                                                                                                // se ping não for número
                if(isNaN(result.Ping)){
                    Materialize.toast('<span>Destino inalcançável ou fora do ar</span>', 3000);
                }
                else if(isNaN(result.Sinal)){                                                   // caso ping exista, veja se tem sinal
                    Materialize.toast('<span>Verifique usuário, senha e porta</span>', 3000);
                }

                if(result.ERRO){                                                                // caso haja erros, mostre
                    Materialize.toast('<span>' + result.ERRO + '</span>', 3000);
                }

});     

    },  5000 );

}

This way sometimes works, sometimes not because there is a delay to capture the input and not always the calculation is necessary.

I want to know if someone helps me to improve this code or if I have to calculate it by the javascript itself?

This photo shows how wrong values are when it gives some error:

    
asked by anonymous 11.10.2017 / 05:25

0 answers