Andy
если коротко, я не знаю почему. если длинно, то первое, что приходит в голову, это основной разработчик там "старовер" и не любит с++. совершенно точно можно писать на с++ эмбеддед, что делают очень многие. но, сишный код несколько проще стыковывать с другими языками
Точно не старовер :) Это команда и часть ее перечислена в участниках проекта idf-esp Если кратко то нету еще языка могущего поспорить по эффективности готового кода с Си (другой вопрос, что как язык он конечно довольно сложен, если вы понимаете о чем я :)
SetPf
как вы думаете почему esp-idf написан на с, а не на с++? Как бы абстракции, умный комплиятор, линковщик и прочее. Однако поди ж ты...
Например по той же причине, что некоторые вещи проворачиваемые на С - на ++ провернуть либо нельзя, либо там дичавый оверхед (текстовый или реальный) будет.
Юрий
я видел только для ардуино-фреймворка.
Чуть выше выкладывал пример, там есть ссылки на порт для esp-idf, и на оф. сайте есть ссылки.
Anton
Точно не старовер :) Это команда и часть ее перечислена в участниках проекта idf-esp Если кратко то нету еще языка могущего поспорить по эффективности готового кода с Си (другой вопрос, что как язык он конечно довольно сложен, если вы понимаете о чем я :)
я не согласен таки, что эффективность кода на С++ чем--то уж кардинально хуже, чем на С. более того, в С++ языке есть много возможностей сделать код даже более эффективным, чем для Си. основная проблема С++, как я её вижу — сделать эффективный линковщик, они не просто так для С++ кушают много рам и порой даже 16гб не хватает
Yuriy
я не согласен таки, что эффективность кода на С++ чем--то уж кардинально хуже, чем на С. более того, в С++ языке есть много возможностей сделать код даже более эффективным, чем для Си. основная проблема С++, как я её вижу — сделать эффективный линковщик, они не просто так для С++ кушают много рам и порой даже 16гб не хватает
есть сравнения 1:1, с перевесом небольшим c++ по эффективности, книги об этом даже написаны :) и при большом перевесе в размере до компиляции :) кстати ООП на C - вполне тот же самый (не обязательно всё процедурно решать) только - через ООПу , но конструкции необходимые достижимы- ядро linux можно посмотреть как написано
Anton
в си меня больше всего расстраивает отстутсвие неймспейсов
Anton
ну и вообще поддержка какой-либо модульности бы не помешала. то, что есть — всё на уровне 1970...
Yuriy
в си меня больше всего расстраивает отстутсвие неймспейсов
как это? понял, а в смысле namespace ( два смысле у него) local namespace и т.п. есть решения ) https://stackoverflow.com/questions/4396140/why-doesnt-ansi-c-have-namespaces https://ejrh.wordpress.com/2012/01/24/namespaces-in-c/
SetPf
как это? понял, а в смысле namespace ( два смысле у него) local namespace и т.п. есть решения ) https://stackoverflow.com/questions/4396140/why-doesnt-ansi-c-have-namespaces https://ejrh.wordpress.com/2012/01/24/namespaces-in-c/
Вопрос не про то же, как это воплотить через 99 костылей. А про то, что работает из коробки, легко читается и пишется. Так то вроде почти все функции С++ можно так или иначе реализовать в ++. Городить синтаксический сахар на макросах и расширениях компилятора в С это очень сомнительное решение, т.к. это считай еще один язык выходит, в который поддерживающему придется вникать.
Boris68
А тупо тсп? А на компе клиентский код
А это как или что почитать?
MrSyabro
А это как или что почитать?
Зависит от твоей задачи. Если ты можешь запустить на компе отдельную прогу для получения данных и вебморда - это не обязательно, то ты можешь посылать данные по TCP
MrSyabro
Самый простой, мне кажется, и быстрый способ получить нужные данные на пк
MrSyabro
Тебе не нужен отдельный сервер, а скорость моментальная (задержки роутера или твоих инструментов (пк, есп))
MrSyabro
На есп все прост. Смотришь, как завести TCP сервер/клиент (не важно, зависит от последовательности запуска) на твоем инструментарии.
Boris68
Тебе не нужен отдельный сервер, а скорость моментальная (задержки роутера или твоих инструментов (пк, есп))
Щас буду вникать, пока смутно для меня это, а программу придется самому писать на ПК?
MrSyabro
Но, в зависимости от инструментов, которыми ты обладаешь, варьируется простота 🤷‍♂
MrSyabro
Язык какой-нибудь знаешь?
MrSyabro
Питон? Луа? ЖС?
MrSyabro
Могу помочь только с центральным, Луа 😁
MrSyabro
Скорее всего, тут кто угодно мгновенно накидает тебе код соединения TCP на питоне
Boris68
Язык какой-нибудь знаешь?
Ну благодаря ардуино 😊 более менее разбираюсь в с++ ну и начал питона разбирать для интереса
MrSyabro
Кроме меня и малого кол-ва людей не знающих змеиного
MrSyabro
Ну благодаря ардуино 😊 более менее разбираюсь в с++ ну и начал питона разбирать для интереса
Я выше кидал 2 файла. Там на луа тсп соединения пересылает файл
MrSyabro
Файлики размером до 1кб
Юрий
С TCP лучше сразу Modbus TCP, так для ПК не нужно ничего писать можно читать/писать готовыми инструментами.
MrSyabro
Написал раз, запустил и смотри
Yuriy
Обновлять страничку с параметром
Yuriy
Шо эт
стандартный пример из поставки
Boris68
Я вас услышал, спасибо, иду гуглить, а то пока что даже разницы между tcp и http не знаю
MrSyabro
Та фу, это ж медленно все 🤮
Yuriy
20мс
MrSyabro
20мс
Это че? Threadsripper у тебя там?
Yuriy
Это че? Threadsripper у тебя там?
как это влияет интересно
MrSyabro
Мой динозавр врятли сможет обращаться в сервер каждые 100мс
Yuriy
Yuriy
Мой динозавр врятли сможет обращаться в сервер каждые 100мс
это пушится соединение открыто держится
MrSyabro
Открывается соединение и поддерживается как tcp только в браузере 🤔
MrSyabro
Всеравно жирно
MrSyabro
Зачем, если сложность tcp соединения не больше?
Yuriy
всё равно - вот именно
MrSyabro
Кроме концепции клиент-сервер
Yuriy
Зачем, если сложность tcp соединения не больше?
потому что это масштабируется легко
MrSyabro
Я вас услышал, спасибо, иду гуглить, а то пока что даже разницы между tcp и http не знаю
Ну да, вот человек кинул вариант уже готовый. Вебсокет поддерживается в браузере и браузер получает сообщения
Andy
Ради интереса счас померил на нагруженном esp32 Обычный setInterval("GetTime()", 100); time.xml: <response> <time> <value>~watch_hour~:~watch_minute~:~watch_second~</value> </time> <date> <value>~watch_date~-~watch_month~-20~watch_year~</value> </date> </response>
Yuriy
Ради интереса счас померил на нагруженном esp32 Обычный setInterval("GetTime()", 100); time.xml: <response> <time> <value>~watch_hour~:~watch_minute~:~watch_second~</value> </time> <date> <value>~watch_date~-~watch_month~-20~watch_year~</value> </date> </response>
весь выигрыш из за отсутствия необходимости установки соединение - оно открыто и реакция быстрее. а так то то же самое всё. ws с заголовками - размеры похожи. ничего фундаментально не меняется.
Andy
весь выигрыш из за отсутствия необходимости установки соединение - оно открыто и реакция быстрее. а так то то же самое всё. ws с заголовками - размеры похожи. ничего фундаментально не меняется.
ничего не могу сказать, про арудино, на текущей прошивке одно ядро полностью занято другими делами, второе отдано под комуникации и каждые 25 мкс по прерыванию занято на 20 мкс. Т.е. если освободить то может и можно добиться 100 мс, но это будет не надежно на http. Фиг его знает чего там у Boris за задача.
Юрий
Та ему то просто данные читать
Ну это так, на перспективу, сначала просто читать, потом чтоб и стрелки всякие были, хотя не понимаю зачем инфа 19 раз в секунду, для графиков может быть актуально, а просто число мельтешит не очень понятно.
Andy
почему на http не надёжно?
накладные расходы большие - вместо одного пакета TCP обертка из протокола http
MrSyabro
Так же каждую секунду 🤷‍♂
MrSyabro
В моем случае, если есп может справится, комп может не справитс
Yuriy
Так же каждую секунду 🤷‍♂
да хоть 10 раз. надежность тут при чём? вы чего за проц переживаете - что ему тяжело , или сеть устанет ?
MrSyabro
Для получения одного числа 19 раз в секунду заводить целый браузер, который скйчас 1/4 а то и 2/5 сьест всех ресурсов пк 🤷‍♂
MrSyabro
для визуализации, нет?
Он не говорил о визуализации 🤷‍♂ Человеку просто значения каждые 100-200мс нужны
MrSyabro
ну если калькулятора то да
Калькулятора? У тебя там и калькуляторы с 4-6гб оперативы чтоль?
MrSyabro
Нихуя ты зажрался, господин 🤷‍♂
Yuriy
Он не говорил о визуализации 🤷‍♂ Человеку просто значения каждые 100-200мс нужны
ага он выбирает из чего? их напрямую в мозг получить или каким другим способом "получить" их?
Yuriy
Yuriy
MrSyabro
Сколько не тыкай тут своим хромом (которому верить тоже не особо хочется) в итоге маленький скрипт с тсп соединением будет намного легче и для есп и для пк.
Boris68
Он не говорил о визуализации 🤷‍♂ Человеку просто значения каждые 100-200мс нужны
Где то выше и раньше говорил что да, нужна визуализация (показания нескольких датчиков на работе) 100 это я наверное погорячился, 300-500 думаю