Skip to content

Commit

Permalink
Merge branch 'master' into feature/defer_settings_reboot
Browse files Browse the repository at this point in the history
  • Loading branch information
spohtl authored Jan 7, 2025
2 parents 39ea684 + 71fbe1d commit b29763f
Show file tree
Hide file tree
Showing 31 changed files with 1,581 additions and 329 deletions.
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ Vectors and icons by <a href="https://www.svgrepo.com/" target="_blank">SVG Repo
- [x] protobuf encoding/decoding
- [x] Logging interface
- [x] Add lvgl compatible input driver interface
- [ ] Add interface for persistency
- [X] Screen calibration data
- [x] Add interface for persistency
- [x] Screen calibration data
- [x] Device settings (General)
- [ ] Message storage
- [x] Message storage
- [ ] Serial connection config
- [x] Dynamic behavior
- [x] Startup config
Expand All @@ -83,22 +83,24 @@ Vectors and icons by <a href="https://www.svgrepo.com/" target="_blank">SVG Repo
- [X] Italian translation
- [X] French translation
- [X] Russian translation
- [X] Slovenian translation
- [ ] Turkish translation
- [ ] Greek translation
- [ ] Support dynamic OLED / Color(TFT) selection
- [x] Add support for UI scaling and try eliminate fixed positioning (lvgl v9)
- [ ] Allow co-existence of generated files/views by different eez-studio projects
- [ ] Fix PSRAM draw buffer issue and do buffer size optimization
- [ ] Test native lvgl driver support
- [ ] Native lvgl driver support
- [ ] TFT drivers
- [ ] OLED drivers
- [ ] Check lvgl native driver DMA double-buffering
- [ ] lvgl native driver DMA double-buffering
- [ ] E-Ink support
- [ ] RP2040 support

### Meshtastic UI (general)

- [x] Boot Screen
- [x] Boot screen
- [ ] Customizable boot screen
- [x] Home Screen
- [x] Messages info
- [x] Nodes info
Expand All @@ -115,7 +117,7 @@ Vectors and icons by <a href="https://www.svgrepo.com/" target="_blank">SVG Repo
- [ ] Repeater support (manual insertion)
- [ ] LastHeard & time source handling improvements
- [ ] Remote Node configuration
- [x] Filter (offline, unknown, public key, position, hops away, by name)
- [x] Filter (offline, unknown, channel, public key, position, hops away, by name)
- [x] Highlight (position, telemetry, IAQ, by name)
- [x] Group channel panel
- [x] Chat panel
Expand All @@ -139,6 +141,7 @@ Vectors and icons by <a href="https://www.svgrepo.com/" target="_blank">SVG Repo
- [x] Device Role
- [x] Screen Timeout
- [x] Screen Calibration
- [x] Screen Lock
- [x] Brightness
- [x] Input Control
- [x] Message Alert / Ringtones
Expand Down Expand Up @@ -169,6 +172,7 @@ Vectors and icons by <a href="https://www.svgrepo.com/" target="_blank">SVG Repo
- [x] Trackball support (e.g. fast scrolling list views)
- [ ] SD card support, mainly for offline maps or import/export (config & chat history)
- [ ] load custom fonts from SD card
- [ ] disable screen to temporarily allow other connection (USB serial, BT) to the device
- [ ] (Optional): allow bluetooth connection (-> PhoneAPI queue re-design)
- [ ] I2S Audio support

Expand Down
3 changes: 2 additions & 1 deletion generated/ui_320x240/images.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "images.h"

const ext_img_desc_t images[68] = {
const ext_img_desc_t images[69] = {
{ "meshtastic_boot_logo_image", &img_meshtastic_boot_logo_image },
{ "settings_button_image", &img_settings_button_image },
{ "map_button_image", &img_map_button_image },
Expand Down Expand Up @@ -69,4 +69,5 @@ const ext_img_desc_t images[68] = {
{ "home_fair_signal_image", &img_home_fair_signal_image },
{ "home_strong_signal_image", &img_home_strong_signal_image },
{ "home_good_signal_image", &img_home_good_signal_image },
{ "lock_slash_image", &img_lock_slash_image },
};
3 changes: 2 additions & 1 deletion generated/ui_320x240/images.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ extern const lv_img_dsc_t img_home_weak_signal_image;
extern const lv_img_dsc_t img_home_fair_signal_image;
extern const lv_img_dsc_t img_home_strong_signal_image;
extern const lv_img_dsc_t img_home_good_signal_image;
extern const lv_img_dsc_t img_lock_slash_image;

#ifndef EXT_IMG_DESC_T
#define EXT_IMG_DESC_T
Expand All @@ -84,7 +85,7 @@ typedef struct _ext_img_desc_t {
} ext_img_desc_t;
#endif

extern const ext_img_desc_t images[68];
extern const ext_img_desc_t images[69];


#ifdef __cplusplus
Expand Down
38 changes: 34 additions & 4 deletions generated/ui_320x240/screens.c
Original file line number Diff line number Diff line change
Expand Up @@ -3465,11 +3465,12 @@ void create_screen_main_screen() {
// SettingsScreenTimeoutLabel
lv_obj_t *obj = lv_label_create(parent_obj);
objects.settings_screen_timeout_label = obj;
lv_obj_set_pos(obj, LV_PCT(0), 0);
lv_obj_set_pos(obj, 0, 0);
lv_obj_set_size(obj, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
lv_label_set_long_mode(obj, LV_LABEL_LONG_SCROLL);
lv_label_set_long_mode(obj, LV_LABEL_LONG_CLIP);
lv_label_set_text(obj, _("Timeout: 60s"));
lv_obj_set_style_align(obj, LV_ALIGN_TOP_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_min_width(obj, 180, LV_PART_MAIN | LV_STATE_DEFAULT);
}
{
// ScreenTimeoutSlider
Expand Down Expand Up @@ -3797,7 +3798,7 @@ void create_screen_main_screen() {
objects.settings_language_dropdown = obj;
lv_obj_set_pos(obj, 0, 0);
lv_obj_set_size(obj, 150, 30);
lv_dropdown_set_options(obj, "English\nDeutsch\nEspañol\nFrançais\nItaliano\nNederlands\nNorsk\nPolski\nPortuguês\nРусский\nSrpski\nSuomalainen\nSvenska\nTürkçe");
lv_dropdown_set_options(obj, "English\nDeutsch\nEspañol\nFrançais\nItaliano\nNederlands\nNorsk\nPolski\nPortuguês\nРусский\nSlovenščina\nSrpski\nSuomalainen\nSvenska\nTürkçe");
add_style_drop_down_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_TOP_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_color(obj, lv_color_hex(0xffe0e0e0), LV_PART_MAIN | LV_STATE_DEFAULT);
Expand Down Expand Up @@ -3916,7 +3917,7 @@ void create_screen_main_screen() {
objects.settings_reset_dropdown = obj;
lv_obj_set_pos(obj, 0, 0);
lv_obj_set_size(obj, 150, 30);
lv_dropdown_set_options(obj, _("NodeDB Reset\nFactory Reset"));
lv_dropdown_set_options(obj, _("NodeDB Reset\nFactory Reset\nClear Chat History"));
add_style_drop_down_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_TOP_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_color(obj, lv_color_hex(0xffe0e0e0), LV_PART_MAIN | LV_STATE_DEFAULT);
Expand Down Expand Up @@ -4255,6 +4256,35 @@ void create_screen_main_screen() {
}
}
}
{
// NodesFilterChannelLabel
lv_obj_t *obj = lv_label_create(parent_obj);
objects.nodes_filter_channel_label = obj;
lv_obj_set_pos(obj, 10, 0);
lv_obj_set_size(obj, LV_PCT(98), 30);
lv_label_set_long_mode(obj, LV_LABEL_LONG_DOT);
lv_label_set_text(obj, _("Channel"));
add_style_settings_label_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_LEFT_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(obj, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_left(obj, 10, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_radius(obj, 4, LV_PART_MAIN | LV_STATE_DEFAULT);
{
lv_obj_t *parent_obj = obj;
{
// NodesFilterChannelDropdown
lv_obj_t *obj = lv_dropdown_create(parent_obj);
objects.nodes_filter_channel_dropdown = obj;
lv_obj_set_pos(obj, -8, -2);
lv_obj_set_size(obj, 65, 25);
lv_dropdown_set_options(obj, "ALL\n0\n1\n2\n3\n4\n5\n6\n7");
add_style_drop_down_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_RIGHT_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_color(obj, lv_color_hex(0xffe0e0e0), LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_pad_top(obj, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
}
}
}
{
// NodesFilterHopsAwayLabel
lv_obj_t *obj = lv_label_create(parent_obj);
Expand Down
2 changes: 2 additions & 0 deletions generated/ui_320x240/screens.h
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,8 @@ typedef struct _objects_t {
lv_obj_t *nodes_filter_offline_switch;
lv_obj_t *nodes_filter_public_key_label;
lv_obj_t *nodes_filter_public_key_switch;
lv_obj_t *nodes_filter_channel_label;
lv_obj_t *nodes_filter_channel_dropdown;
lv_obj_t *nodes_filter_hops_away_label;
lv_obj_t *nodes_filter_hops_dropdown;
lv_obj_t *nodes_filter_mqtt_label;
Expand Down
79 changes: 79 additions & 0 deletions generated/ui_320x240/ui_image_lock_slash_image.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#ifdef __has_include
#if __has_include("lvgl.h")
#ifndef LV_LVGL_H_INCLUDE_SIMPLE
#define LV_LVGL_H_INCLUDE_SIMPLE
#endif
#endif
#endif

#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#elif defined(LV_BUILD_TEST)
#include "../lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif


#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif

#ifndef LV_ATTRIBUTE_IMG_LOCK_SLASH_IMAGE
#define LV_ATTRIBUTE_IMG_LOCK_SLASH_IMAGE
#endif

static const
LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_LOCK_SLASH_IMAGE
uint8_t img_lock_slash_image_map[] = {

0xdb,0xde,0x3c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0xdb,0xde,0x00,0x00,0x00,0x00,0xdb,0xde,0xba,0xd6,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xba,0xd6,0xdb,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x3c,0xe7,0xdb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0xdb,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x3c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x9e,0xf7,0xdb,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x3c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xdb,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xdb,0xde,0x3c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0xba,0xd6,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0xba,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfb,0xde,0x3c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x5d,0xef,0xdb,0xde,0xdb,0xde,0x5d,0xef,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfb,0xde,0x3c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x3c,0xe7,0xdb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xba,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xdb,0xde,0xba,0xd6,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x3c,0xe7,0xfb,0xde,0x18,0xc6,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xba,0xd6,0xdb,0xde,0x00,0x00,0x00,0x00,
0x00,0x00,0xba,0xd6,0xba,0xd6,0x3c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x3c,0xe7,0xba,0xd6,0xba,0xd6,0x00,0x00,
0x00,0x00,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0x00,0x00,
0x00,0x00,0xfb,0xde,0xdb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x5d,0xef,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xdb,0xde,0xfb,0xde,0x00,0x00,
0x00,0x00,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x00,0x00,
0x00,0x00,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x79,0xce,0xfb,0xde,0x3c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x00,0x00,
0x00,0x00,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x00,0x00,0x00,0x00,0xfb,0xde,0x3c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x00,0x00,
0x00,0x00,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0xde,0x3c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x5d,0xef,0xfb,0xde,0xfb,0xde,0xdb,0xde,0xfb,0xde,0x00,0x00,
0x00,0x00,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0xde,0x3c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x00,0x00,
0x00,0x00,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x59,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfb,0xde,0x3c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x3c,0xe7,0xdb,0xde,0x00,0x00,
0x00,0x00,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x3c,0xe7,0xdb,0xde,
0x00,0x00,0xfb,0xde,0xdb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,
0x00,0x00,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,
0x00,0x00,0xba,0xd6,0xdb,0xde,0x3c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0xfb,0xde,
0x00,0x00,0x00,0x00,0xfb,0xde,0xdb,0xde,0x1c,0xe7,0xdb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xdb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0x3c,0xe7,
0x00,0x00,0x00,0x00,0x00,0x00,0xba,0xd6,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0xfb,0xde,0x1c,0xe7,0xfb,0xde,0xfb,0xde,0x3c,0xe7,0xdb,0xde,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x1b,0x1b,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0e,0xac,0xb8,0x27,0x00,0x00,0x00,0x15,0x72,0xbf,0xde,0xde,0xbf,0x73,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0xb8,0xff,0xc3,0x26,0x00,0x00,0x85,0xff,0xfe,0xe8,0xe8,0xfe,0xff,0xc0,0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x27,0xc3,0xff,0xc3,0x26,0x00,0x50,0xa6,0x59,0x25,0x25,0x58,0xc8,0xff,0xc0,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0xc3,0xff,0xc3,0x26,0x00,0x02,0x00,0x00,0x00,0x00,0x22,0xc8,0xff,0x73,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x26,0xc2,0xff,0xc3,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0xfe,0xbf,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0xea,0xff,0xc3,0x26,0x00,0x00,0x00,0x00,0x00,0x24,0xe8,0xdd,0x1b,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x1f,0xe1,0xff,0xff,0xc3,0x26,0x00,0x00,0x00,0x00,0x33,0xe6,0xe4,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0xac,0xfa,0xff,0xff,0xff,0xc3,0x26,0x00,0x00,0x41,0xdb,0xfe,0xfa,0xac,0x37,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x37,0xdd,0xff,0xee,0xe2,0xe0,0xea,0xff,0xc3,0x26,0x00,0x42,0xd7,0xe3,0xee,0xff,0xdd,0x37,0x00,0x00,0x00,0x00,0x00,0x04,0xa6,0xff,0xa7,0x32,0x20,0x1d,0x35,0xc2,0xff,0xc3,0x26,0x00,0x18,0x20,0x32,0xa7,0xff,0xa6,0x04,0x00,0x00,
0x00,0x00,0x15,0xd6,0xf0,0x32,0x00,0x00,0x00,0x00,0x26,0xc3,0xff,0xc3,0x26,0x00,0x00,0x00,0x32,0xf0,0xd6,0x15,0x00,0x00,0x00,0x00,0x1d,0xe1,0xe4,0x20,0x00,0x00,0x00,0x00,0x00,0x26,0xc3,0xff,0xc3,0x26,0x00,0x00,0x20,0xe5,0xe1,0x1e,0x00,0x00,
0x00,0x00,0x1f,0xe2,0xe2,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0xc3,0xff,0xc3,0x26,0x00,0x18,0xd7,0xd7,0x18,0x00,0x00,0x00,0x00,0x1f,0xe2,0xe2,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0xc3,0xff,0xc3,0x26,0x00,0x42,0x41,0x02,0x00,0x00,
0x00,0x00,0x1f,0xe2,0xe2,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0xc3,0xff,0xc3,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0xe1,0xe4,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0xc3,0xff,0xc3,0x26,0x00,0x00,0x00,0x00,
0x00,0x00,0x15,0xd6,0xf0,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xc0,0xff,0xc3,0x26,0x00,0x00,0x00,0x00,0x00,0x04,0xa6,0xff,0xa7,0x32,0x20,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1d,0x5a,0xee,0xff,0xc3,0x27,0x00,0x00,
0x00,0x00,0x00,0x37,0xdd,0xff,0xf0,0xe4,0xe2,0xe2,0xe2,0xe2,0xe2,0xe2,0xe2,0xe2,0xe4,0xef,0xff,0xf9,0xff,0xb8,0x0e,0x00,0x00,0x00,0x00,0x00,0x37,0xa6,0xd6,0xe1,0xe2,0xe2,0xe2,0xe2,0xe2,0xe2,0xe2,0xe2,0xe1,0xd6,0xa4,0x56,0xb7,0xac,0x0e,0x00,
0x00,0x00,0x00,0x00,0x00,0x04,0x15,0x1d,0x1e,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1e,0x1d,0x15,0x04,0x00,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

const lv_image_dsc_t img_lock_slash_image = {
.header.magic = LV_IMAGE_HEADER_MAGIC,
.header.cf = LV_COLOR_FORMAT_RGB565A8,
.header.flags = 0,
.header.w = 24,
.header.h = 24,
.header.stride = 48,
.data_size = sizeof(img_lock_slash_image_map),
.data = img_lock_slash_image_map,
};

23 changes: 23 additions & 0 deletions include/ILogEntry.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#pragma once

#include <functional>
#include <stdint.h>

/**
* Generic interface base class for any log entries (stored via class LogRotate)
*/
class ILogEntry
{
public:
virtual size_t size(void) const = 0;
virtual size_t serialize(std::function<size_t(const uint8_t *, size_t)> write) const = 0;
virtual size_t deserialize(std::function<size_t(uint8_t *, size_t)> read) = 0;
virtual ~ILogEntry() = default;

protected:
ILogEntry(void) = default;

private:
ILogEntry(const ILogEntry &) = delete;
ILogEntry &operator=(const ILogEntry &) = delete;
};
Loading

0 comments on commit b29763f

Please sign in to comment.