Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd3b02c9ca | ||
|
|
6f67162f7a | ||
|
|
2831eab62c |
No files matched your search
@@ -71,6 +71,32 @@ Heltec T114 и T190, ThinkNode M9, Meshadventurer на E22. Ниже — что
|
|||||||
- В набор сборки входят 26 прошивок: 15 companion, 8 репетитеров и 3 room server /
|
- В набор сборки входят 26 прошивок: 15 companion, 8 репетитеров и 3 room server /
|
||||||
sensor. Как собрать и опубликовать — [`ci/README.md`](./ci/README.md).
|
sensor. Как собрать и опубликовать — [`ci/README.md`](./ci/README.md).
|
||||||
|
|
||||||
|
### Версия 0.2.1beta
|
||||||
|
|
||||||
|
Внутренняя сборка для проверки. Что в ней появилось:
|
||||||
|
|
||||||
|
- **Длинные сообщения переносятся по словам** на монохромных экранах и на
|
||||||
|
чёрно-белых (e-ink): раньше строка уходила за край. Очень длинное слово
|
||||||
|
(например, ссылка) режется по ширине, текст не залезает под нижний край экрана.
|
||||||
|
- **Процент батареи считается по кривой разряда Li-ion**, а не по прямой линии от
|
||||||
|
3000 до 4200 мВ. Ниже 3.8 В показания стали заметно честнее — это видно и в
|
||||||
|
строке состояния, и на странице POWER.
|
||||||
|
- **Правильный уровень сигнала на платах с усилителем** (Heltec V4): раньше
|
||||||
|
измеренное значение было завышено примерно на 17 дБ. Теперь и в приложении, и на
|
||||||
|
странице поиска репитеров цифры соответствуют реальности.
|
||||||
|
- **Быстрый Bluetooth:** синхронизация контактов и каналов идёт заметно быстрее, и
|
||||||
|
исчезла задержка около 10 секунд, которая возникала сразу после подключения
|
||||||
|
телефона. Когда приложение ничего не запрашивает, соединение само переходит в
|
||||||
|
экономный режим, чтобы не расходовать батарею.
|
||||||
|
- **Устройства на nRF52 больше не подвисают при сохранении настроек**, если
|
||||||
|
подключено приложение: запись откладывается до отключения телефона.
|
||||||
|
- **Чёрно-белые экраны реже «замыливаются»:** раз в 60 обновлений проходит полная
|
||||||
|
очистка, а иконки больше не растянуты по ширине.
|
||||||
|
- **Исправления:** после загрузки каналов первый свой канал больше не затирается
|
||||||
|
новым; очень длинное входящее сообщение больше не может привести к сбою; у плат с
|
||||||
|
16 МБ флеша (Station G2, Station G3, T-Beam 1W) обновление прошивки больше не
|
||||||
|
стирает настройки, контакты и каналы.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Дальше — оригинальный README проекта MeshCore. Он описывает базу и остаётся справедливым
|
Дальше — оригинальный README проекта MeshCore. Он описывает базу и остаётся справедливым
|
||||||
|
|||||||
@@ -1510,6 +1510,18 @@ void HomeScreen::notifyActivate() { // длинное нажатие
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Подсказка о кнопках внизу экрана. Полосу сначала затираем: иначе текст ложится
|
||||||
|
// поверх последней строки списка (например, поверх «Save & exit» при правке Timezone).
|
||||||
|
static void drawBottomHint(DisplayDriver& display, const char* text) {
|
||||||
|
const int h = 10;
|
||||||
|
const int y = display.height() - h;
|
||||||
|
display.setTextSize(1);
|
||||||
|
display.setColor(UIColor::window_bkg);
|
||||||
|
display.fillRect(0, y, display.width(), h);
|
||||||
|
display.setColor(UIColor::warning_txt);
|
||||||
|
display.drawTextCentered(display.width() / 2, y + 1, text);
|
||||||
|
}
|
||||||
|
|
||||||
void HomeScreen::renderNotifyMenu(DisplayDriver& display) {
|
void HomeScreen::renderNotifyMenu(DisplayDriver& display) {
|
||||||
char buf[24];
|
char buf[24];
|
||||||
char val[16];
|
char val[16];
|
||||||
@@ -1526,8 +1538,7 @@ void HomeScreen::renderNotifyMenu(DisplayDriver& display) {
|
|||||||
drawMenuRow(display, y, r == _notify_sel, names[r], val);
|
drawMenuRow(display, y, r == _notify_sel, names[r], val);
|
||||||
}
|
}
|
||||||
if (_notify_val_edit) {
|
if (_notify_val_edit) {
|
||||||
display.setColor(UIColor::warning_txt);
|
drawBottomHint(display, "click+ dbl- hold=back");
|
||||||
display.drawTextCentered(display.width() / 2, 64 - 10, "click+ dbl- hold=back");
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1564,11 +1575,14 @@ void HomeScreen::renderNotifyMenu(DisplayDriver& display) {
|
|||||||
"Unread", "Popups", "Wake screen", "Alerts", "Channels", "Timezone", "Quiet hours", "Save & exit"
|
"Unread", "Popups", "Wake screen", "Alerts", "Channels", "Timezone", "Quiet hours", "Save & exit"
|
||||||
};
|
};
|
||||||
static const char* alert_names[4] = { "sound+vibe", "sound", "vibe", "off" };
|
static const char* alert_names[4] = { "sound+vibe", "sound", "vibe", "off" };
|
||||||
// на узких экранах (128x64) все восемь строк не помещаются — список прокручивается
|
// на узких экранах (128x64) все восемь строк не помещаются — список прокручивается;
|
||||||
const uint8_t visible = display.height() >= 100 ? NOTIFY_MAIN_ROWS : 7;
|
// в режиме правки значения нижнюю полосу (10 px) отдаём подсказке о кнопках,
|
||||||
|
// поэтому строк должно стать на две меньше, иначе последняя строка упирается в подсказку
|
||||||
|
const uint8_t maxRows = display.height() >= 100 ? NOTIFY_MAIN_ROWS : 7;
|
||||||
|
const uint8_t visible = _notify_val_edit ? (uint8_t)(display.height() >= 100 ? maxRows : 5) : maxRows;
|
||||||
uint8_t first = _notify_sel >= visible ? (uint8_t)(_notify_sel - visible + 1) : 0;
|
uint8_t first = _notify_sel >= visible ? (uint8_t)(_notify_sel - visible + 1) : 0;
|
||||||
int y = 1;
|
int y = 1;
|
||||||
for (uint8_t r = first; r < NOTIFY_MAIN_ROWS; r++, y += 9) {
|
for (uint8_t r = first; r < NOTIFY_MAIN_ROWS && (r - first) < visible; r++, y += 9) {
|
||||||
val[0] = 0;
|
val[0] = 0;
|
||||||
switch (r) {
|
switch (r) {
|
||||||
case 0: snprintf(val, sizeof(val), "%d", _task->getMsgCount()); break;
|
case 0: snprintf(val, sizeof(val), "%d", _task->getMsgCount()); break;
|
||||||
@@ -1586,8 +1600,7 @@ void HomeScreen::renderNotifyMenu(DisplayDriver& display) {
|
|||||||
drawMenuRow(display, y, r == _notify_sel, labels[r], val);
|
drawMenuRow(display, y, r == _notify_sel, labels[r], val);
|
||||||
}
|
}
|
||||||
if (_notify_val_edit) {
|
if (_notify_val_edit) {
|
||||||
display.setColor(UIColor::warning_txt);
|
drawBottomHint(display, "click+ dbl- hold=back");
|
||||||
display.drawTextCentered(display.width() / 2, display.height() - 10, "click+ dbl- hold=back");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user