Как внедрить переменные среды в файл CPP, используя Visual Code и Platform IO?

Просто начинаю с того, что исходил из истории JS.

Я смотрю на разработку IoT и хотел настроить собственное репо без загрузки SSID и пароля моего личного WiFi.

Платформа IO предлагает это platformio.ini как я понимаю установить build_flags,

  build_flags =
-D SSID="MySSID"

Я не знаю, как получить к ним доступ из моего файла CPP, хотя. Я хочу вставить значение из SSID флага сборки в мой файл * .cpp.

  #define SSID

void loop()
{
Serial.println(SSID);
}

Выше ничего не пишет на последовательный монитор.

Что я делаю неправильно? Код компилируется.

1

Решение

Как упомянул @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(),

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]