[英]How can I retrieve plane text data from one local ip to another in javascript?
我使用ESP32 Wifi模塊作為主機來托管一個網頁,該網頁將表中多個二進制數據點的值顯示為OK
或FAILED
。 我需要讓該設備從本地IP上的另一個ESP32客戶端檢索數據,即192.168.138.50/readVal1
此地址將僅顯示OK
文本或OK
或FAILED
。 我想將此值顯示在我的主模塊生成的表中。 我應該怎么做呢?
我已經嘗試在Arduino代碼中使用HTTP get請求,如下所示。
void runTest6(){
String payload;
HTTPClient http;
http.begin("192.168.137.50/readBatt1");
int httpCode = http.GET();
if(httpCode > 0) {
payload = http.getString();
Serial.println(payload);
}else{
Serial.println("HTTP request error");
}
http.end();
String batt6val = payload;
server.send(200, "text/plane", batt6val);
}
這是我的Javascript,用於處理更新\\
function getData(){
try{
console.log("Getting Data...");
for(var i = 1;i<=NUMOFUNITS;i++){
(function (i){
setTimeout(function () {
console.log("(debug msg)in loop #: " + i)
var xhttp = new XMLHttpRequest();
var current = "batt" + i + "val";
var dataRead = "readBatt" + i;
xhttp.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200){
console.log("updating innerHTML for data value: " + i);
document.getElementById(current).innerHTML = this.responseText;
}else if(this.readyState == 4 && this.status == 404){
console.log("no battery @ " + i);
document.getElementById(current).innerHTML = "None found";
}
};
xhttp.open("GET", dataRead, true);
xhttp.send();
if(i == 1){
updateTime();
console.log("Updated times.")
}
}, 400*i);
})(i);
};
console.log("Data update complete.");
}
catch(err){
alert(err.name);
throw err;
getData(); //try to get data again
}
finally{
console.log("DONE");
}
}
使用和HTTP服務器,我能夠在ESP32之間發送信息。 使用WebServer,我已設置server.on(“ / status / {}”,sendData); 其中{}包含pathArg,也就是代表要查詢哪些數據的數字。 函數senData()采用pathArg並按以下方式發送適當的數據。
void sendData(){
String battString = server.pathArg(0);
Serial.println("Sending Data... PathArg= " + battString);
int battNum = battString.toInt();
int arrayNum = battNum - 1;
server.send(200, "text/plane", battStatus[arrayNum]);
}
在這里,一個名為battStatus的數組保存了每個數組的狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.