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
je reçois bien la table ,mais je n'arrive pas à "extraire" les octets:
Les 4 octets sont à 0 alors que le troisième octet doit être égal à 0xB0 et le quatrième octet doit être égal à 0X40
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