11543 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,
Je programme un esp32s3 , et pour visualiser l'état des variables je l'utilise aussi comme serveur .
Pour alléger le travail de l'esp, je souhaite mettre en place des tables d'échanges .
Coté ESP je décompose mes variables type float en 4 octets que je charge dans une table

void handleBinaryData(AsyncWebServerRequest *request)   {
  dataSize = sizeof(tm1);
  AsyncWebServerResponse *response = request->beginResponse(200, "application/octet-stream",tm1, dataSize);
  request->send(response);
  }
  server.on("/lireTm1", HTTP_GET, handleBinaryData); 

je reçois bien la table ,mais je n'arrive pas à "extraire" les octets:
setInterval(function getData()	{
        let xhttp = new XMLHttpRequest();
        let tablerec = new ArrayBuffer(250);               // données generiques pour representer un tampon de connées
        let int8View = new Uint8Array(tablerec);           // // Vue du buffer comme un tableau d'entiers non signés de 8 bits (chaque élément occupe 1 octet)
        let bufferenvoi=new ArrayBuffer(4);             // création d'un tableau de 4 octets
        let val1;

        xhttp.onreadystatechange = function() { if(this.readyState == 4 && this.status == 200) {
            tablerec=this.responseText;
            document.getElementById("valeurTm1").innerHTML = tablerec;

            bufferenvoi[0]=int8View[0];     //bufferenvoi[0]=0x0;
            bufferenvoi[1]=int8View[1];     //bufferenvoi[1]=0x0;
            bufferenvoi[2]=int8View[2];     //bufferenvoi[2]=0xB0;
            bufferenvoi[3]=int8View[3];     //bufferenvoi[3]=0X40;
     
            val1=Conv_Octet4Float32(bufferenvoi);
            document.getElementById("valeurBat1").innerHTML=val1;
        }};xhttp.open("GET", "lireTm1", true);
        xhttp.send();
        }, 2000);

Les 4 octets sont à 0 alors que le troisième octet doit être égal à 0xB0 et le quatrième octet doit être égal à 0X40