Topic: Проблема с графическим интерфейсом
Добрый день.
Сделал в редакторе интерфейс управления водонагревателем. Есть прямое управление водонагревателем. Обратная связь производится путем вывода значений в текстовых полях (ON/OFF, значение температуры и т.д.)
Залил код на плату, написал саму программу для водонагревателя.
Все отлично, реле от кнопок управляются, обратная связь работает. Но, какая то беда с размещение строк "text" на экране при подключении к плате по TCP/IP.
Ниже скриншот того, как производится вывод строк на iPhone 5S (iOS 10.2.1).
Та же проблема наблюдается и на Android планшете от Acer (под рукой нет, привести версию Android пока не могу).
На телефоне ОС Android 5.1 все выводится как надо:
Ниже приведена часть скетча для RemoteXY:
/*_________________________________________________________*/
// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__ESP8266WIFI_LIB
#include <ESP8266WiFi.h>
#include <RemoteXY.h>
// настройки соединения
#define REMOTEXY_WIFI_SSID "USERNAME"
#define REMOTEXY_WIFI_PASSWORD "USERNAME"
#define REMOTEXY_SERVER_PORT 6377
// конфигурация интерфейса
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
{ 255,14,0,12,0,142,0,6,8,0,
1,0,3,3,28,28,1,208,146,208,
154,208,155,0,1,0,36,3,28,28,
1,208,157,208,176,208,179,209,128,208,
181,208,178,0,1,0,69,3,28,28,
1,84,0,7,5,6,51,90,7,2,
11,67,1,6,31,22,9,6,4,67,
1,39,31,22,9,6,5,67,1,72,
31,22,9,6,3,129,0,8,45,87,
5,9,208,146,209,128,208,181,208,188,
209,143,32,208,178,208,186,208,187,209,
142,209,135,208,181,208,189,208,184,209,
143,32,208,178,208,190,208,180,208,190,
208,189,208,176,208,179,209,128,208,181,
208,178,208,176,208,187,209,143,0 };
// структура определяет все переменные вашего интерфейса управления
struct {
// input variable
uint8_t button_1; // =1 если кнопка нажата, иначе =0
uint8_t button_2; // =1 если кнопка нажата, иначе =0
uint8_t button_3; // =1 если кнопка нажата, иначе =0
char edit_1[11]; // =строка UTF8 оканчивающаяся нулем
// output variable
char text_1[4]; // =строка UTF8 оканчивающаяся нулем
char text_2[5]; // =строка UTF8 оканчивающаяся нулем
char text_3[3]; // =строка UTF8 оканчивающаяся нулем
// other variable
uint8_t connect_flag; // =1 if wire connected, else =0
} RemoteXY;
#pragma pack(pop)
/*_________________________________________________________*/
Ниже кусок скетча, показывающий, как происходит обратная связь с водонагревателем и, к примеру в переменной text_1 появляется строка соответствующая состоянию водонагревателя:
/*_________________________________________________________*/
//Heater Direct Control part
//считывание состояния цифрового входа D6//смена состояния режима ON/OFF нагревателя по уровню HIGH//
if ((digitalRead(ON_OFF_button_FB)== HIGH) && (millis() - ON_OFF_start > delay_300)) {
ON_OFF_start = millis();
switch (ON_OFF_state) {
case 1:
ON_OFF_state *= -1;
Serial.println("Heater now is OFF");
strcpy (RemoteXY.text_1, "OFF");
break;
case -1:
ON_OFF_state *= -1;
Serial.println("Heater now is ON");
strcpy (RemoteXY.text_1, "ON");
break;
}
}
У вас есть мысли, почему так может происходить?
P.S. вечером напишу версию ОС на планшете.