Просто начинаю с того, что исходил из истории JS.
Я смотрю на разработку IoT и хотел настроить собственное репо без загрузки SSID и пароля моего личного WiFi.
Платформа IO предлагает это platformio.ini
как я понимаю установить build_flags
,
build_flags =
-D SSID="MySSID"
Я не знаю, как получить к ним доступ из моего файла CPP, хотя. Я хочу вставить значение из SSID флага сборки в мой файл * .cpp.
#define SSID
void loop()
{
Serial.println(SSID);
}
Выше ничего не пишет на последовательный монитор.
Что я делаю неправильно? Код компилируется.
Как упомянул @Azeem, вы переопределяете SSID в пустое значение. Используя такой препроцессор, вы должны сначала проверить, существует ли значение, а если нет, назначить ему значение по умолчанию.
Вот простой пример C ++:
#include <iostream>
#ifndef SSID
#define SSID "(SSID not defined)"#endif
int main()
{
std::cout << "SSID value: " << SSID << std::endl;
return 0;
}
Вы можете скомпилировать и запустить код с:
g++ main.cpp -o main && ./main
Как вы видите, это печатает (SSID not defined)
,
Теперь компилируем и запускаем следующее:
g++ main.cpp -o main -DSSID='"Hello, World!"' && ./main
будет выводить: SSID value: Hello, World!
Если вы хотите узнать больше о директивах препроцессора, cplusplus.com имеет очень хороший учебник
Кроме того, не забудьте начать свой Serial
в void setup()
,
Других решений пока нет …