Передача данных на веб страницу
- Войдите на сайт для отправки комментариев
Чт, 10/03/2022 - 12:02
Привожу код в сокращенном виде, для общего понимания проблемы. Передача показаний датчика температуры на веб страницу.
При выводе показаний одного датчика, всё норм.
// Задаем интервал между показаниями датчиков 5 сек. unsigned long previousMillis = 0; const long interval = 5000; void loop() { // Считываем с датчика показания температуры каждые 5 секунд. unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { ws.textAll(String(temperture)); // отправляем показания датчика } }
JS
function onMessage(event) { document.getElementById("dateTime").innerHTML = event.data; }
HTML
<span id="dateTime"></span>
Но как быть, если мне нужны показания сразу двух датчиков? Если сделать так, то...
ws.textAll(String(temperture)); // отправляем показания датчика 1 ws.textAll(String(temperture2)); // отправляем показания датчика 2
В event.data приедут данные сразу с двух датчиков. Как их различать?
Привожу код в сокращенном виде для общего понимания проблемы.
Для общего понимания проблемы приводите ПОЛНЫЙ код, который можно скомпилировать и запустить. Короткий, без всего лишнего, но показывающий проблему и ПОЛНЫЙ.
По Вашим огрызкам ничего понять нельзя. Например, что за хрень такая "ws" - как описана о=и откуда взялась.
Только не надо отвечать на вопрос из последней фразы - просто приведите как можно более короткий, но полный код и ссылки на все используемые библиотеки.
Например, как-то так:
А в JS:
Не уверен в правильности синтаксиса, сама суть понятна? Пробуй.
Например, как-то так:
А в JS:
Не уверен в правильности синтаксиса, сама суть понятна? Пробуй.
Спасибо Бум! Суть понятна, дальше сам.
Еще в коде МК потерял такое:
Иначе будет "ой" ))
Понятное дело. Это что бы без delay обойтись.
Например, как-то так:
А в JS:
Не уверен в правильности синтаксиса, сама суть понятна? Пробуй.
Отравка одной строкой хороша если (temperture) и (temperture2) находятся в одной области видимости. А если они в разных блоках?
Можно ли например для каждого значения добавить количество знаков этого самого значения?
Если да, то как в js их распознать?
Можно. Все тоже самое. Меняется так: Сначала собирай результирующую строку в отдельную переменную и не забывай разделительные символы вставлять, как только строку собрал - отправляй ее на сервер.
Js все как и выше - разбиваешь сплитом на массив и используешь.
Второй вариант: Отправлять связку «ключ-значение». Сейчас набросаю код.
Можно совместить (строка будет тогда вида "tem1=23&tem2=24&tem3=0"тогда сначала разбиваешь строку на связку ключ-значение через сплит '&', а потом сплитом '=' окончательно). Тут уж на что фантазии хватит.
Вот это не понял зачем, но делается по аналогии описанными выше способами.
От души Бум! Пришлось чуток подправить.
Функция trim() тут не обязательна, я даже не знаю есть ли она в яваскрипте (я ее в php только использовал). А то, что ты написал - лишнее присвоение, лучше оставь просто switch (arrayS[0]) {
Бум, я опять туплю. Необходимо срастить два куска. Вот кусок старого кода, отправляющий состояние кнопок.
code
JavaScript
Сращиваем с новым куском кода, отправляющий показания температуры.
code
JavaScript
В итоге не сработало. В чем накосячил?
code
https://developer.mozilla.org/en-US/docs/Web/API/console/log
Бум, я опять туплю.
Я же выше в этой теме писал - сначала собирай строку, потом отправляй ее целиком.
Как в JS эту строку разобрать выше обсуждалось, сам сможешь?
Можно совместить (строка будет тогда вида "tem1=23&tem2=24&tem3=0"тогда сначала разбиваешь строку на связку ключ-значение через сплит '&', а потом сплитом '=' окончательно). Тут уж на что фантазии хватит.
Отравка одной строкой хороша если (temperture) и (temperture2) находятся в одной области видимости. А если они в разных блоках?
Из за того что отправка идет из разных блоков, в результирующую строку собирать нет смысла. Правильная отправка полагаю так?
Далее разбираем в джаве
Нет, конечно. А разделители где? Как Вы намерены потом значения от названия следующего параметра отделять?
Далее разбираем в джаве
А Java то здесь откуда взялась?
См. выше насчёт слипшихся значений и названий параметров.
Нет, конечно. А разделители где? Как Вы намерены потом значения от названия следующего параметра отделять?
Евгений Петрович, тут я с Вами не соглашусь. Работа Web отличается от работы МК. Поэтому все там будет "нормуль": в один момент времени идет отправка только одной связки "ключ=значение", которая в JavaScript легко "разворачивается". И в следующий момент времени будет отправка уже другой связки "ключ=значение", поэтому нечему там "слипаться" )))