Почитаю. Но уточню, nodeMCU на данный момент у меня точка доступа (позже в планах добавить настройку на подключение к произвольному wifi роутеру), сейчас должно работать без роутера. Веб сервера на nodeMCU не будет, будет управляться POST запросами. Ну это как я вижу, ещё разбираюсь.
если к произвольному в пределах доступных пользуй вифимульти, проверено, работает с полтычка
Помогите пожалуйста разобраться, что здесь имеется ввиду
const bool retVal = bufPtr > 0; // запоминаем, была ли у нас строка
код из этой темы:
#define BUF_LEN 200 // Длина буфера
char buffer [BUF_LEN];
bool receiveCharacter(void) {
static int bufPtr = 0; // Указатель следующего свобоного байта в приёмном буфере
if (! Serial.available()) return false; // Если ничего не пришло, выходим сразу (строка не готова)
const char c = Serial.read(); // Читаем символ
if (c == '\n' || c == '\r') { // Если прочитанный символ - конец строки, то
const bool retVal = bufPtr > 0; // запоминаем, была ли у нас строка
buffer[bufPtr] = 0; // пишем в буфер признак конца
bufPtr = 0; // В следующий раз начнём с начала
return retVal; // Строка сформирована
}
buffer[bufPtr++] = c; // запоминаем вновь полученный символ
if (bufPtr == BUF_LEN) {/* что-то делаем */} // Реакция на переполнение буфера (пока никакой)
return false; // строка не готова
}
void setup(void) {
Serial.begin(57600);
}
//
// Здесь мы обязательно дергаем receiveCharacter
// он получит символ (если пришёл) и вернёт истину
// если строка полностью пришла. Пока он не вернул
// истину не паримся. а занимаемся своими делами
//
void loop(void) {
if (receiveCharacter()) Serial.println(buffer);
// ...
// что-то нужное и важное
}
retVal это константа или переменная? и что ей присваивается? bufPtr - это переменная типа int. Она сравнивается с нулем? Иными словами, если bufPtr > 0 то есть bufPtr больше нуля, то присвоить значение TRUE, а если нет - FALSE? Верно?
Сначала выполняется сравнение, а потом - присвоение значения? А почему там const bool, а не bool?
const bool retVal = bufPtr > 0; // запоминаем, была ли у нас строка
То, что написано, тут нет никаких подвохов и "двойного дна".
junior_developer пишет:
retVal это константа или переменная?
Слово "const" Вам ничего не говорит? Скажем так, это величина, которую, раз присвоив, нельзя изменять. Часто её называют константой, но у теоретиков идут холивары на эту тему.
junior_developer пишет:
что ей присваивается?
Ну, дык ...
junior_developer пишет:
если bufPtr > 0 то есть bufPtr больше нуля, то присвоить значение TRUE, а если нет - FALSE?
junior_developer пишет:
Сначала выполняется сравнение, а потом - присвоение значения?
Ну а причем тут клиент тогда? (особо в код не вчитывался)
http://www.joyta.ru/12628-sozdanie-prostogo-veb-servera-nodemcu-esp8266-v-arduino-ide/
Читай.
Почитаю. Но уточню, nodeMCU на данный момент у меня точка доступа (позже в планах добавить настройку на подключение к произвольному wifi роутеру), сейчас должно работать без роутера. Веб сервера на nodeMCU не будет, будет управляться POST запросами. Ну это как я вижу, ещё разбираюсь.
если к произвольному в пределах доступных пользуй вифимульти, проверено, работает с полтычка
если к произвольному в пределах доступных пользуй вифимульти, проверено, работает с полтычка
У меня пока только идея, логика такая:
1. если nodeMCU не нашла "знакомого" роутера, то запускается как точка доступа.
2. Подключаемся к ней как к точке доступа, POST запросом пишем в EEPROM sid и password "местной" сети. Передёргиваем питание.
3. подключаемся уже через "местную" сеть.
если к произвольному в пределах доступных пользуй вифимульти, проверено, работает с полтычка
У меня пока только идея, логика такая:
1. если nodeMCU не нашла "знакомого" роутера, то запускается как точка доступа.
2. Подключаемся к ней как к точке доступа, POST запросом пишем в EEPROM sid и password "местной" сети. Передёргиваем питание.
3. подключаемся уже через "местную" сеть.
там памяти много можно добрых два-три десятка знакомых сетей забить
Помогите пожалуйста разобраться, что здесь имеется ввиду
код из этой темы:
retVal это константа или переменная? и что ей присваивается? bufPtr - это переменная типа int. Она сравнивается с нулем? Иными словами, если bufPtr > 0 то есть bufPtr больше нуля, то присвоить значение TRUE, а если нет - FALSE? Верно?
Сначала выполняется сравнение, а потом - присвоение значения? А почему там const bool, а не bool?
То, что написано, тут нет никаких подвохов и "двойного дна".
Слово "const" Вам ничего не говорит? Скажем так, это величина, которую, раз присвоив, нельзя изменять. Часто её называют константой, но у теоретиков идут холивары на эту тему.
Ну, дык ...
Видимо, так. Сверьтесь с таблицей приоритетов операций на всякий случай.
Потому, что эту величину не планируется изменять.
Вот что у меня получилось с парсингом GET запроса.
Имена параметров передаются только строчными латински буквами не более nameSTR - 1, принимаемое значение параметров от 0 до 255.
Обновил.
Уважаю желание потренироваться, но намекаю, что класс WebServer для ESP уже имеет механизм парсинга GET/POST в аргументы.
Уважаю желание потренироваться, но намекаю, что класс WebServer для ESP уже имеет механизм парсинга GET/POST в аргументы.
В Гугле чёт не нашёл или не так искал.
В библиотеке ESP8266WebServer нашёл Parsing-impl.h, но не совсем понял что там.
Можно ещё подсказку?
Можно. WebServer -> Examples -> AdvancedWebServer