Сёха 0 9 августа, 2021 Опубликовано 9 августа, 2021 (изменено) · Жалоба Всем здравствуйте!, пишу web интерфейс для stm32. Стек протоколов у меня готов, всё работет. Страница хранится в памяти ввиде массива. На странице есть кнопка "READ", при её нажатии МК читает регистр и по указателю подменяет днные в массиве, после чего страница выводится на экран. Всё дело в том, что для этого мне приходится каждый раз обновлять страницу, что раздражает мерцанием экрана. Как можно сделать вывод только изменеившихся значений, как переменных?? Изменено 9 августа, 2021 пользователем Сёха Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 9 августа, 2021 Опубликовано 9 августа, 2021 · Жалоба WebSocket ? AJAX ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 2 9 августа, 2021 Опубликовано 9 августа, 2021 (изменено) · Жалоба Вебсокеты для этого жирновато будет. А вот асинхронные запросы - в самый раз. Отдавать клиенту статику: html с жабоскриптом, а уж жабоскрипт пусть каждые N секунд посылает МК запросы на конкретные данные, парсит JSON с ответом и заполняет нужные поля. А вот если вам понадобится не просто смотреть на параметры, а еще и что-то менять, то здесь уже все намного хуже: придется на МК реализовать SSL. В общем, дешевле купить orange pi zero и сделать на нем основную сетевую часть, а на МК уже — RT'шную + то, что не потянет по периферии одноплатник. P.S. Я уж молчу о том, что лично мне вообще неизвестна ни одна вменяемая реализация TCP/IP на микроконтроллеры! Чтобы там не было дикого оверхеда и не нужны были аллокаторы. Изменено 9 августа, 2021 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 9 августа, 2021 Опубликовано 9 августа, 2021 · Жалоба 1 hour ago, Сёха said: Как можно сделать вывод только изменеившихся значений, как переменных?? shtml https://www.ti.com/lit/wp/spmy001/spmy001.pdf?ts=1628482082862&ref_url=https%3A%2F%2Fwww.ti.com%2Fsitesearch%2Fdocs%2Funiversalsearch.tsp%3FlangPref%3Den-US%26searchTerm%3Dweb%2Bserver%26nr%3D5083 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MX_Master 1 9 августа, 2021 Опубликовано 9 августа, 2021 · Жалоба XMLHttpRequest Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сёха 0 9 августа, 2021 Опубликовано 9 августа, 2021 (изменено) · Жалоба adnega, dimka76, MX_Master - спасибо за наводки, но это только слова и они мало что проясняют. Я как не понимал что нужно, так и не понимаю. Может есть примеры реализации?? Задача допилить то, что есть... Например WebSocket моя реализация не умеет. AJAX вроде не плохо, но у меня данные хранятся в flash памяти МК, её нужно на файлы разделить. Можно было бы использовать RAW API, но на сколько я понял она находится в составе lwIP, а у меня свой стек. Про XMLHttpRequest пока ничего не могу сказать не успел... Вообщем я запутался... Изменено 9 августа, 2021 пользователем Сёха Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 9 августа, 2021 Опубликовано 9 августа, 2021 · Жалоба 1 минуту назад, Сёха сказал: Может есть примеры реализации?? Думаю, в Интернете для ПК полно примеров. Я бы с них начал. 1 минуту назад, Сёха сказал: Задача допилить то, что есть... Например WebSocket моя реализация не умеет. Тогда AJAX можно попробовать. Я для МК не пробовал, а для ПК лет 10 назад (когда WebSocket не было) что-то делал. Может, вам какой-нить web-программист нужен для начала. 1 минуту назад, Сёха сказал: AJAX вроде не плохо, но у меня данные хранятся в flash памяти МК, её нужно на файлы разделить. Можно было бы использовать RAW API, но на сколько я понял она находится в составе lwIP, а у меня свой стек. В своем можно все необходимое реализовать - это плюс. Ваша задача использовать то, что браузеры умеют. 1 минуту назад, Сёха сказал: Про XMLHttpRequest пока ничего не могу сказать не успел... Это и есть AJAX если мне не врет память. 1 минуту назад, Сёха сказал: Вообщем я запутался... Вы пишите как бы сервер. Существуют браузеры с поддерживаемым функционалом - это клиенты. Вам нужно использовать те технологии, которые браузерами поддерживаются. Я бы советовал WebSocket, но сам его не применял. Я бы советовал посмотреть как реализовано в TCP2UART. Там и webfs и WebSocket, но для ESP8266. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сёха 0 9 августа, 2021 Опубликовано 9 августа, 2021 · Жалоба 23 минуты назад, adnega сказал: Думаю, в Интернете для ПК полно примеров. Я бы с них начал. Целый день лазил по нету, искал... глухо. Может я не там ищу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 9 августа, 2021 Опубликовано 9 августа, 2021 · Жалоба 51 minutes ago, Сёха said: Целый день лазил по нету, искал... глухо. Может я не там ищу... Вот пример https://habr.com/ru/company/embox/blog/541662/ 2 hours ago, dimka76 said: shtml https://www.ti.com/lit/wp/spmy001/spmy001.pdf?ts=1628482082862&ref_url=https%3A%2F%2Fwww.ti.com%2Fsitesearch%2Fdocs%2Funiversalsearch.tsp%3FlangPref%3Den-US%26searchTerm%3Dweb%2Bserver%26nr%3D5083 У TI также есть пример. Сходу не нашел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 9 августа, 2021 Опубликовано 9 августа, 2021 · Жалоба 1 час назад, Сёха сказал: Целый день лазил по нету, искал... глухо. Может я не там ищу... Вот архив с исходниками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smart_pic 7 9 августа, 2021 Опубликовано 9 августа, 2021 (изменено) · Жалоба 3 hours ago, Eddy_Em said: Отдавать клиенту статику: html с жабоскриптом, а уж жабоскрипт пусть каждые N секунд посылает МК запросы на конкретные данные, парсит JSON с ответом и заполняет нужные поля. P.S. Я уж молчу о том, что лично мне вообще неизвестна ни одна вменяемая реализация TCP/IP на микроконтроллеры! Чтобы там не было дикого оверхеда и не нужны были аллокаторы. По первому пункту полностью согласен. Вывожу индикаторы уровня звука с ДСП процессора. Запросы идут каждые 0.5сек. Обновление другого контента раз в сек. Все летает. Правда у меня ПИК32 Есть линейка серийного оборудования с ПИК32 с достойным веб. Вот веб настроек эвалайзера усилителя с ДСП А там еще других настроек и функционала немерено Изменено 9 августа, 2021 пользователем smart_pic Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 9 августа, 2021 Опубликовано 9 августа, 2021 · Жалоба Вот еще примерчики для простой реализации удаленного управления - Web - сервер на STM32F4Discovery для удаленного управления - Микроконтроллеры STM32 и AVR. Андроид и управление голосом. Беспилотные летательные аппараты.mhtml ethernet-based_io_control.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сёха 0 12 августа, 2021 Опубликовано 12 августа, 2021 (изменено) · Жалоба Всем спасибо за подсказки, удалось сделать на AJAX. Всё работает! Но у меня данных 33 поля. Я их хочу упаковать в массив и вернуть. Данные приходят, но я не могу их распарсить! var xhr; var idTimer; function onload() { xhr = new(XMLHttpRequest); Timer(); } function Timer() { xhr.open("GET", "supply" + Math.random(), true); //Math.random() - защита от кеширования xhr.responseType = "text"; xhr.onload = function (oEvent) { console.log(xhr.response); parser = new DOMParser(); xmlDoc = parser.parseFromString(xhr.response,"text/xml"); document.getElementById('supply').innerHTML = xmlDoc.getElementsByTagName("t1")[0].childNodes[0].nodeValue; } xhr.send(null); idTimer = setTimeout("Timer()", 3000); } Получаю вот такую ошибку в логе... Подскажите, где я ошибаюсь, как распарсить строку? Изменено 12 августа, 2021 пользователем Сёха Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сёха 0 15 августа, 2021 Опубликовано 15 августа, 2021 (изменено) · Жалоба Проблему решил, JSON рулит Изменено 15 августа, 2021 пользователем Сёха Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
reg33 0 1 апреля, 2022 Опубликовано 1 апреля, 2022 · Жалоба 15.08.2021 в 16:23, Сёха сказал: Проблему решил, JSON рулит Добрый день. Пытаюсь вывести на страничку данные с веб сервера. Данные приходят строковым массивом. Как вам удалось распарсить данные чтоб вывести их в разных частях странички? С JS я не работал. За ранее благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться