Kalyan 0 25 июля, 2012 Опубликовано 25 июля, 2012 · Жалоба Доброго дня. Я использую пример веб сервера с сайта ст, тот что на freertos, на микроконтроллере stm32f207. Я его подредактировал, добавил свои страницы. На одной странице у меня три изображения и вот при обновлении страницы изображения не всегда подгружаются. Например первое и второе загрузится а третье нет. Или второе не загрузится. Вот не могу понять в чем причина. Может кто-то сталкивался с этой проблемой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 25 июля, 2012 Опубликовано 25 июля, 2012 · Жалоба Доброго дня. Я использую пример веб сервера с сайта ст, тот что на freertos, на микроконтроллере stm32f207. Я его подредактировал, добавил свои страницы. На одной странице у меня три изображения и вот при обновлении страницы изображения не всегда подгружаются. Например первое и второе загрузится а третье нет. Или второе не загрузится. Вот не могу понять в чем причина. Может кто-то сталкивался с этой проблемой? На то он пример, посмотрели, а теперь пишите свой. Я смотрел на тот код даже язык не поворачивается называть его веб сервером. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kalyan 0 25 июля, 2012 Опубликовано 25 июля, 2012 · Жалоба На то он пример, посмотрели, а теперь пишите свой. Я смотрел на тот код даже язык не поворачивается называть его веб сервером. Спасибо за совет! Я не знаю как должен быть правильно организован веб сервер на микроконтроллере. Если вы знаете то расскажите или приведите пример. Но мой вопрос не был том плох или хорош пример. Я столкнулся с конкретным багом и прошу помощи у того кто знает как это исправить! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=F8= 0 25 июля, 2012 Опубликовано 25 июля, 2012 · Жалоба Установите MEMP_NUM_NETCONN и MEMP_NUM_NETBUF как минимум больше 4, возможно еще что-то. Браузер если видит на странице несколько ссылок на другие объекты(не только рисунки но и фреймы, css таблици, итд) старается тянуть все это параллельно. Соответственно вы готовы принять все эти соединения, не обязательно передавать все параллельно, но если приходит запрос на соединение его отбрасывать нежелательно. Чтоб разобраться подробнее wareshark в помощь. PS а вебсервер там действительно ниразу не сервер, даже заголовок не генерит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kalyan 0 25 июля, 2012 Опубликовано 25 июля, 2012 · Жалоба Установите MEMP_NUM_NETCONN и MEMP_NUM_NETBUF как минимум больше 4 Огромное спасибо. теперь все работает. Подскажите пожалуйста как должен быть правильно организован веб сервер на микроконтроллере. Ну хоть несколько рекомендаций. И еще такой вопрос. Есть у меня страничка она закодирована в бинарник и выгружается по запросу. а как вот на эту страницу выводить динамически изменяющееся значения, ну например значения с АЦП? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 25 июля, 2012 Опубликовано 25 июля, 2012 · Жалоба Я столкнулся с конкретным багом Ваш баг в том что вы хотите все готовое. 1. Сначала изучите все настройки FreeRTOS чтобы небыло вопросов это максимум день. 2. Изучите все настройки LwIP с API lwip 3. Изучите протокол HTTP теоретически и практически используя Wareshark и HTTPWatch. 4. Напишите свой как вы его видите. P.S. Просто на ваш вопрос нету однозначного ответа, ответов может быть миллион. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=F8= 0 25 июля, 2012 Опубликовано 25 июля, 2012 · Жалоба Огромное спасибо. теперь все работает. Подскажите пожалуйста как должен быть правильно организован веб сервер на микроконтроллере. Ну хоть несколько рекомендаций. Пишите в гуглях "http протокол", читаете, делаете как написано. Материалов на эту тему более чем достаточно. И еще такой вопрос. Есть у меня страничка она закодирована в бинарник и выгружается по запросу. а как вот на эту страницу выводить динамически изменяющееся значения, ну например значения с АЦП? Проще всего используя java script и скрытый фрейм. Скрытый фрейм располагаете, к примеру, на главной странице, в ссылке фрейма пишете к примеру "data.htm". Сам data.htm по запросу формируете динамически и через него передаете все необходимые значения. этот файл имeет примерно такой вид: <html><head></head><body><br> <form id="devsetting" name="devsetting" action="data.htm"><br> <input type="text" name="val1" value="8"><br> <input type="text" name="val2" value="1"><br> ................................................................... </form> </body></html> Затем к событию onload главной страницы привязываете скрипт который читает скрытый фрейм и заполняет поля. В общем с java script прийдется разобраться. PS скрытые фреймы нынче не в моде. Чтоб узнать про другие способы читайте в гуглях про AJAX. PSS кстати страницу data.htm можно сделать автообновляемой для этого в заголовок страницы надо добавить <meta http-equiv="refresh" content="10;URL=cdata.htm"> если после этого к onload фрейма привязать скрипт обновляющий данные то можно следить за вашим АЦП как-бы в реальном времени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 25 июля, 2012 Опубликовано 25 июля, 2012 · Жалоба И еще такой вопрос. Есть у меня страничка она закодирована в бинарник и выгружается по запросу. а как вот на эту страницу выводить динамически изменяющееся значения, ну например значения с АЦП? Я делал через AJAX запросы, весьма удобно и передавать можно все что угодно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewlekar 0 26 июля, 2012 Опубликовано 26 июля, 2012 · Жалоба Во встраиваемых web серверах то, что вы хотите, называется SSI (server-side includes). Если не заморачиваться, то можно прямо в обработчике запросов от клиента внедрять данные, но тогда страничка не должна быть бинарной. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kalyan 0 26 июля, 2012 Опубликовано 26 июля, 2012 · Жалоба Питаюсь прикрутить Аякс. В хеад страницы добавил <script type="text/javascript" src="js/jquery.js"></script> Эту библиотеку закодировал и отдаю по запросу. Далее добавляю скрипт на отправку ГЕТ запроса, но запроса клиент не отправляет: <script type="text/javascript"> $.get("/cgi/", null, function(val) { $("#dinamic_data").html(/*"T="+*/val+"°"); }); </script> А вот код всей страницы <html> <head> <title>test</title> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $.get("/cgi/", null, function(val) { $("#dinamic_data").html(/*"T="+*/val+"°"); }); </script> </head> <body> <h1 align="center">data transmit test</h1> <div id="dinamic_data_test"> <p>Чтение данных</p> <div id="dinamic_data">N/A</div> </div> </body> </html> Наверное ошибка в самом скрипте? Или я пропустил что-то важное? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kalyan 0 26 июля, 2012 Опубликовано 26 июля, 2012 · Жалоба Прошу помощи у знающих людей! По запросу клиента(браузера) я отдаю бинарник хтмл страницы с подключенной библиотекой и скриптами (страница с предыдущего поста) Браузер парсит и как толко доходит до скрипта <script type="text/javascript"> $.get("/cgi/", null, function(val) { $("#dinamic_data").html(/*"T="+*/val+"°"); }); </script> Выдает еще один запрос get /cgi/" Правильно я понял? Я на веб сервере вижу этот запрос и передаю браузеру эти динамические данные. он их принимает и встаивает в тело страницы ( $("#dinamic_data").html(/*"T="+*/val+"°");) Я прав? Люди которые использовали аякс на встроенном веб сервере отзовитесь! Тут еще один вопрос в каком формате я должен ответить на запрос? Например мне в поле надо вывести число(измерения ацп), то я наверное должен передать это число как строчку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 26 июля, 2012 Опубликовано 26 июля, 2012 · Жалоба Что, прямо весь jquery.js засунули в свою прошивку? Я вместо этого маленький скриптик наваял: window.onload = refInit; var refXmlHttp; function refInit() { if (refXmlHttp) { refXmlHttp.abort(); } if (window.XMLHttpRequest) { try { refXmlHttp = new XMLHttpRequest(); } catch (e) {} } else if (window.ActiveXObject) { try { refXmlHttp = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { refXmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) {} } } if (refXmlHttp) { var timeout = 1000 * document.getElementById("refrate").firstChild.nodeValue; refXmlHttp.onreadystatechange = refOnLoad; if (timeout != 0) { setTimeout("refSendRequest()", timeout); } } } function refSendRequest() { refXmlHttp.open("GET", "/mondata.xml", true); refXmlHttp.send(null); } function refOnLoad() { if (refXmlHttp.readyState == 4) // 4 = "loaded" { if (refXmlHttp.status == 200) // 200 = OK { refIterateAll(); } refInit(); } } function refIterateAll() { var nodes = refXmlHttp.responseXML.documentElement.childNodes; for (var i = 0; i < nodes.length; i++) { for (var item = nodes.item(i).firstChild; item; item = item.nextSibling) { if (item.parentNode.nodeName == "values") { var target = document.getElementById(item.nodeName); if (target) { target.firstChild.nodeValue = item.firstChild.nodeValue; } } } } } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kalyan 0 27 июля, 2012 Опубликовано 27 июля, 2012 · Жалоба Вот такая вот проблема: function test() { alert('send request'); window.setTimeout(test, 3000); } $(document).ready(function() { test(); }); Вот этот скрип подгружаемый с мк не работает я его немного переделал function test() { alert('send request'); window.setTimeout(test, 3000); } test(); Вот так работает. Значит проблема в функции $(document).ready. То есть моя страничка никогда не устанавливается ready. Я так понял. также пробовал использовать функцию $(document).load - но тоже это событие не наступает. Также пробовал отправить простой запрос серверу $.get("/get_data"); ничего не отправляется. Наверное я со свого сервера не передаю какое то подтверждение, из за чего может наступить событие ready или load. Подскажите пожалуйста Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=F8= 0 28 июля, 2012 Опубликовано 28 июля, 2012 · Жалоба 2Kalyan По ссылке рабочий пример опроса через ajax без jquery. ajaxtst.rar В ответ за запрос сервер должен передать в теле 2 hex значения разделенные запятой. В примере используются get запросы, потом лучше перйти на post. Недавно наткнулся на грабли в explorer-е - он скешировал запрос в результате получилось что скрипт вроде работает, но реального опроса нет. Возможно просто в заголовке ответа что-то не так. В любом случае post запросы не кешируюся по определению. PS отлаживать скрипты alert-ами как-бы не совсем удобно. В chome настройка->инструменты->Консоль JavaScript и отлаживаете как положено с брекпоинтами, просмотром переменных итд. В firefox ставите плагин Firebug. В explorer сервис->средства разрабочика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kalyan 0 6 августа, 2012 Опубликовано 6 августа, 2012 · Жалоба В процесседальнейшего использования стека возникла еще одна проблема. Стрнички которые содержат графику очень долго грузятся. То есть я вижу полностью подгружается страничка а поом последовательно начинают грузится изображения. Может надо в настройувх стека увеличить память для какого то буфера ли еще что то в этом роде. Подскажите пожалуйста Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться