Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Вопрос Запуск скрипта lua с html-стриницы

Тема в разделе "Домашние IoT серверы", создана пользователем Crazy_Volt, 13 фев 2018.

  1. Crazy_Volt

    Crazy_Volt Новичок

    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте, уважаемые форумчане. Работаю с модулем ESP-12-E. Пишу скрипты на LUA и заливаю через ESPlorer. Совсем не профи в данной области, только учусь. На espшке запущен сервер и в браузере открывается html-страница. Пользуюсь примерами с данного сайта: Как сделать Web-интерфейс для ESP8266 под NodeMCU | Avislab. Возникла необходимость по нажатию кнопки на html-форме запускать скрипт на espшке, который по UART будет отправлять данные(символ,слово,цифра не важно). Возможно ли реализовать данную задачу?
     
  2. kab

    kab Авторитетный участник сообщества

    Сообщения:
    633
    Симпатии:
    78
    Скорее всего - возможно. Но я хочу задать встречный вопрос - а почему Вы остановились на LUA?

    Всё-таки Ардуино ИДЕ обладает существенными преимуществами - с разных сторон. И основные - простота освоения и множество примеров, включенных в систему изначально... Да и могущих подсказать по ардуино на этом сайте существенно больше, чем по луа.
     
  3. igorlll

    igorlll Новичок

    Сообщения:
    10
    Симпатии:
    1
    Не хотелось бы разводить холивар, но ваш тезис верен ровно до того момента, когда надо писать асинхронный код.

    И наоборот, пока идет развлекуха с блинканьем/пиканьем - Lua ацки неудобен.
     
  4. Crazy_Volt

    Crazy_Volt Новичок

    Сообщения:
    3
    Симпатии:
    0
    В моих наработках уже есть часть кода, написанная на луа. Остались лишь мелочи, в которых мне не смог помочь гугл и другие форумы :) Так как этот форум специализируется на espшках, то создалось впечатление, что есть на просторах данного форума люди, которые знают ответ на вопрос или направят в нужном русле. Буду благодарен любой информации по данному вопросу :)
     
  5. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.564
    Симпатии:
    178
    Все написано до нас.
    Build software better, together
     
  6. Crazy_Volt

    Crazy_Volt Новичок

    Сообщения:
    3
    Симпатии:
    0
    Спасибо за наводку :)
     
  7. kab

    kab Авторитетный участник сообщества

    Сообщения:
    633
    Симпатии:
    78
    LUA дает возможность "писать асинхронный код"???!!!:eek:
    Вы имели в виду - обеспечивается реальная многопоточность?! Или это про что-то другое?
     
  8. igorlll

    igorlll Новичок

    Сообщения:
    10
    Симпатии:
    1
    JavaScript знаете? Вот это ПРИБЛИЗИТЕЛЬНО то же самое.
     
  9. kab

    kab Авторитетный участник сообщества

    Сообщения:
    633
    Симпатии:
    78
    Не принимайте на свой счет - просто по ассоциации мелькнула мысль:
    - Некоторое время назад в интернете попалась юмористическая статья. Ссылка и точное название мной утрачены (жалко, конечно). А примерный смысл такой - язык программирования, который Вы используете- отстой. Там перечислены многие из существующих языков программирования - и в остроумной форме приведены недостатки каждого языка. Причем, несмотря на общий юмористический стиль - мне показалось, что технической точки зрения содержание статьи довольно серьезно. И в качестве обзора и сопоставления языков эта статья достаточно полезна - и свидетельствует о глубокой эрудиции автора.
     
    Последнее редактирование: 18 фев 2018
  10. kab

    kab Авторитетный участник сообщества

    Сообщения:
    633
    Симпатии:
    78
    А что касается моего вопроса к Вам, то я просто споткнулся на термине "асинхронный" - и меня заинтересовало, какой смысл Вы вкладываете в него. До этих пор я считал, что асинхронное программирование - это организация выполнения программы в виде нескольких параллельных потоков с механизмами диспетчеризации (флаги и т.д. и т.п.). Какое отношение это имеет к вопросу, поднятому ТС? Или к вопросу LUA vs ARDUINO? Или я ошибаюсь, и Вы говорили о чем-то другом?
     
  11. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    535
    Симпатии:
    63
    igorlll, На модуле запущен сервер, Вы говорите о javascript, я к сожалению не встречал использования javascript на сервере для обеспечения многопоточности, когда каждый запрос обрабатывается в отдельном потоке. Подскажите где Вы видели исполнение javascript на сервере?
     
  12. igorlll

    igorlll Новичок

    Сообщения:
    10
    Симпатии:
    1
    Угу. В несколько потоков. Без механизма диспетчеризации (Lua/NodeMCU, JavaScript) - он там по умолчанию есть. Но чтобы не получать информацию от лохов, типа меня - прочтите что-то по JS и все поймете. Повторюсь - приблизительно также и в Lua от NodеMCU.

    К нему. ТС то, он вообще жжот: дали ему ссылку к его вопросу отношения не имеющую - он и исчез.

    Друже, я только о "к вопросу LUA vs ARDUINO": почему некторые люди его употребляют на завтрак и отказываются от яичницы из Си.
    Я - один из них. Клепаю тихонько простые устройства для дома. Простые.

    Что касается JS на сервере, то это Node.js, но это в целом. На ESP-8266 его не бывает.
     
    Последнее редактирование: 18 фев 2018
  13. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    535
    Симпатии:
    63
    Вопрос я поставил совсем не правильный, а ответ меня удовлетворил.
    Нода - платформа (обеспечивающая многопоточную обработку запросов), js - язык программирования
    си - язык программирования, виндовс и линукс - платформы, выполнить fork на линуксе обычное дело, на виндовсе fork-ов как бы и нет.

    Совсем не очевидно на Lua обеспечивается многопоточность.
     
  14. igorlll

    igorlll Новичок

    Сообщения:
    10
    Симпатии:
    1
    Эммм...?
     
  15. igorlll

    igorlll Новичок

    Сообщения:
    10
    Симпатии:
    1
    Lua от NodeMCU имеет like JS таймеры. Подвешенный на них код (грязный хак) становится самостоятельной нитью.
    Кроме того, есть серьезный перечень асинхронных функций. Вместе с ними событийное программирование не представляется сложным.

    Вот перечень основных асинхронных функций. Но это малая часть, практически весь Lua от NodeMCU построен на асинхроне и callbackах.
    У привыкшим к ардуиноязыку это выносит мозг.
     
  16. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    535
    Симпатии:
    63
    igorlll, Интерес у меня не праздный.
    Я не нашел у ардуины реализации веб-сервера, которому можно было указать интерфейс для доступа к файловой системе, указать путь к статике, чтоб веб-сервер сам обрабатывал все запросы к статике, свалить на сд-карту страницы стили скрипты изображения и т.п. (бутстрап с ангуляром туда же)
    В пользовательском коде обрабатывать только запросы для чтения/записи данных с датчиков/гпио.
    Есть ли на Lua готовые решения по чтению статики?
     
  17. igorlll

    igorlll Новичок

    Сообщения:
    10
    Симпатии:
    1
  18. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    535
    Симпатии:
    63
    Если совсем просто, нужен готовый движок который может отдавать статику с сд-карты и только.
    запросили /index.html нашел на карте - вернул, не нашел - вернул 404
    запросили часть файла указав в запросе (в заголовке) Range, вернул часть.
     
  19. igorlll

    igorlll Новичок

    Сообщения:
    10
    Симпатии:
    1
    Здесь в разделе NodeMCU есть две темы где авторы делятся рабочими решениями, посмотрите.
     
  20. kab

    kab Авторитетный участник сообщества

    Сообщения:
    633
    Симпатии:
    78
    По моему, что-то очень близкое в итоге получается у Сергея Третьякова:

    Программирование шаг за шагом

    ЗЫ. На ардуино. Только вроде не сд-карта, а файловая система во флеш...
     

Поделиться этой страницей