Здраствуйте . Никак не получается запустить ajax . Помогите пожалуйста советом .
используется связка STM32(главный контроллер) и esp 8266 на AT командах
STM32 формирует страницу и передает в esp 8266
HTTP/1.0 200 OK
Server: ESP8266
Content-Type: text/html
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8\">
<title>STM32 SNF</title>
</head>
<body>
<h1> ПРОБА 1 </h1>
<h3> AJAX</h3>
счет:<span id="adc_val33">100</span>
<SCRIPT>
setInterval(function()
{
getData(); // интервальный запрос данных
},5000);
function getData()
{
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function()
{
if (this.readyState == 4 && this.status == 200)
{
document.getElementById ('adc_val33').value=this.responseText;
}
};
xhttp.open('GET', 'adc_value',true); // браузер запросил данные
xhttp.send();
}
</SCRIPT>
</body>\
</html>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
при поступлении запроса adc_value
stm32 отвечает
if(check_answer("adc_value ",1)==1) // ждем запроса данных
{
adrr=strstr(usartRxBuf,"+IPD,"); // вычисляю в запросе номер канала от 0 до 4 (ограничение до 5 )
adrr=adrr+5;
p1=*adrr;
clear_rx_buf(); // очистим входной буфер
adc_value=10; // значение ацп збил вручную .
adc_value_len = strlen(adc_Value); // длинна сообщения
sprintf(adc_Value,"%d%c",adc_value,'\0'); // формируем строку на передачу
sprintf(sendbuf,"%s%c%c%d%s","AT+CIPSEND=",p1,',',2,"\r\n");// говорим esp что хотим ответить
usart1_send_string(sendbuf); // передаем это в есп
if(check_answer(">",100)==1) // ждем приглашения
{
usart1_send_string(adc_Value); // шлем данные ацп
if(check_answer("SEND OK",500)==1) // есп приняла данные - закрываем канал .
{
if (p1=='0') USART_SendStr(close_Connection);
if (p1=='1') USART_SendStr(close_Connection_1);
if (p1=='2') USART_SendStr(close_Connection_2);
if (p1=='3') USART_SendStr(close_Connection_3);
if (p1=='4') USART_SendStr(close_Connection_4);
}
}
проблема в том что данные не меняются . Я при инициализации отправил 100 . а передаю 10.
Лог самого общения в терминале
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+IPD,0,278:GET /adc_value HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Accept: */*
Referer: http://192.168.4.1/
Accept-Encoding: gzip, deflate
Accept-Language: ru
AT+CIPSEND=0,2
OK
>
Recv 2 bytes
SEND OK
AT+CIPCLOSE=0
0,CLOSED
OK
//////////////////////////////////////////
используется связка STM32(главный контроллер) и esp 8266 на AT командах
STM32 формирует страницу и передает в esp 8266
HTTP/1.0 200 OK
Server: ESP8266
Content-Type: text/html
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8\">
<title>STM32 SNF</title>
</head>
<body>
<h1> ПРОБА 1 </h1>
<h3> AJAX</h3>
счет:<span id="adc_val33">100</span>
<SCRIPT>
setInterval(function()
{
getData(); // интервальный запрос данных
},5000);
function getData()
{
var xhttp=new XMLHttpRequest();
xhttp.onreadystatechange=function()
{
if (this.readyState == 4 && this.status == 200)
{
document.getElementById ('adc_val33').value=this.responseText;
}
};
xhttp.open('GET', 'adc_value',true); // браузер запросил данные
xhttp.send();
}
</SCRIPT>
</body>\
</html>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
при поступлении запроса adc_value
stm32 отвечает
if(check_answer("adc_value ",1)==1) // ждем запроса данных
{
adrr=strstr(usartRxBuf,"+IPD,"); // вычисляю в запросе номер канала от 0 до 4 (ограничение до 5 )
adrr=adrr+5;
p1=*adrr;
clear_rx_buf(); // очистим входной буфер
adc_value=10; // значение ацп збил вручную .
adc_value_len = strlen(adc_Value); // длинна сообщения
sprintf(adc_Value,"%d%c",adc_value,'\0'); // формируем строку на передачу
sprintf(sendbuf,"%s%c%c%d%s","AT+CIPSEND=",p1,',',2,"\r\n");// говорим esp что хотим ответить
usart1_send_string(sendbuf); // передаем это в есп
if(check_answer(">",100)==1) // ждем приглашения
{
usart1_send_string(adc_Value); // шлем данные ацп
if(check_answer("SEND OK",500)==1) // есп приняла данные - закрываем канал .
{
if (p1=='0') USART_SendStr(close_Connection);
if (p1=='1') USART_SendStr(close_Connection_1);
if (p1=='2') USART_SendStr(close_Connection_2);
if (p1=='3') USART_SendStr(close_Connection_3);
if (p1=='4') USART_SendStr(close_Connection_4);
}
}
проблема в том что данные не меняются . Я при инициализации отправил 100 . а передаю 10.
Лог самого общения в терминале
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+IPD,0,278:GET /adc_value HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Accept: */*
Referer: http://192.168.4.1/
Accept-Encoding: gzip, deflate
Accept-Language: ru
AT+CIPSEND=0,2
OK
>
Recv 2 bytes
SEND OK
AT+CIPCLOSE=0
0,CLOSED
OK
//////////////////////////////////////////