• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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-файлов. В этих файлах вроде как использовал описалово без классов. Ведь проблем же быть не должно? Все функции вызываются из методов ардуиновских классов. Своей отсебятины в хардварной части не лепил.
 
Сверху Снизу