• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

EspLua вместо NodeMCU

pvvx

Активный участник сообщества
Я рад что Вы это поняли. я это понял давно поэтому и пытался Вам объяснить что Вы ничего не исправили и как писало до середины так и осталось а дальше и у Вас и у китайцев ищем свободное в этих записанных
У Вас и у вариант мой у китайцев система лезет выше и пишет с каждым разом все медленнее и медленнее.
Неа. У меня не лезет выше, а копается в старых, уже записанных секторах. И того, что описываете нет - как только записаны все сектора, то происходит переключение скорости с 50 кило в сек на 900 байт в сек.
Я понимаю, что Вам советовать что писать против ветра.
Но все же не надо стараться выглядеть умнее чем есть.
Как я понял Вы по программированию институтов не кончали (самооучка) Вот и пытаетесь самоутверждаться обливая всех дерьмом
Но я не обижаюсь на обиженных жизнью.
У вас точно какие-то проблемы :) Уже выдумывать и врать начали.
Вам про spiffs всё описывал уже давно, полистайте форум. Вы же кричали что в NodeMCU у вас всё работает :) :) До сих пор не врубились, что в NodeMCU вообще не пишется "вторая часть", а возникает "Fatal exception (9)" или WDT (в ситуациях когда диск маленький)... оно росло там с самого его начала...
А это означает, что NodeMCU никто не пользуется :p
ЗЫ: с вами весело, но прогнозируемо - какую следующую феню выкините?
Могу подсказаку дать: "Научить невозможно. Можно только научиться".
 
Последнее редактирование:
nikolz,
Начал писать на Lua всего месяц назад,
удобно, - стартап с наворотами за 15-30 минут.
Работаете по специальности - это радует,
помогите, как изящно в этом Lua, разом, структуру/таблицу в файл загонять и потом доставать.
Может есть какие хитрости языка.;)
Спасибо.


http://esp8266.ru/forum/members/nikolz.241/
 

pvvx

Активный участник сообщества
Только пока с FS грустно.:(
Но с текущими исправлениями она работает, только очень медленно, т.к. не рассчитана на размеры диска более 100 кило. См. описание автора https://github.com/pellepl/spiffs:
"* ОСОБЕННОСТИ:
Spiffs предназначена для небольших устройств c малыми размерами SPI flash. Выход за рамки ~ 128 к, вероятно, плохая идея. Это
побочный эффект дизайна c целью использования малой оперативной памяти, как это возможно."

Но и не сказать, что у spiffs малое использование памяти. Она использует RAM (heap + bss) к 4 килобайтам. Это много. Мои расчеты для специализированной FS для ESP8266 говорят, что при 4 кило буферов помещаемых в IRAM вместо затрат в 'heap' запросто поддерживается журналируемая файловая система с диском от десятка кило до 16 Мегабайт, примерно на тысячу файлов и скоростью доступа в худшем случае с двухкратным понижением от максимальной физически скорости записи flash (запись более 100 килобайт в секунду). Ну и безусловно с меньшим размером кода, раза в четыре...
Но это возможно только в коммерческом проекте. Т.е. если его напишу, то буду использовать в закрытом ПО для своих пром.установок и опубликовать не смогу.
 
Последнее редактирование:
Вопрос.
Использую код:
Код:
-- a udp client
cu=net.createConnection(net.UDP)
cu:connect(1001,"192.168.0.109")
cu:send("Привет")
Отсылаю "Привет" на сервер Удаленный Port= 1001, Удаленный Ip=192.168.0.109
все работает, "Привет" приходит на сервер
с модуля ESP ip=192.168.0.100 порт=20895(каждый раз новый)
Вопрос,
как в этом LUA принудительно задать локальный порт (с которого отсылаю) для ESP udp client, а то каждое соединение новый порт.
Нужно зафиксировать порт.
Спасибо.
 

pvvx

Активный участник сообщества
Вопрос.
Использую код:
Код:
-- a udp client
cu=net.createConnection(net.UDP)
cu:connect(1001,"192.168.0.109")
cu:send("Привет")
Отсылаю "Привет" на сервер Удаленный Port= 1001, Удаленный Ip=192.168.0.109
все работает, "Привет" приходит на сервер
с модуля ESP ip=192.168.0.100 порт=20895(каждый раз новый)
Вопрос,
как в этом LUA принудительно задать локальный порт (с которого отсылаю) для ESP udp client, а то каждое соединение новый порт.
Нужно зафиксировать порт.
Спасибо.
Никак. Порт выбирается системой и каждый раз новый. Так положено по стандартам...
Но можно сделать всё :)
 

jcmvbkbc

New member
Порт выбирается системой и каждый раз новый. Так положено по стандартам...
Офигеть, можно огласить номер стандарта?
Код:
A user interface should allow
...
  an operation  that allows  a datagram  to be sent,  specifying the
  data, source and destination ports and addresses to be sent.
 

pvvx

Активный участник сообщества
Офигеть, можно огласить номер стандарта?
Код:
A user interface should allow
...
  an operation  that allows  a datagram  to be sent,  specifying the
  data, source and destination ports and addresses to be sent.
в espconn и в NodeMCU свой стандарт :p
Какого фигу rfc, если в китай-SDK он неприменим ко многому.
Тем более разговор не о сервере, а об ответе или запросу у внешнего фиксированного порта с любого другого порта. Зачем нужен запрос к серверному порту с фиксированным номером запрашивающего порта? В rfc768 это не указано.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Сам себе ответил:)
udp.h
Код:
struct udp_pcb *next;

  u8_t flags;
  /** ports are in host byte order */
  u16_t local_port, remote_port;
как достучаться из Lua ?
Никак. Там espconn со своими китай-причудами :) Надо переписывать app\modules\net.c и внедрять команду установки спец. параметра порта для ответов. Только это никому и никогда не требуется.
 

pvvx

Активный участник сообщества
Ссылаешься на стандарт -- будь добр указать, на какой, если не п****бол.
Дык с кем говорить? Вы уже сотню раз п***болили.
Всё ему найди и в рот положи, да ещё в виде как он привык.
Платите - опишу.
 

jcmvbkbc

New member
1000 рупь строчка, так как писать для того, кто ошибается в каждом сообщении очень сложно.
О, да, я понимаю, что тебе сложно это делать. И, да, действительно, в последнее время ты ошибаешься всё чаще. Пожалуй оно того не стоит.
 

pvvx

Активный участник сообщества
О, да, я понимаю, что тебе сложно это делать. И, да, действительно, в последнее время ты ошибаешься всё чаще. Пожалуй оно того не стоит.
И где же ошибка? Ваша - налицо - указание не того стандарта и не вникание в вопрос. :p
 
Зачем нужен запрос к серверному порту с фиксированным номером запрашивающего порта?
Что бы закрепить порт за клиентом и не менять его при каждом соединении.
Что бы сервер мог самостоятельно обращаться к нужному клиенту сразу.
Соединение может обновиться, и сервер не будет знать порт клиента до его первой активности.
Может показаться система очень жесткая, но опыт показал что так надежнее.
 

pvvx

Активный участник сообщества
Что бы закрепить порт за клиентом и не менять его при каждом соединении.
Что бы сервер мог самостоятельно обращаться к нужному клиенту сразу.
Чтобы сервер мог обращаться к нужному клиенту, то там должен быть не клиент, а cервер :)
Соединение может обновиться, и сервер не будет знать порт клиента до его первой активности.
Может показаться система очень жесткая, но опыт показал что так надежнее.
Порт назначается тут https://github.com/pvvx/EspLua/blob/master/app/modules/net.c#L728
espconn_port() дает случайный номер порта в зависимости от времени из system_get_time().
 
Сверху Снизу