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

Вопрос Готовые библиотеки в нативной разработке

Всем привет, решил попробовать чудо под названием esp8266. Настроил компилятор, среду разработки, попробовал сделать простенькую прошивку и прошил модуль - потратил кучу времени и нервов, но вроде разобрался. Теперь охота сделать что-то полезное и возникли следующие вопросы:
  • Есть готовые библиотеки для Arduino - они в целом норм, но все написаны на c++, есть ли каталог аналогичных на C, чтобы использовать для нативной разработки. Очень интересует вот такой аналог, например - RESTful environment или может как-то можно подключить готовые библиотеки на c++(или хотя бы простенький http\s сервер, чтобы допилить его), чтобы использовать в проекте на C? Я видел "малый webсервера на esp8266", но он слишком функционален для меня, придется много выпиливать.
  • Есть необходимость хранения части перманентных настроек - опять же есть готовая библиотека для Arduino, но нет аналогичной на C, не нашел в каком диапазона адресов вообще можно что-то хранить, подскажите в какую сторону копать?
 

Shyster

New member
В Arduino IDE есть примеры, там ссылки на адреса и т.п., на сколько помню. А почему с++ не устраивает? Много лишнего и памяти мало?
 
В Arduino IDE есть примеры, там ссылки на адреса и т.п., на сколько помню
А можно ссылочку где конкретно, не могу найти :(

А почему с++ не устраивает? Много лишнего и памяти мало?
Базовый язык C, чтобы использовать к C классы C++ - нужно достаточно сильно заморочиться и допиливать заголовки. Да и лишевого много, даже в базовых примерах, дублирование библиотек и т.п.
 

Сергей_Ф

Moderator
Команда форума
@Димитрий вопрос был, чем Вас c++ не устраивает, как я понял. А Вы отвечаете, почему библиотеки c++ нельзя использовать. А вот в Ардуино IDE можно использовать как чистый c, так и c++ в любом сочетании. Попробуйте, может понравится. Никто ведь не заставляет Вам свою программу писать на плюсах.
 

pvvx

Активный участник сообщества
Ц++ отличается от Ц неуправляемым использованием памяти и её типов, в устройствах и так страдающих болезнью “мало памяти”. Синтаксис описания языка в различия не входит.
 
Как раз-таки это и есть проблема:
- взять библиотеку на c++ в которой нужно 70%
- посмотреть как там описаны классы, написать под них сишные экстерны, ладно дело если там 3-4 хидера, а если 8?!
- собрать и запустить, отладить...
- удивиться куда делась память

Например нужно простенький http сервер написать, чтобы он по rest запросы отрабатывал, чем ковырять библиотеку arduino проще за базу взять пример Iot.
 

Atom

Member
Как раз-таки это и есть проблема:
- взять библиотеку на c++ в которой нужно 70%
- посмотреть как там описаны классы, написать под них сишные экстерны, ладно дело если там 3-4 хидера, а если 8?!
- собрать и запустить, отладить...
- удивиться куда делась память

Например нужно простенький http сервер написать, чтобы он по rest запросы отрабатывал, чем ковырять библиотеку arduino проще за базу взять пример Iot.
Ну вот случайно заглянул в каталог с сырцами SDK, которая, как мне объясняли полюбому компилируется и обнаружил полностью все файлы Ц. Видимо создатели не догоняют. Ну да ладно. Хотя судя по комменту @pvvx скорее наоборот догоняют.

Тогда другой вопрос. Вот я в Arduino IDE (что как бы подразумевает сявное компилирование SDK, а затем прилинковку Arduino и ее библиотек со стуктурами C++), добавил несколько ino-файлов. В этих файлах вроде как использовал описалово без классов. Ведь проблем же быть не должно? Все функции вызываются из методов ардуиновских классов. Своей отсебятины в хардварной части не лепил.
 
Сверху Снизу