Переключение режимов (Arduino+Nextion)

andrwgldmn
andrwgldmn аватар
Offline
Зарегистрирован: 05.12.2018

Доброго. Суть вопроса:

В проекте есть авто режим и ручной режим. Для каждого режима на панель Nextion на странице выведено по DSButton при нажатии на которую должен быть переход на соответственный режим + выполнение кода ТОЛЬКО для него через ардуину (вкл/выкл реле и тд).

Есть мысль добавить 2 переменные в панели на страницу с выбором режимов (Variable) и при каждом нажатии записывать состояние кнопки в свою переменную и передавать в ардуину для смены значения в #define, а в самой ардуине через ifdef управлять режимами.

Как это можно правильно реализовать? Спасибо

sadman41
Онлайн
Зарегистрирован: 19.10.2016

В рантайме через ifdef - никак, это оператор этапа компиляции.

Ваш вариант - это стандартные if(), switch().

andrwgldmn
andrwgldmn аватар
Offline
Зарегистрирован: 05.12.2018

sadman41 пишет:

В рантайме через ifdef - никак, это оператор этапа компиляции.

Ваш вариант - это стандартные if(), switch().

хм.. а можно пример?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andrwgldmn пишет:
передавать в ардуину для смены значения в #define, а в самой ардуине через ifdef управлять режимами.

Как это можно правильно реализовать? 

Никак! Ни правильно, ни неправильно :(

andrwgldmn
andrwgldmn аватар
Offline
Зарегистрирован: 05.12.2018

ЕвгенийП пишет:

Никак! Ни правильно, ни неправильно :(

из комментария выше я это понял.. а можно пример не через ifdef?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andrwgldmn пишет:

из комментария выше я это понял.. а можно пример не через ifdef?

Какой пример? Для абстрактной программы? Ну напишите любую абстрактную программу и замените дефайн на переменную - вот Вам и пример.

Или для Вашего проекта, о котором мы вообще ничего не знаем? Если для него, то нельзя.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Привести пример, да легко! Сейчас выдеру из собственной программы

if(secretswitch==secretconstant1)
{ ;//Тут должны быть какие-то секретные действия
}
if(secretswitch==secretconstant2)
{ ;//Тут должны быть какие-то тоже очень секретные действия
}

Ну, а так- режим секретности, извините...