Взаимодействие с графическим интерфейсом
Взаимодействие с графическим интерфейсом осуществляется через поля структуры RemoteXY. Состав полей структуры соответствует переменным графического интерфейса. Каждое поле структуры привязано к переменной какого либо элемента графического интерфейса. Имя переменной задается в редакторе интерфейса для каждого элемента. Записывая и считывая значения переменных вы получаете доступ к состоянию элементов управления графического интерфейса.
struct {
// input variables
uint8_t switch_01;
float setTemperature;
// output variables
float temperature;
uint8_t led_01;
// complex variables
RemoteXYType_Print terminal_01;
} RemoteXY;
Внимание. Нельзя изменять структуру RemoteXY. Не добавляйте и не удаляйте поля структуры RemoteXY. Так же не изменяйте порядок полей в структуре. Любые изменения приведут к неработоспособности интерфейса.
Все поля структуры разделены на входные и выходные.
- input - данные преимущественно передаются из графического интерфейса в контроллер. Но могут передаваться из контроллера в графический интерфейс.
- output - данные всегда передаются из контроллера в графический интерфейс.
- complex - переменные, поведение которых зависит от их типа.
Получение данных из графического интерфейса
Что бы определить в каком состоянии находится элемент графического интерфейса, или какие данные ввел пользователь, прочитайте значение из соответствующего поля структуры.
void loop()
{
RemoteXY_Handler ();
if (RemoteXY.switch_01 == 1) {
handleMyProcess ();
}
}
Отправка данных в графический интерфейс
Чтобы передать значение в элемент графического интерфейса, запишите это значение в соответствующее поле структуры.
void loop()
{
RemoteXY_Handler ();
RemoteXY.temperature = getTemp ();
}
Комплексные переменные
Структура RemoteXY может содержать комплексную переменную если вы разместили в интерфейсе соответствующий элемент управления. В этом случае вы должны использовать методы этой переменной. Какие методы доступны зависит от типа переменной. Изучите документацию соответствующего элемента управления.
void loop()
{
if (need) {
RemoteXY.terminal_01.println ("Hello world");
}
}









English