initial
This commit is contained in:
32
.gitignore
vendored
Normal file
32
.gitignore
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
.DS_Store
|
||||
.pio
|
||||
.vscode
|
||||
|
||||
# kicad Temporary files
|
||||
*.000
|
||||
*.bak
|
||||
*.bck
|
||||
*.kicad_pcb-bak
|
||||
*.kicad_sch-bak
|
||||
*.kicad_prl
|
||||
*.sch-bak
|
||||
*~
|
||||
_autosave-*
|
||||
*.tmp
|
||||
*-save.pro
|
||||
*-save.kicad_pcb
|
||||
fp-info-cache
|
||||
|
||||
# Netlist files (exported from Eeschema)
|
||||
*.net
|
||||
|
||||
# Autorouter files (exported from Pcbnew)
|
||||
*.dsn
|
||||
*.ses
|
||||
|
||||
# Exported BOM files
|
||||
*.xml
|
||||
*.csv
|
||||
|
||||
# other files
|
||||
CAD/Leo_muziekdoos_ESP32/~$ESP32 Pins.xlsx
|
||||
39
include/README
Normal file
39
include/README
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
This directory is intended for project header files.
|
||||
|
||||
A header file is a file containing C declarations and macro definitions
|
||||
to be shared between several project source files. You request the use of a
|
||||
header file in your project source file (C, C++, etc) located in `src` folder
|
||||
by including it, with the C preprocessing directive `#include'.
|
||||
|
||||
```src/main.c
|
||||
|
||||
#include "header.h"
|
||||
|
||||
int main (void)
|
||||
{
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Including a header file produces the same results as copying the header file
|
||||
into each source file that needs it. Such copying would be time-consuming
|
||||
and error-prone. With a header file, the related declarations appear
|
||||
in only one place. If they need to be changed, they can be changed in one
|
||||
place, and programs that include the header file will automatically use the
|
||||
new version when next recompiled. The header file eliminates the labor of
|
||||
finding and changing all the copies as well as the risk that a failure to
|
||||
find one copy will result in inconsistencies within a program.
|
||||
|
||||
In C, the usual convention is to give header files names that end with `.h'.
|
||||
It is most portable to use only letters, digits, dashes, and underscores in
|
||||
header file names, and at most one dot.
|
||||
|
||||
Read more about using header files in official GCC documentation:
|
||||
|
||||
* Include Syntax
|
||||
* Include Operation
|
||||
* Once-Only Headers
|
||||
* Computed Includes
|
||||
|
||||
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
|
||||
709
include/Widgets/meter/lv_meter.c
Normal file
709
include/Widgets/meter/lv_meter.c
Normal file
@@ -0,0 +1,709 @@
|
||||
/**
|
||||
* @file lv_meter.c
|
||||
*
|
||||
*/
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "lv_meter.h"
|
||||
#if LV_USE_METER != 0
|
||||
|
||||
#include "../../../misc/lv_assert.h"
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
#define MY_CLASS &lv_meter_class
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* STATIC PROTOTYPES
|
||||
**********************/
|
||||
static void lv_meter_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj);
|
||||
static void lv_meter_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj);
|
||||
static void lv_meter_event(const lv_obj_class_t * class_p, lv_event_t * e);
|
||||
static void draw_arcs(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area_t * scale_area);
|
||||
static void draw_ticks_and_labels(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area_t * scale_area);
|
||||
static void draw_needles(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area_t * scale_area);
|
||||
static void inv_arc(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t old_value, int32_t new_value);
|
||||
static void inv_line(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value);
|
||||
|
||||
/**********************
|
||||
* STATIC VARIABLES
|
||||
**********************/
|
||||
const lv_obj_class_t lv_meter_class = {
|
||||
.constructor_cb = lv_meter_constructor,
|
||||
.destructor_cb = lv_meter_destructor,
|
||||
.event_cb = lv_meter_event,
|
||||
.instance_size = sizeof(lv_meter_t),
|
||||
.base_class = &lv_obj_class
|
||||
};
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
/**********************
|
||||
* GLOBAL FUNCTIONS
|
||||
**********************/
|
||||
|
||||
lv_obj_t * lv_meter_create(lv_obj_t * parent)
|
||||
{
|
||||
LV_LOG_INFO("begin");
|
||||
lv_obj_t * obj = lv_obj_class_create_obj(MY_CLASS, parent);
|
||||
lv_obj_class_init_obj(obj);
|
||||
return obj;
|
||||
}
|
||||
|
||||
/*=====================
|
||||
* Add scale
|
||||
*====================*/
|
||||
|
||||
lv_meter_scale_t * lv_meter_add_scale(lv_obj_t * obj)
|
||||
{
|
||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
|
||||
lv_meter_scale_t * scale = _lv_ll_ins_head(&meter->scale_ll);
|
||||
LV_ASSERT_MALLOC(scale);
|
||||
lv_memset_00(scale, sizeof(lv_meter_scale_t));
|
||||
|
||||
scale->angle_range = 270;
|
||||
scale->rotation = 90 + (360 - scale->angle_range) / 2;
|
||||
scale->min = 0;
|
||||
scale->max = 100;
|
||||
scale->tick_cnt = 6;
|
||||
scale->tick_length = 8;
|
||||
scale->tick_width = 2;
|
||||
scale->label_gap = 2;
|
||||
|
||||
return scale;
|
||||
}
|
||||
|
||||
void lv_meter_set_scale_ticks(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t cnt, uint16_t width, uint16_t len,
|
||||
lv_color_t color)
|
||||
{
|
||||
scale->tick_cnt = cnt;
|
||||
scale->tick_width = width;
|
||||
scale->tick_length = len;
|
||||
scale->tick_color = color;
|
||||
lv_obj_invalidate(obj);
|
||||
}
|
||||
|
||||
void lv_meter_set_scale_major_ticks(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t nth, uint16_t width,
|
||||
uint16_t len, lv_color_t color, int16_t label_gap)
|
||||
{
|
||||
scale->tick_major_nth = nth;
|
||||
scale->tick_major_width = width;
|
||||
scale->tick_major_length = len;
|
||||
scale->tick_major_color = color;
|
||||
scale->label_gap = label_gap;
|
||||
lv_obj_invalidate(obj);
|
||||
}
|
||||
|
||||
void lv_meter_set_scale_range(lv_obj_t * obj, lv_meter_scale_t * scale, int32_t min, int32_t max, uint32_t angle_range,
|
||||
uint32_t rotation)
|
||||
{
|
||||
scale->min = min;
|
||||
scale->max = max;
|
||||
scale->angle_range = angle_range;
|
||||
scale->rotation = rotation;
|
||||
lv_obj_invalidate(obj);
|
||||
}
|
||||
|
||||
/*=====================
|
||||
* Add indicator
|
||||
*====================*/
|
||||
|
||||
lv_meter_indicator_t * lv_meter_add_needle_line(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t width,
|
||||
lv_color_t color, int16_t r_mod)
|
||||
{
|
||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
lv_meter_indicator_t * indic = _lv_ll_ins_head(&meter->indicator_ll);
|
||||
LV_ASSERT_MALLOC(indic);
|
||||
lv_memset_00(indic, sizeof(lv_meter_indicator_t));
|
||||
indic->scale = scale;
|
||||
indic->opa = LV_OPA_COVER;
|
||||
|
||||
indic->type = LV_METER_INDICATOR_TYPE_NEEDLE_LINE;
|
||||
indic->type_data.needle_line.width = width;
|
||||
indic->type_data.needle_line.color = color;
|
||||
indic->type_data.needle_line.r_mod = r_mod;
|
||||
lv_obj_invalidate(obj);
|
||||
|
||||
return indic;
|
||||
}
|
||||
|
||||
lv_meter_indicator_t * lv_meter_add_needle_img(lv_obj_t * obj, lv_meter_scale_t * scale, const void * src,
|
||||
lv_coord_t pivot_x, lv_coord_t pivot_y)
|
||||
{
|
||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
lv_meter_indicator_t * indic = _lv_ll_ins_head(&meter->indicator_ll);
|
||||
LV_ASSERT_MALLOC(indic);
|
||||
lv_memset_00(indic, sizeof(lv_meter_indicator_t));
|
||||
indic->scale = scale;
|
||||
indic->opa = LV_OPA_COVER;
|
||||
|
||||
indic->type = LV_METER_INDICATOR_TYPE_NEEDLE_IMG;
|
||||
indic->type_data.needle_img.src = src;
|
||||
indic->type_data.needle_img.pivot.x = pivot_x;
|
||||
indic->type_data.needle_img.pivot.y = pivot_y;
|
||||
lv_obj_invalidate(obj);
|
||||
|
||||
return indic;
|
||||
}
|
||||
|
||||
lv_meter_indicator_t * lv_meter_add_arc(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t width, lv_color_t color,
|
||||
int16_t r_mod)
|
||||
{
|
||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
lv_meter_indicator_t * indic = _lv_ll_ins_head(&meter->indicator_ll);
|
||||
LV_ASSERT_MALLOC(indic);
|
||||
lv_memset_00(indic, sizeof(lv_meter_indicator_t));
|
||||
indic->scale = scale;
|
||||
indic->opa = LV_OPA_COVER;
|
||||
|
||||
indic->type = LV_METER_INDICATOR_TYPE_ARC;
|
||||
indic->type_data.arc.width = width;
|
||||
indic->type_data.arc.color = color;
|
||||
indic->type_data.arc.r_mod = r_mod;
|
||||
|
||||
lv_obj_invalidate(obj);
|
||||
return indic;
|
||||
}
|
||||
|
||||
lv_meter_indicator_t * lv_meter_add_scale_lines(lv_obj_t * obj, lv_meter_scale_t * scale, lv_color_t color_start,
|
||||
lv_color_t color_end, bool local, int16_t width_mod)
|
||||
{
|
||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
lv_meter_indicator_t * indic = _lv_ll_ins_head(&meter->indicator_ll);
|
||||
LV_ASSERT_MALLOC(indic);
|
||||
lv_memset_00(indic, sizeof(lv_meter_indicator_t));
|
||||
indic->scale = scale;
|
||||
indic->opa = LV_OPA_COVER;
|
||||
|
||||
indic->type = LV_METER_INDICATOR_TYPE_SCALE_LINES;
|
||||
indic->type_data.scale_lines.color_start = color_start;
|
||||
indic->type_data.scale_lines.color_end = color_end;
|
||||
indic->type_data.scale_lines.local_grad = local;
|
||||
indic->type_data.scale_lines.width_mod = width_mod;
|
||||
|
||||
lv_obj_invalidate(obj);
|
||||
return indic;
|
||||
}
|
||||
|
||||
/*=====================
|
||||
* Set indicator value
|
||||
*====================*/
|
||||
|
||||
void lv_meter_set_indicator_value(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value)
|
||||
{
|
||||
int32_t old_start = indic->start_value;
|
||||
int32_t old_end = indic->end_value;
|
||||
indic->start_value = value;
|
||||
indic->end_value = value;
|
||||
|
||||
if(indic->type == LV_METER_INDICATOR_TYPE_ARC) {
|
||||
inv_arc(obj, indic, old_start, value);
|
||||
inv_arc(obj, indic, old_end, value);
|
||||
}
|
||||
else if(indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_IMG || indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_LINE) {
|
||||
inv_line(obj, indic, old_start);
|
||||
inv_line(obj, indic, old_end);
|
||||
inv_line(obj, indic, value);
|
||||
}
|
||||
else {
|
||||
lv_obj_invalidate(obj);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_meter_set_indicator_start_value(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value)
|
||||
{
|
||||
int32_t old_value = indic->start_value;
|
||||
indic->start_value = value;
|
||||
|
||||
if(indic->type == LV_METER_INDICATOR_TYPE_ARC) {
|
||||
inv_arc(obj, indic, old_value, value);
|
||||
}
|
||||
else if(indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_IMG || indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_LINE) {
|
||||
inv_line(obj, indic, old_value);
|
||||
inv_line(obj, indic, value);
|
||||
}
|
||||
else {
|
||||
lv_obj_invalidate(obj);
|
||||
}
|
||||
}
|
||||
|
||||
void lv_meter_set_indicator_end_value(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value)
|
||||
{
|
||||
int32_t old_value = indic->end_value;
|
||||
indic->end_value = value;
|
||||
|
||||
if(indic->type == LV_METER_INDICATOR_TYPE_ARC) {
|
||||
inv_arc(obj, indic, old_value, value);
|
||||
}
|
||||
else if(indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_IMG || indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_LINE) {
|
||||
inv_line(obj, indic, old_value);
|
||||
inv_line(obj, indic, value);
|
||||
}
|
||||
else {
|
||||
lv_obj_invalidate(obj);
|
||||
}
|
||||
}
|
||||
|
||||
/**********************
|
||||
* STATIC FUNCTIONS
|
||||
**********************/
|
||||
|
||||
static void lv_meter_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
|
||||
{
|
||||
LV_UNUSED(class_p);
|
||||
LV_TRACE_OBJ_CREATE("begin");
|
||||
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
|
||||
_lv_ll_init(&meter->scale_ll, sizeof(lv_meter_scale_t));
|
||||
_lv_ll_init(&meter->indicator_ll, sizeof(lv_meter_indicator_t));
|
||||
|
||||
LV_TRACE_OBJ_CREATE("finished");
|
||||
}
|
||||
|
||||
static void lv_meter_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
|
||||
{
|
||||
LV_UNUSED(class_p);
|
||||
LV_ASSERT_OBJ(obj, MY_CLASS);
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
_lv_ll_clear(&meter->indicator_ll);
|
||||
_lv_ll_clear(&meter->scale_ll);
|
||||
|
||||
}
|
||||
|
||||
static void lv_meter_event(const lv_obj_class_t * class_p, lv_event_t * e)
|
||||
{
|
||||
LV_UNUSED(class_p);
|
||||
|
||||
lv_res_t res = lv_obj_event_base(MY_CLASS, e);
|
||||
if(res != LV_RES_OK) return;
|
||||
|
||||
lv_event_code_t code = lv_event_get_code(e);
|
||||
lv_obj_t * obj = lv_event_get_target(e);
|
||||
if(code == LV_EVENT_DRAW_MAIN) {
|
||||
lv_draw_ctx_t * draw_ctx = lv_event_get_draw_ctx(e);
|
||||
lv_area_t scale_area;
|
||||
lv_obj_get_content_coords(obj, &scale_area);
|
||||
|
||||
draw_arcs(obj, draw_ctx, &scale_area);
|
||||
draw_ticks_and_labels(obj, draw_ctx, &scale_area);
|
||||
draw_needles(obj, draw_ctx, &scale_area);
|
||||
|
||||
lv_coord_t r_edge = lv_area_get_width(&scale_area) / 2;
|
||||
lv_point_t scale_center;
|
||||
scale_center.x = scale_area.x1 + r_edge;
|
||||
scale_center.y = scale_area.y1 + r_edge;
|
||||
|
||||
lv_draw_rect_dsc_t mid_dsc;
|
||||
lv_draw_rect_dsc_init(&mid_dsc);
|
||||
lv_obj_init_draw_rect_dsc(obj, LV_PART_INDICATOR, &mid_dsc);
|
||||
lv_coord_t w = lv_obj_get_style_width(obj, LV_PART_INDICATOR) / 2;
|
||||
lv_coord_t h = lv_obj_get_style_height(obj, LV_PART_INDICATOR) / 2;
|
||||
lv_area_t nm_cord;
|
||||
nm_cord.x1 = scale_center.x - w;
|
||||
nm_cord.y1 = scale_center.y - h;
|
||||
nm_cord.x2 = scale_center.x + w;
|
||||
nm_cord.y2 = scale_center.y + h;
|
||||
lv_draw_rect(draw_ctx, &mid_dsc, &nm_cord);
|
||||
}
|
||||
}
|
||||
|
||||
static void draw_arcs(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area_t * scale_area)
|
||||
{
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
|
||||
lv_draw_arc_dsc_t arc_dsc;
|
||||
lv_draw_arc_dsc_init(&arc_dsc);
|
||||
arc_dsc.rounded = lv_obj_get_style_arc_rounded(obj, LV_PART_ITEMS);
|
||||
|
||||
lv_coord_t r_out = lv_area_get_width(scale_area) / 2 ;
|
||||
lv_point_t scale_center;
|
||||
scale_center.x = scale_area->x1 + r_out;
|
||||
scale_center.y = scale_area->y1 + r_out;
|
||||
|
||||
lv_opa_t opa_main = lv_obj_get_style_opa(obj, LV_PART_MAIN);
|
||||
lv_meter_indicator_t * indic;
|
||||
|
||||
lv_obj_draw_part_dsc_t part_draw_dsc;
|
||||
lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx);
|
||||
part_draw_dsc.arc_dsc = &arc_dsc;
|
||||
part_draw_dsc.part = LV_PART_INDICATOR;
|
||||
part_draw_dsc.class_p = MY_CLASS;
|
||||
part_draw_dsc.type = LV_METER_DRAW_PART_ARC;
|
||||
|
||||
_LV_LL_READ_BACK(&meter->indicator_ll, indic) {
|
||||
if(indic->type != LV_METER_INDICATOR_TYPE_ARC) continue;
|
||||
|
||||
arc_dsc.color = indic->type_data.arc.color;
|
||||
arc_dsc.width = indic->type_data.arc.width;
|
||||
arc_dsc.opa = indic->opa > LV_OPA_MAX ? opa_main : (opa_main * indic->opa) >> 8;
|
||||
|
||||
lv_meter_scale_t * scale = indic->scale;
|
||||
|
||||
int32_t start_angle = lv_map(indic->start_value, scale->min, scale->max, scale->rotation,
|
||||
scale->rotation + scale->angle_range);
|
||||
int32_t end_angle = lv_map(indic->end_value, scale->min, scale->max, scale->rotation,
|
||||
scale->rotation + scale->angle_range);
|
||||
|
||||
part_draw_dsc.radius = r_out + indic->type_data.arc.r_mod;
|
||||
part_draw_dsc.sub_part_ptr = indic;
|
||||
part_draw_dsc.p1 = &scale_center;
|
||||
|
||||
lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
|
||||
lv_draw_arc(draw_ctx, &arc_dsc, &scale_center, part_draw_dsc.radius, start_angle, end_angle);
|
||||
lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc);
|
||||
}
|
||||
}
|
||||
|
||||
static void draw_ticks_and_labels(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area_t * scale_area)
|
||||
{
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
|
||||
lv_point_t p_center;
|
||||
lv_coord_t r_edge = LV_MIN(lv_area_get_width(scale_area) / 2, lv_area_get_height(scale_area) / 2);
|
||||
p_center.x = scale_area->x1 + r_edge;
|
||||
p_center.y = scale_area->y1 + r_edge;
|
||||
|
||||
uint8_t i;
|
||||
|
||||
lv_draw_line_dsc_t line_dsc;
|
||||
lv_draw_line_dsc_init(&line_dsc);
|
||||
lv_obj_init_draw_line_dsc(obj, LV_PART_TICKS, &line_dsc);
|
||||
line_dsc.raw_end = 1;
|
||||
|
||||
lv_draw_label_dsc_t label_dsc;
|
||||
lv_draw_label_dsc_init(&label_dsc);
|
||||
lv_obj_init_draw_label_dsc(obj, LV_PART_TICKS, &label_dsc);
|
||||
|
||||
lv_meter_scale_t * scale;
|
||||
|
||||
lv_draw_mask_radius_param_t inner_minor_mask;
|
||||
lv_draw_mask_radius_param_t inner_major_mask;
|
||||
lv_draw_mask_radius_param_t outer_mask;
|
||||
|
||||
lv_obj_draw_part_dsc_t part_draw_dsc;
|
||||
lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx);
|
||||
part_draw_dsc.class_p = MY_CLASS;
|
||||
part_draw_dsc.part = LV_PART_TICKS;
|
||||
part_draw_dsc.type = LV_METER_DRAW_PART_TICK;
|
||||
part_draw_dsc.line_dsc = &line_dsc;
|
||||
|
||||
_LV_LL_READ_BACK(&meter->scale_ll, scale) {
|
||||
part_draw_dsc.sub_part_ptr = scale;
|
||||
|
||||
lv_coord_t r_out = r_edge + scale->r_mod;
|
||||
lv_coord_t r_in_minor = r_out - scale->tick_length;
|
||||
lv_coord_t r_in_major = r_out - scale->tick_major_length;
|
||||
|
||||
lv_area_t area_inner_minor;
|
||||
area_inner_minor.x1 = p_center.x - r_in_minor;
|
||||
area_inner_minor.y1 = p_center.y - r_in_minor;
|
||||
area_inner_minor.x2 = p_center.x + r_in_minor;
|
||||
area_inner_minor.y2 = p_center.y + r_in_minor;
|
||||
lv_draw_mask_radius_init(&inner_minor_mask, &area_inner_minor, LV_RADIUS_CIRCLE, true);
|
||||
|
||||
lv_area_t area_inner_major;
|
||||
area_inner_major.x1 = p_center.x - r_in_major;
|
||||
area_inner_major.y1 = p_center.y - r_in_major;
|
||||
area_inner_major.x2 = p_center.x + r_in_major - 1;
|
||||
area_inner_major.y2 = p_center.y + r_in_major - 1;
|
||||
lv_draw_mask_radius_init(&inner_major_mask, &area_inner_major, LV_RADIUS_CIRCLE, true);
|
||||
|
||||
lv_area_t area_outer;
|
||||
area_outer.x1 = p_center.x - r_out;
|
||||
area_outer.y1 = p_center.y - r_out;
|
||||
area_outer.x2 = p_center.x + r_out - 1;
|
||||
area_outer.y2 = p_center.y + r_out - 1;
|
||||
lv_draw_mask_radius_init(&outer_mask, &area_outer, LV_RADIUS_CIRCLE, false);
|
||||
int16_t outer_mask_id = lv_draw_mask_add(&outer_mask, NULL);
|
||||
|
||||
int16_t inner_act_mask_id = LV_MASK_ID_INV; /*Will be added later*/
|
||||
|
||||
uint32_t minor_cnt = scale->tick_major_nth ? scale->tick_major_nth - 1 : 0xFFFF;
|
||||
for(i = 0; i < scale->tick_cnt; i++) {
|
||||
minor_cnt++;
|
||||
bool major = false;
|
||||
if(minor_cnt == scale->tick_major_nth) {
|
||||
minor_cnt = 0;
|
||||
major = true;
|
||||
}
|
||||
|
||||
int32_t value_of_line = lv_map(i, 0, scale->tick_cnt - 1, scale->min, scale->max);
|
||||
part_draw_dsc.value = value_of_line;
|
||||
|
||||
lv_color_t line_color = major ? scale->tick_major_color : scale->tick_color;
|
||||
lv_color_t line_color_ori = line_color;
|
||||
|
||||
lv_coord_t line_width_ori = major ? scale->tick_major_width : scale->tick_width;
|
||||
lv_coord_t line_width = line_width_ori;
|
||||
|
||||
lv_meter_indicator_t * indic;
|
||||
_LV_LL_READ_BACK(&meter->indicator_ll, indic) {
|
||||
if(indic->type != LV_METER_INDICATOR_TYPE_SCALE_LINES) continue;
|
||||
if(value_of_line >= indic->start_value && value_of_line <= indic->end_value) {
|
||||
line_width += indic->type_data.scale_lines.width_mod;
|
||||
|
||||
if(indic->type_data.scale_lines.color_start.full == indic->type_data.scale_lines.color_end.full) {
|
||||
line_color = indic->type_data.scale_lines.color_start;
|
||||
}
|
||||
else {
|
||||
lv_opa_t ratio;
|
||||
if(indic->type_data.scale_lines.local_grad) {
|
||||
ratio = lv_map(value_of_line, indic->start_value, indic->end_value, LV_OPA_TRANSP, LV_OPA_COVER);
|
||||
}
|
||||
else {
|
||||
ratio = lv_map(value_of_line, scale->min, scale->max, LV_OPA_TRANSP, LV_OPA_COVER);
|
||||
}
|
||||
line_color = lv_color_mix(indic->type_data.scale_lines.color_end, indic->type_data.scale_lines.color_start, ratio);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*`* 256` for extra precision*/
|
||||
int32_t angle_upscale = ((i * scale->angle_range) << 8) / (scale->tick_cnt - 1);
|
||||
|
||||
int32_t angle_low = (angle_upscale >> 8);
|
||||
int32_t angle_high = angle_low + 1;
|
||||
int32_t angle_rem = angle_upscale & 0xFF;
|
||||
|
||||
/*Interpolate sine and cos*/
|
||||
int32_t sin_low = lv_trigo_sin(angle_low + scale->rotation);
|
||||
int32_t sin_high = lv_trigo_sin(angle_high + scale->rotation);
|
||||
int32_t sin_mid = (sin_low * (256 - angle_rem) + sin_high * angle_rem) >> 8;
|
||||
|
||||
int32_t cos_low = lv_trigo_cos(angle_low + scale->rotation);
|
||||
int32_t cos_high = lv_trigo_cos(angle_high + scale->rotation);
|
||||
int32_t cos_mid = (cos_low * (256 - angle_rem) + cos_high * angle_rem) >> 8;
|
||||
|
||||
line_dsc.color = line_color;
|
||||
line_dsc.width = line_width;
|
||||
/*Use the interpolated angle to get the outer x and y coordinates.
|
||||
*Draw a little bit longer lines to be sure the mask will clip them correctly*/
|
||||
lv_point_t p_outer;
|
||||
p_outer.x = (int32_t)(((int32_t)cos_mid * (r_out + line_width) + 127) >> (LV_TRIGO_SHIFT)) + p_center.x;
|
||||
p_outer.y = (int32_t)(((int32_t)sin_mid * (r_out + line_width) + 127) >> (LV_TRIGO_SHIFT)) + p_center.y;
|
||||
|
||||
part_draw_dsc.p1 = &p_outer;
|
||||
part_draw_dsc.p1 = &p_center;
|
||||
part_draw_dsc.id = i;
|
||||
part_draw_dsc.label_dsc = &label_dsc;
|
||||
|
||||
/*Draw the text*/
|
||||
if(major) {
|
||||
lv_draw_mask_remove_id(outer_mask_id);
|
||||
uint32_t r_text = r_in_major - scale->label_gap;
|
||||
lv_point_t p;
|
||||
p.x = (int32_t)((int32_t)((int32_t)cos_mid * r_text + 127) >> LV_TRIGO_SHIFT) + p_center.x;
|
||||
p.y = (int32_t)((int32_t)((int32_t)sin_mid * r_text + 127) >> LV_TRIGO_SHIFT) + p_center.y;
|
||||
|
||||
lv_draw_label_dsc_t label_dsc_tmp;
|
||||
lv_memcpy(&label_dsc_tmp, &label_dsc, sizeof(label_dsc_tmp));
|
||||
|
||||
part_draw_dsc.label_dsc = &label_dsc_tmp;
|
||||
char buf[16];
|
||||
|
||||
lv_snprintf(buf, sizeof(buf), "%" LV_PRId32, value_of_line);
|
||||
part_draw_dsc.text = buf;
|
||||
|
||||
lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
|
||||
|
||||
lv_point_t label_size;
|
||||
lv_txt_get_size(&label_size, part_draw_dsc.text, label_dsc.font, label_dsc.letter_space, label_dsc.line_space,
|
||||
LV_COORD_MAX, LV_TEXT_FLAG_NONE);
|
||||
|
||||
lv_area_t label_cord;
|
||||
label_cord.x1 = p.x - label_size.x / 2;
|
||||
label_cord.y1 = p.y - label_size.y / 2;
|
||||
label_cord.x2 = label_cord.x1 + label_size.x;
|
||||
label_cord.y2 = label_cord.y1 + label_size.y;
|
||||
|
||||
lv_draw_label(draw_ctx, part_draw_dsc.label_dsc, &label_cord, part_draw_dsc.text, NULL);
|
||||
|
||||
outer_mask_id = lv_draw_mask_add(&outer_mask, NULL);
|
||||
}
|
||||
else {
|
||||
part_draw_dsc.label_dsc = NULL;
|
||||
part_draw_dsc.text = NULL;
|
||||
lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
|
||||
}
|
||||
|
||||
inner_act_mask_id = lv_draw_mask_add(major ? &inner_major_mask : &inner_minor_mask, NULL);
|
||||
lv_draw_line(draw_ctx, &line_dsc, &p_outer, &p_center);
|
||||
lv_draw_mask_remove_id(inner_act_mask_id);
|
||||
lv_event_send(obj, LV_EVENT_DRAW_MAIN_END, &part_draw_dsc);
|
||||
|
||||
line_dsc.color = line_color_ori;
|
||||
line_dsc.width = line_width_ori;
|
||||
|
||||
}
|
||||
lv_draw_mask_free_param(&inner_minor_mask);
|
||||
lv_draw_mask_free_param(&inner_major_mask);
|
||||
lv_draw_mask_free_param(&outer_mask);
|
||||
lv_draw_mask_remove_id(outer_mask_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void draw_needles(lv_obj_t * obj, lv_draw_ctx_t * draw_ctx, const lv_area_t * scale_area)
|
||||
{
|
||||
lv_meter_t * meter = (lv_meter_t *)obj;
|
||||
|
||||
lv_coord_t r_edge = lv_area_get_width(scale_area) / 2;
|
||||
lv_point_t scale_center;
|
||||
scale_center.x = scale_area->x1 + r_edge;
|
||||
scale_center.y = scale_area->y1 + r_edge;
|
||||
|
||||
lv_draw_line_dsc_t line_dsc;
|
||||
lv_draw_line_dsc_init(&line_dsc);
|
||||
lv_obj_init_draw_line_dsc(obj, LV_PART_ITEMS, &line_dsc);
|
||||
|
||||
lv_draw_img_dsc_t img_dsc;
|
||||
lv_draw_img_dsc_init(&img_dsc);
|
||||
lv_obj_init_draw_img_dsc(obj, LV_PART_ITEMS, &img_dsc);
|
||||
lv_opa_t opa_main = lv_obj_get_style_opa(obj, LV_PART_MAIN);
|
||||
|
||||
lv_obj_draw_part_dsc_t part_draw_dsc;
|
||||
lv_obj_draw_dsc_init(&part_draw_dsc, draw_ctx);
|
||||
part_draw_dsc.class_p = MY_CLASS;
|
||||
part_draw_dsc.p1 = &scale_center;
|
||||
|
||||
lv_meter_indicator_t * indic;
|
||||
_LV_LL_READ_BACK(&meter->indicator_ll, indic) {
|
||||
lv_meter_scale_t * scale = indic->scale;
|
||||
part_draw_dsc.sub_part_ptr = indic;
|
||||
|
||||
if(indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_LINE) {
|
||||
int32_t angle = lv_map(indic->end_value, scale->min, scale->max, scale->rotation, scale->rotation + scale->angle_range);
|
||||
lv_coord_t r_out = r_edge + scale->r_mod + indic->type_data.needle_line.r_mod;
|
||||
lv_point_t p_end;
|
||||
p_end.y = (lv_trigo_sin(angle) * (r_out)) / LV_TRIGO_SIN_MAX + scale_center.y;
|
||||
p_end.x = (lv_trigo_cos(angle) * (r_out)) / LV_TRIGO_SIN_MAX + scale_center.x;
|
||||
line_dsc.color = indic->type_data.needle_line.color;
|
||||
line_dsc.width = indic->type_data.needle_line.width;
|
||||
line_dsc.opa = indic->opa > LV_OPA_MAX ? opa_main : (opa_main * indic->opa) >> 8;
|
||||
|
||||
part_draw_dsc.id = LV_METER_DRAW_PART_NEEDLE_LINE;
|
||||
part_draw_dsc.line_dsc = &line_dsc;
|
||||
part_draw_dsc.p2 = &p_end;
|
||||
|
||||
lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
|
||||
lv_draw_line(draw_ctx, &line_dsc, &scale_center, &p_end);
|
||||
lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc);
|
||||
}
|
||||
else if(indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_IMG) {
|
||||
if(indic->type_data.needle_img.src == NULL) continue;
|
||||
|
||||
int32_t angle = lv_map(indic->end_value, scale->min, scale->max, scale->rotation, scale->rotation + scale->angle_range);
|
||||
lv_img_header_t info;
|
||||
lv_img_decoder_get_info(indic->type_data.needle_img.src, &info);
|
||||
lv_area_t a;
|
||||
a.x1 = scale_center.x - indic->type_data.needle_img.pivot.x;
|
||||
a.y1 = scale_center.y - indic->type_data.needle_img.pivot.y;
|
||||
a.x2 = a.x1 + info.w - 1;
|
||||
a.y2 = a.y1 + info.h - 1;
|
||||
|
||||
img_dsc.opa = indic->opa > LV_OPA_MAX ? opa_main : (opa_main * indic->opa) >> 8;
|
||||
img_dsc.pivot.x = indic->type_data.needle_img.pivot.x;
|
||||
img_dsc.pivot.y = indic->type_data.needle_img.pivot.y;
|
||||
angle = angle * 10;
|
||||
if(angle > 3600) angle -= 3600;
|
||||
img_dsc.angle = angle;
|
||||
|
||||
part_draw_dsc.img_dsc = &img_dsc;
|
||||
|
||||
lv_event_send(obj, LV_EVENT_DRAW_PART_BEGIN, &part_draw_dsc);
|
||||
lv_draw_img(draw_ctx, &img_dsc, &a, indic->type_data.needle_img.src);
|
||||
lv_event_send(obj, LV_EVENT_DRAW_PART_END, &part_draw_dsc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void inv_arc(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t old_value, int32_t new_value)
|
||||
{
|
||||
bool rounded = lv_obj_get_style_arc_rounded(obj, LV_PART_ITEMS);
|
||||
|
||||
lv_area_t scale_area;
|
||||
lv_obj_get_content_coords(obj, &scale_area);
|
||||
|
||||
lv_coord_t r_out = lv_area_get_width(&scale_area) / 2;
|
||||
lv_point_t scale_center;
|
||||
scale_center.x = scale_area.x1 + r_out;
|
||||
scale_center.y = scale_area.y1 + r_out;
|
||||
|
||||
r_out += indic->type_data.arc.r_mod;
|
||||
|
||||
lv_meter_scale_t * scale = indic->scale;
|
||||
|
||||
int32_t start_angle = lv_map(old_value, scale->min, scale->max, scale->rotation, scale->angle_range + scale->rotation);
|
||||
int32_t end_angle = lv_map(new_value, scale->min, scale->max, scale->rotation, scale->angle_range + scale->rotation);
|
||||
|
||||
lv_area_t a;
|
||||
lv_draw_arc_get_area(scale_center.x, scale_center.y, r_out, LV_MIN(start_angle, end_angle), LV_MAX(start_angle,
|
||||
end_angle), indic->type_data.arc.width, rounded, &a);
|
||||
lv_obj_invalidate_area(obj, &a);
|
||||
}
|
||||
|
||||
|
||||
static void inv_line(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value)
|
||||
{
|
||||
lv_area_t scale_area;
|
||||
lv_obj_get_content_coords(obj, &scale_area);
|
||||
|
||||
lv_coord_t r_out = lv_area_get_width(&scale_area) / 2;
|
||||
lv_point_t scale_center;
|
||||
scale_center.x = scale_area.x1 + r_out;
|
||||
scale_center.y = scale_area.y1 + r_out;
|
||||
|
||||
lv_meter_scale_t * scale = indic->scale;
|
||||
|
||||
if(indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_LINE) {
|
||||
int32_t angle = lv_map(value, scale->min, scale->max, scale->rotation, scale->rotation + scale->angle_range);
|
||||
r_out += scale->r_mod + indic->type_data.needle_line.r_mod;
|
||||
lv_point_t p_end;
|
||||
p_end.y = (lv_trigo_sin(angle) * (r_out)) / LV_TRIGO_SIN_MAX + scale_center.y;
|
||||
p_end.x = (lv_trigo_cos(angle) * (r_out)) / LV_TRIGO_SIN_MAX + scale_center.x;
|
||||
|
||||
lv_area_t a;
|
||||
a.x1 = LV_MIN(scale_center.x, p_end.x) - indic->type_data.needle_line.width - 2;
|
||||
a.y1 = LV_MIN(scale_center.y, p_end.y) - indic->type_data.needle_line.width - 2;
|
||||
a.x2 = LV_MAX(scale_center.x, p_end.x) + indic->type_data.needle_line.width + 2;
|
||||
a.y2 = LV_MAX(scale_center.y, p_end.y) + indic->type_data.needle_line.width + 2;
|
||||
|
||||
lv_obj_invalidate_area(obj, &a);
|
||||
}
|
||||
else if(indic->type == LV_METER_INDICATOR_TYPE_NEEDLE_IMG) {
|
||||
int32_t angle = lv_map(value, scale->min, scale->max, scale->rotation, scale->rotation + scale->angle_range);
|
||||
lv_img_header_t info;
|
||||
lv_img_decoder_get_info(indic->type_data.needle_img.src, &info);
|
||||
|
||||
angle = angle * 10;
|
||||
if(angle > 3600) angle -= 3600;
|
||||
|
||||
scale_center.x -= indic->type_data.needle_img.pivot.x;
|
||||
scale_center.y -= indic->type_data.needle_img.pivot.y;
|
||||
lv_area_t a;
|
||||
_lv_img_buf_get_transformed_area(&a, info.w, info.h, angle, LV_IMG_ZOOM_NONE, &indic->type_data.needle_img.pivot);
|
||||
a.x1 += scale_center.x - 2;
|
||||
a.y1 += scale_center.y - 2;
|
||||
a.x2 += scale_center.x + 2;
|
||||
a.y2 += scale_center.y + 2;
|
||||
|
||||
lv_obj_invalidate_area(obj, &a);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
267
include/Widgets/meter/lv_meter.h
Normal file
267
include/Widgets/meter/lv_meter.h
Normal file
@@ -0,0 +1,267 @@
|
||||
/**
|
||||
* @file lv_meter.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LV_METER_H
|
||||
#define LV_METER_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "lvgl.h"
|
||||
|
||||
#if LV_USE_METER != 0
|
||||
|
||||
/*Testing of dependencies*/
|
||||
#if LV_DRAW_COMPLEX == 0
|
||||
#error "lv_meter: Complex drawing is required. Enable it in lv_conf.h (LV_DRAW_COMPLEX 1)"
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
typedef struct {
|
||||
lv_color_t tick_color;
|
||||
uint16_t tick_cnt;
|
||||
uint16_t tick_length;
|
||||
uint16_t tick_width;
|
||||
|
||||
lv_color_t tick_major_color;
|
||||
uint16_t tick_major_nth;
|
||||
uint16_t tick_major_length;
|
||||
uint16_t tick_major_width;
|
||||
|
||||
int16_t label_gap;
|
||||
int16_t label_color;
|
||||
|
||||
int32_t min;
|
||||
int32_t max;
|
||||
int16_t r_mod;
|
||||
uint16_t angle_range;
|
||||
int16_t rotation;
|
||||
} lv_meter_scale_t;
|
||||
|
||||
enum {
|
||||
LV_METER_INDICATOR_TYPE_NEEDLE_IMG,
|
||||
LV_METER_INDICATOR_TYPE_NEEDLE_LINE,
|
||||
LV_METER_INDICATOR_TYPE_SCALE_LINES,
|
||||
LV_METER_INDICATOR_TYPE_ARC,
|
||||
};
|
||||
typedef uint8_t lv_meter_indicator_type_t;
|
||||
|
||||
typedef struct {
|
||||
lv_meter_scale_t * scale;
|
||||
lv_meter_indicator_type_t type;
|
||||
lv_opa_t opa;
|
||||
int32_t start_value;
|
||||
int32_t end_value;
|
||||
union {
|
||||
struct {
|
||||
const void * src;
|
||||
lv_point_t pivot;
|
||||
} needle_img;
|
||||
struct {
|
||||
uint16_t width;
|
||||
int16_t r_mod;
|
||||
lv_color_t color;
|
||||
} needle_line;
|
||||
struct {
|
||||
uint16_t width;
|
||||
const void * src;
|
||||
lv_color_t color;
|
||||
int16_t r_mod;
|
||||
} arc;
|
||||
struct {
|
||||
int16_t width_mod;
|
||||
lv_color_t color_start;
|
||||
lv_color_t color_end;
|
||||
uint8_t local_grad : 1;
|
||||
} scale_lines;
|
||||
} type_data;
|
||||
} lv_meter_indicator_t;
|
||||
|
||||
/*Data of line meter*/
|
||||
typedef struct {
|
||||
lv_obj_t obj;
|
||||
lv_ll_t scale_ll;
|
||||
lv_ll_t indicator_ll;
|
||||
} lv_meter_t;
|
||||
|
||||
extern const lv_obj_class_t lv_meter_class;
|
||||
|
||||
/**
|
||||
* `type` field in `lv_obj_draw_part_dsc_t` if `class_p = lv_meter_class`
|
||||
* Used in `LV_EVENT_DRAW_PART_BEGIN` and `LV_EVENT_DRAW_PART_END`
|
||||
*/
|
||||
typedef enum {
|
||||
LV_METER_DRAW_PART_ARC, /**< The arc indicator*/
|
||||
LV_METER_DRAW_PART_NEEDLE_LINE, /**< The needle lines*/
|
||||
LV_METER_DRAW_PART_NEEDLE_IMG, /**< The needle images*/
|
||||
LV_METER_DRAW_PART_TICK, /**< The tick lines and labels*/
|
||||
} lv_meter_draw_part_type_t;
|
||||
|
||||
/**********************
|
||||
* GLOBAL PROTOTYPES
|
||||
**********************/
|
||||
|
||||
/**
|
||||
* Create a Meter object
|
||||
* @param parent pointer to an object, it will be the parent of the new bar.
|
||||
* @return pointer to the created meter
|
||||
*/
|
||||
lv_obj_t * lv_meter_create(lv_obj_t * parent);
|
||||
|
||||
/*=====================
|
||||
* Add scale
|
||||
*====================*/
|
||||
|
||||
/**
|
||||
* Add a new scale to the meter.
|
||||
* @param obj pointer to a meter object
|
||||
* @return the new scale
|
||||
* @note Indicators can be attached to scales.
|
||||
*/
|
||||
lv_meter_scale_t * lv_meter_add_scale(lv_obj_t * obj);
|
||||
|
||||
/**
|
||||
* Set the properties of the ticks of a scale
|
||||
* @param obj pointer to a meter object
|
||||
* @param scale pointer to scale (added to `meter`)
|
||||
* @param cnt number of tick lines
|
||||
* @param width width of tick lines
|
||||
* @param len length of tick lines
|
||||
* @param color color of tick lines
|
||||
*/
|
||||
void lv_meter_set_scale_ticks(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t cnt, uint16_t width, uint16_t len,
|
||||
lv_color_t color);
|
||||
|
||||
/**
|
||||
* Make some "normal" ticks major ticks and set their attributes.
|
||||
* Texts with the current value are also added to the major ticks.
|
||||
* @param obj pointer to a meter object
|
||||
* @param scale pointer to scale (added to `meter`)
|
||||
* @param nth make every Nth normal tick major tick. (start from the first on the left)
|
||||
* @param width width of the major ticks
|
||||
* @param len length of the major ticks
|
||||
* @param color color of the major ticks
|
||||
* @param label_gap gap between the major ticks and the labels
|
||||
*/
|
||||
void lv_meter_set_scale_major_ticks(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t nth, uint16_t width,
|
||||
uint16_t len, lv_color_t color, int16_t label_gap);
|
||||
|
||||
/**
|
||||
* Set the value and angular range of a scale.
|
||||
* @param obj pointer to a meter object
|
||||
* @param scale pointer to scale (added to `meter`)
|
||||
* @param min the minimum value
|
||||
* @param max the maximal value
|
||||
* @param angle_range the angular range of the scale
|
||||
* @param rotation the angular offset from the 3 o'clock position (clock-wise)
|
||||
*/
|
||||
void lv_meter_set_scale_range(lv_obj_t * obj, lv_meter_scale_t * scale, int32_t min, int32_t max, uint32_t angle_range,
|
||||
uint32_t rotation);
|
||||
|
||||
/*=====================
|
||||
* Add indicator
|
||||
*====================*/
|
||||
|
||||
/**
|
||||
* Add a needle line indicator the scale
|
||||
* @param obj pointer to a meter object
|
||||
* @param scale pointer to scale (added to `meter`)
|
||||
* @param width width of the line
|
||||
* @param color color of the line
|
||||
* @param r_mod the radius modifier (added to the scale's radius) to get the lines length
|
||||
* @return the new indicator
|
||||
*/
|
||||
lv_meter_indicator_t * lv_meter_add_needle_line(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t width,
|
||||
lv_color_t color, int16_t r_mod);
|
||||
|
||||
/**
|
||||
* Add a needle image indicator the scale
|
||||
* @param obj pointer to a meter object
|
||||
* @param scale pointer to scale (added to `meter`)
|
||||
* @param src the image source of the indicator. path or pointer to ::lv_img_dsc_t
|
||||
* @param pivot_x the X pivot point of the needle
|
||||
* @param pivot_y the Y pivot point of the needle
|
||||
* @return the new indicator
|
||||
* @note the needle image should point to the right, like -O----->
|
||||
*/
|
||||
lv_meter_indicator_t * lv_meter_add_needle_img(lv_obj_t * obj, lv_meter_scale_t * scale, const void * src,
|
||||
lv_coord_t pivot_x, lv_coord_t pivot_y);
|
||||
|
||||
/**
|
||||
* Add an arc indicator the scale
|
||||
* @param obj pointer to a meter object
|
||||
* @param scale pointer to scale (added to `meter`)
|
||||
* @param width width of the arc
|
||||
* @param color color of the arc
|
||||
* @param r_mod the radius modifier (added to the scale's radius) to get the outer radius of the arc
|
||||
* @return the new indicator
|
||||
*/
|
||||
lv_meter_indicator_t * lv_meter_add_arc(lv_obj_t * obj, lv_meter_scale_t * scale, uint16_t width, lv_color_t color,
|
||||
int16_t r_mod);
|
||||
|
||||
|
||||
/**
|
||||
* Add a scale line indicator the scale. It will modify the ticks.
|
||||
* @param obj pointer to a meter object
|
||||
* @param scale pointer to scale (added to `meter`)
|
||||
* @param color_start the start color
|
||||
* @param color_end the end color
|
||||
* @param local tell how to map start and end color. true: the indicator's start and end_value; false: the scale's min max value
|
||||
* @param width_mod add this the affected tick's width
|
||||
* @return the new indicator
|
||||
*/
|
||||
lv_meter_indicator_t * lv_meter_add_scale_lines(lv_obj_t * obj, lv_meter_scale_t * scale, lv_color_t color_start,
|
||||
lv_color_t color_end, bool local, int16_t width_mod);
|
||||
|
||||
/*=====================
|
||||
* Set indicator value
|
||||
*====================*/
|
||||
|
||||
/**
|
||||
* Set the value of the indicator. It will set start and and value to the same value
|
||||
* @param obj pointer to a meter object
|
||||
* @param indic pointer to an indicator
|
||||
* @param value the new value
|
||||
*/
|
||||
void lv_meter_set_indicator_value(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value);
|
||||
|
||||
/**
|
||||
* Set the start value of the indicator.
|
||||
* @param obj pointer to a meter object
|
||||
* @param indic pointer to an indicator
|
||||
* @param value the new value
|
||||
*/
|
||||
void lv_meter_set_indicator_start_value(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value);
|
||||
|
||||
/**
|
||||
* Set the start value of the indicator.
|
||||
* @param obj pointer to a meter object
|
||||
* @param indic pointer to an indicator
|
||||
* @param value the new value
|
||||
*/
|
||||
void lv_meter_set_indicator_end_value(lv_obj_t * obj, lv_meter_indicator_t * indic, int32_t value);
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
#endif /*LV_USE_METER*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*LV_METER_H*/
|
||||
46
lib/README
Normal file
46
lib/README
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
This directory is intended for project specific (private) libraries.
|
||||
PlatformIO will compile them to static libraries and link into executable file.
|
||||
|
||||
The source code of each library should be placed in a an own separate directory
|
||||
("lib/your_library_name/[here are source files]").
|
||||
|
||||
For example, see a structure of the following two libraries `Foo` and `Bar`:
|
||||
|
||||
|--lib
|
||||
| |
|
||||
| |--Bar
|
||||
| | |--docs
|
||||
| | |--examples
|
||||
| | |--src
|
||||
| | |- Bar.c
|
||||
| | |- Bar.h
|
||||
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
|
||||
| |
|
||||
| |--Foo
|
||||
| | |- Foo.c
|
||||
| | |- Foo.h
|
||||
| |
|
||||
| |- README --> THIS FILE
|
||||
|
|
||||
|- platformio.ini
|
||||
|--src
|
||||
|- main.c
|
||||
|
||||
and a contents of `src/main.c`:
|
||||
```
|
||||
#include <Foo.h>
|
||||
#include <Bar.h>
|
||||
|
||||
int main (void)
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
PlatformIO Library Dependency Finder will find automatically dependent
|
||||
libraries scanning project source files.
|
||||
|
||||
More information about PlatformIO Library Dependency Finder
|
||||
- https://docs.platformio.org/page/librarymanager/ldf.html
|
||||
56
platformio.ini
Normal file
56
platformio.ini
Normal file
@@ -0,0 +1,56 @@
|
||||
;PlatformIO Project Configuration File
|
||||
;
|
||||
; Build options: build flags, source filter
|
||||
; Upload options: custom upload port, speed and extra flags
|
||||
; Library options: dependencies, extra library storages
|
||||
; Advanced options: extra scripting
|
||||
;
|
||||
; Please visit documentation for the other options and examples
|
||||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[env:mhetesp32minikit]
|
||||
platform = espressif32
|
||||
board = esp32dev
|
||||
framework = arduino
|
||||
monitor_speed = 115200
|
||||
|
||||
|
||||
#build_flags = -DCORE_DEBUG_LEVEL=0
|
||||
|
||||
#board_build.partitions = my.csv
|
||||
|
||||
#board_build.partitions = huge_app.csv
|
||||
|
||||
build_flags =
|
||||
-DLV_CONF_SKIP
|
||||
-DLV_CONF_INCLUDE_SIMPLE
|
||||
-DUSER_SETUP_LOADED=1
|
||||
-DST7796_DRIVER=1
|
||||
-DUSE_HSPI_PORT=1
|
||||
-DPIN_SDA=18
|
||||
-DPIN_SCL=19
|
||||
-DTFT_MISO=12
|
||||
-DTFT_MOSI=13
|
||||
-DTFT_SCLK=14
|
||||
-DTFT_CS=15
|
||||
-DTFT_DC=21
|
||||
-DTFT_RST=22
|
||||
-DTFT_BL=23
|
||||
-DLOAD_GLCD
|
||||
-DLOAD_FONT2
|
||||
-DLOAD_FONT4
|
||||
-DLOAD_FONT6
|
||||
-DLOAD_FONT7
|
||||
-DLOAD_FONT8
|
||||
-DLOAD_GFXFF
|
||||
-DSPI_FREQUENCY=27000000
|
||||
-DSPI_READ_FREQUENCY=20000000
|
||||
-DSPI_TOUCH_FREQUENCY=2500000
|
||||
-DSMOOTH_FONT
|
||||
-DTFT_BL=23
|
||||
|
||||
|
||||
lib_ldf_mode = deep+
|
||||
lib_deps =
|
||||
Bodmer/TFT_eSPI
|
||||
lvgl@~7.11.0
|
||||
182
src/FT62XXTouchScreen.h
Normal file
182
src/FT62XXTouchScreen.h
Normal file
@@ -0,0 +1,182 @@
|
||||
/*
|
||||
* Cribbed from https://github.com/adafruit/Adafruit_FT6206_Library but simplified a little for testing purposes.
|
||||
*/
|
||||
#ifndef _FT62XXTouchScreen_H_
|
||||
|
||||
#include <Wire.h>
|
||||
|
||||
#define _FT62XXTouchScreen_H_ 1
|
||||
|
||||
#define FT62XX_ADDR 0x38
|
||||
#define FT62XX_REG_MODE 0x00 //!< Device mode, either WORKING or FACTORY
|
||||
#define FT62XX_REG_CALIBRATE 0x02 //!< Calibrate mode
|
||||
#define FT62XX_REG_WORKMODE 0x00 //!< Work mode
|
||||
#define FT62XX_REG_FACTORYMODE 0x40 //!< Factory mode
|
||||
#define FT62XX_REG_THRESHHOLD 0x80 //!< Threshold for touch detection
|
||||
#define FT62XX_REG_POINTRATE 0x88 //!< Point rate
|
||||
#define FT62XX_REG_FIRMVERS 0xA6 //!< Firmware version
|
||||
#define FT62XX_REG_CHIPID 0xA3 //!< Chip selecting
|
||||
#define FT62XX_REG_VENDID 0xA8 //!< FocalTech's panel ID
|
||||
|
||||
#define FT62XX_VENDID 0x11 //!< FocalTech's panel ID
|
||||
#define FT6206_CHIPID 0x06 //!< Chip selecting
|
||||
#define FT6236_CHIPID 0x36 //!< Chip selecting
|
||||
#define FT6236U_CHIPID 0x64 //!< Chip selecting
|
||||
|
||||
typedef struct TouchPoint {
|
||||
uint16_t xPos;
|
||||
uint16_t yPos;
|
||||
uint16_t touched;
|
||||
} TouchPoint;
|
||||
|
||||
class FT62XXTouchScreen {
|
||||
|
||||
public:
|
||||
FT62XXTouchScreen(uint16_t displayHeight, uint8_t sda, uint8_t scl) : m_displayHeight(displayHeight), m_sda(sda), m_scl(scl) {
|
||||
}
|
||||
|
||||
bool begin() {
|
||||
Wire.begin(m_sda, m_scl);
|
||||
#ifdef TOUCHSCREEN_DEBUG
|
||||
Serial.print("Vend ID: 0x");
|
||||
Serial.println(readByteFromTouch(FT62XX_REG_VENDID), HEX);
|
||||
Serial.print("Chip ID: 0x");
|
||||
Serial.println(readByteFromTouch(FT62XX_REG_CHIPID), HEX);
|
||||
Serial.print("Firm V: ");
|
||||
Serial.println(readByteFromTouch(FT62XX_REG_FIRMVERS));
|
||||
Serial.print("Point Rate Hz: ");
|
||||
Serial.println(readByteFromTouch(FT62XX_REG_POINTRATE));
|
||||
Serial.print("Thresh: ");
|
||||
Serial.println(readByteFromTouch(FT62XX_REG_THRESHHOLD));
|
||||
|
||||
// dump all registers
|
||||
for (int16_t i = 0; i < 0x10; i++) {
|
||||
Serial.print("I2C $");
|
||||
Serial.print(i, HEX);
|
||||
Serial.print(" = 0x");
|
||||
Serial.println(readByteFromTouch(i), HEX);
|
||||
}
|
||||
#endif
|
||||
|
||||
// change threshhold to be higher/lower
|
||||
//writeByteToTouch(FT62XX_REG_THRESHHOLD, FT62XX_DEFAULT_THRESHOLD);
|
||||
|
||||
if (readByteFromTouch(FT62XX_REG_VENDID) != FT62XX_VENDID) {
|
||||
return false;
|
||||
}
|
||||
uint8_t id = readByteFromTouch(FT62XX_REG_CHIPID);
|
||||
if ((id != FT6206_CHIPID) && (id != FT6236_CHIPID) &&
|
||||
(id != FT6236U_CHIPID)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
TouchPoint read(void) {
|
||||
|
||||
TouchPoint retPoint = {0};
|
||||
|
||||
uint8_t i2cdat[16];
|
||||
Wire.beginTransmission(FT62XX_ADDR);
|
||||
Wire.write((byte)0);
|
||||
Wire.endTransmission();
|
||||
|
||||
Wire.requestFrom((byte)FT62XX_ADDR, (byte)16);
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
i2cdat[i] = Wire.read();
|
||||
}
|
||||
|
||||
#ifdef TOUCHSCREEN_DEBUG
|
||||
for (int16_t i = 0; i < 16; i++) {
|
||||
Serial.print("I2C $");
|
||||
Serial.print(i, HEX);
|
||||
Serial.print(" = 0x");
|
||||
Serial.println(i2cdat[i], HEX);
|
||||
}
|
||||
#endif
|
||||
|
||||
uint8_t touches = i2cdat[0x02];
|
||||
|
||||
if (touches != 1) {
|
||||
return retPoint;
|
||||
}
|
||||
|
||||
#ifdef TOUCHSCREEN_DEBUG
|
||||
Serial.print("# Touches: ");
|
||||
Serial.println(touches);
|
||||
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
Serial.print("0x");
|
||||
Serial.print(i2cdat[i], HEX);
|
||||
Serial.print(" ");
|
||||
}
|
||||
Serial.println();
|
||||
if (i2cdat[0x01] != 0x00) {
|
||||
Serial.print("Gesture #");
|
||||
Serial.println(i2cdat[0x01]);
|
||||
}
|
||||
#endif
|
||||
|
||||
uint16_t touchY = i2cdat[0x03] & 0x0F;
|
||||
touchY <<= 8;
|
||||
touchY |= i2cdat[0x04];
|
||||
uint16_t touchX = i2cdat[0x05] & 0x0F;
|
||||
touchX <<= 8;
|
||||
touchX |= i2cdat[0x06];
|
||||
uint16_t touchID = i2cdat[0x05] >> 4;
|
||||
|
||||
#ifdef TOUCHSCREEN_DEBUG
|
||||
Serial.println();
|
||||
for (uint8_t i = 0; i < touches; i++) {
|
||||
Serial.print("ID #");
|
||||
Serial.print(touchID);
|
||||
Serial.print("\t(");
|
||||
Serial.print(touchX);
|
||||
Serial.print(", ");
|
||||
Serial.print(touchY);
|
||||
Serial.print(") ");
|
||||
}
|
||||
Serial.println();
|
||||
#endif
|
||||
|
||||
touchY = m_displayHeight - touchY;
|
||||
|
||||
retPoint.xPos = touchX;
|
||||
retPoint.yPos = touchY;
|
||||
retPoint.touched = -1;
|
||||
|
||||
return retPoint;
|
||||
}
|
||||
|
||||
private:
|
||||
uint16_t m_displayHeight;
|
||||
uint8_t m_sda;
|
||||
uint8_t m_scl;
|
||||
|
||||
uint8_t readByteFromTouch(uint8_t reg) {
|
||||
Wire.beginTransmission(FT62XX_ADDR);
|
||||
Wire.write((byte)reg);
|
||||
Wire.endTransmission();
|
||||
|
||||
Wire.requestFrom((byte)FT62XX_ADDR, (byte)1);
|
||||
uint8_t x = Wire.read();
|
||||
#ifdef TOUCHSCREEN_DEBUG
|
||||
Serial.print("$");
|
||||
Serial.print(reg, HEX);
|
||||
Serial.print(": 0x");
|
||||
Serial.println(x, HEX);
|
||||
#endif
|
||||
return x;
|
||||
}
|
||||
|
||||
void writeByteToTouch(uint8_t reg, uint8_t val) {
|
||||
Wire.beginTransmission(FT62XX_ADDR);
|
||||
Wire.write((byte)reg);
|
||||
Wire.write((byte)val);
|
||||
Wire.endTransmission();
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
71
src/img_hand.c
Normal file
71
src/img_hand.c
Normal file
@@ -0,0 +1,71 @@
|
||||
//#include "../lv_examples.h"
|
||||
#include "Arduino.h"
|
||||
#include "lvgl.h"
|
||||
|
||||
|
||||
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||
#endif
|
||||
|
||||
#ifndef LV_ATTRIBUTE_IMG_IMG_HAND
|
||||
#define LV_ATTRIBUTE_IMG_IMG_HAND
|
||||
#endif
|
||||
|
||||
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_IMG_HAND uint8_t img_hand_map[] = {
|
||||
#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8
|
||||
/*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x04, 0x6e, 0x1c, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x47, 0x00, 0x57, 0x25, 0x57, 0x49, 0x08, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x6d, 0x0c, 0x49, 0x74, 0x24, 0xeb, 0x24, 0xf0, 0x49, 0xbc, 0x49, 0x04, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x03, 0x24, 0x8f, 0x24, 0xfb, 0x00, 0xff, 0x00, 0xff, 0x00, 0xec, 0x24, 0x87, 0x49, 0x13, 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, 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, 0x00, 0x00,
|
||||
0x92, 0x0f, 0x49, 0xcb, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x24, 0xc4, 0xdb, 0x04, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0xa0, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x25, 0xf8, 0x24, 0xa8, 0x6e, 0x47, 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, 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, 0x4b, 0x00, 0xff, 0x24, 0xdb, 0x6e, 0x54, 0x6d, 0x50, 0x00, 0xb8, 0x00, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xfb, 0x49, 0xe8, 0x49, 0xe4, 0x49, 0xdc, 0x49, 0xd7, 0x49, 0xd0, 0x49, 0xb3, 0x49, 0xb0, 0x49, 0xaf, 0x49, 0xab, 0x49, 0xa7, 0x49, 0x87, 0x49, 0x84, 0x49, 0x80, 0x49, 0x7f, 0x49, 0x7b, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x24, 0x57, 0x00, 0x57, 0x00, 0x57, 0x24, 0x57, 0x24, 0x57, 0x24, 0x57, 0x24, 0x57, 0x24, 0x57, 0x24, 0x57, 0x25, 0x9c, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x25, 0xff, 0x49, 0xa0, 0x24, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x57, 0x25, 0x57, 0x25, 0x57, 0x24, 0x57, 0x24, 0x57, 0x25, 0x57, 0x24, 0x57, 0x24, 0x57, 0x24, 0x57, 0x24, 0x57, 0x24, 0x57, 0x24, 0x57, 0x24, 0x57, 0x49, 0x50,
|
||||
0x49, 0xb7, 0x00, 0xff, 0x49, 0x8c, 0x6e, 0x04, 0x6e, 0x0f, 0x25, 0x37, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x24, 0xff, 0x24, 0xff, 0x24, 0xff, 0x24, 0xff, 0x24, 0xff, 0x24, 0xfc, 0x24, 0xfb, 0x24, 0xf8, 0x24, 0xf7, 0x24, 0xf4, 0x24, 0xf3, 0x24, 0xf3, 0x24, 0xf3, 0x00, 0xf0, 0x00, 0xec, 0x00, 0xeb, 0x00, 0xeb, 0x00, 0xeb, 0x00, 0xeb, 0x24, 0xe8,
|
||||
0x49, 0x77, 0x00, 0xff, 0x24, 0x8b, 0x92, 0x03, 0x6e, 0x14, 0x49, 0x5c, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x24, 0xff, 0x24, 0xff, 0x24, 0xff, 0x24, 0xff, 0x24, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x25, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xff, 0x49, 0xfc, 0x49, 0xf7, 0x49, 0xb7, 0x49, 0xa8, 0x49, 0xa3, 0x49, 0xa3, 0x49, 0xa8, 0x49, 0x93, 0x49, 0x7f, 0x49, 0x6b, 0x25, 0x5c, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x00, 0x57, 0x24, 0x57, 0x00, 0x57, 0x24, 0x9c, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x49, 0xff, 0x49, 0x90, 0x24, 0x54, 0x25, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x57, 0x49, 0x53, 0x6d, 0x4b, 0x6d, 0x44, 0x6e, 0x37, 0x6e, 0x2f, 0x6e, 0x27, 0x6e, 0x24, 0x6e, 0x24, 0x6e, 0x24, 0x92, 0x17, 0xb7, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x25, 0x30, 0x00, 0xf4, 0x00, 0xff, 0x49, 0xff, 0x49, 0xff, 0x00, 0xff, 0x00, 0xff, 0x49, 0x70, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0xcc, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x24, 0xf8, 0x24, 0xa8, 0x6d, 0x74, 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, 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, 0x6d, 0x2b, 0x00, 0xf3, 0x00, 0xff, 0x00, 0xff, 0x00, 0xf3, 0x24, 0x48, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x18, 0x49, 0xd8, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xec, 0x24, 0x87, 0x49, 0x13, 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, 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, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x92, 0x0c, 0x49, 0x5f, 0x49, 0x8c, 0x92, 0x17, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x54, 0x00, 0x57, 0x25, 0x57, 0x49, 0x0b, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
#endif
|
||||
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0
|
||||
/*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x84, 0x04, 0x2c, 0x63, 0x1c, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x52, 0x47, 0x20, 0x00, 0x57, 0x04, 0x21, 0x57, 0xe7, 0x39, 0x08, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xeb, 0x5a, 0x0c, 0xc7, 0x39, 0x74, 0xc3, 0x18, 0xeb, 0xc3, 0x18, 0xf0, 0xc7, 0x39, 0xbc, 0xe8, 0x41, 0x04, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x10, 0x03, 0xe4, 0x20, 0x8f, 0xa3, 0x18, 0xfb, 0x20, 0x00, 0xff, 0x21, 0x08, 0xff, 0x61, 0x08, 0xec, 0x04, 0x21, 0x87, 0x49, 0x4a, 0x13, 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, 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, 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, 0x00, 0x00, 0x00,
|
||||
0xef, 0x7b, 0x0f, 0xa7, 0x39, 0xcb, 0x20, 0x00, 0xff, 0x21, 0x08, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0xc3, 0x18, 0xc4, 0xd7, 0xbd, 0x04, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x29, 0xa0, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x45, 0x29, 0xf8, 0xa3, 0x18, 0xa8, 0x2d, 0x6b, 0x47, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x62, 0x10, 0x4b, 0x62, 0x10, 0xff, 0xc3, 0x18, 0xdb, 0x0c, 0x63, 0x54, 0xeb, 0x5a, 0x50, 0x82, 0x10, 0xb8, 0x21, 0x08, 0xff, 0x04, 0x21, 0xff, 0xc7, 0x39, 0xff, 0xe7, 0x39, 0xff, 0x86, 0x31, 0xff, 0xe8, 0x41, 0xff, 0xe8, 0x41, 0xff, 0xe8, 0x41, 0xff, 0x08, 0x42, 0xff, 0x08, 0x42, 0xfb, 0x28, 0x42, 0xe8, 0x28, 0x42, 0xe4, 0x29, 0x4a, 0xdc, 0x29, 0x4a, 0xd7, 0x29, 0x4a, 0xd0, 0x49, 0x4a, 0xb3, 0x49, 0x4a, 0xb0, 0x49, 0x4a, 0xaf, 0x49, 0x4a, 0xab, 0x49, 0x4a, 0xa7, 0x29, 0x4a, 0x87, 0x29, 0x4a, 0x84, 0x28, 0x42, 0x80, 0x28, 0x42, 0x7f, 0x08, 0x42, 0x7b, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x20, 0x00, 0x57, 0x21, 0x08, 0x57, 0x20, 0x00, 0x57, 0x20, 0x00, 0x57, 0x21, 0x08, 0x57, 0x41, 0x08, 0x57, 0x41, 0x08, 0x57, 0x21, 0x08, 0x57, 0x41, 0x08, 0x57, 0x41, 0x08, 0x57, 0x41, 0x08, 0x57, 0x61, 0x08, 0x57, 0x41, 0x08, 0x57, 0x61, 0x08, 0x57, 0x61, 0x08, 0x57, 0x82, 0x10, 0x57, 0x82, 0x10, 0x57, 0x82, 0x10, 0x57, 0x82, 0x10, 0x57, 0x82, 0x10, 0x57, 0xa2, 0x10, 0x57, 0xa3, 0x18, 0x57, 0xa2, 0x10, 0x57, 0xa2, 0x10, 0x57, 0xa3, 0x18, 0x57, 0x86, 0x31, 0x9c, 0x61, 0x08, 0xff, 0x21, 0x08, 0xff, 0x41, 0x08, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x41, 0x08, 0xff, 0x21, 0x08, 0xff, 0x20, 0x00, 0xff, 0x00, 0x00, 0xff, 0x20, 0x00, 0xff, 0x25, 0x29, 0xff, 0x08, 0x42, 0xa0, 0xc3, 0x18, 0x57, 0xc7, 0x39, 0x57, 0xe8, 0x41, 0x57, 0x08, 0x42, 0x57, 0xe8, 0x41, 0x57, 0xa7, 0x39, 0x57, 0xa6, 0x31, 0x57, 0xa6, 0x31, 0x57, 0xa7, 0x39, 0x57, 0xa7, 0x39, 0x57, 0x66, 0x31, 0x57, 0x25, 0x29, 0x57, 0x04, 0x21, 0x57, 0x04, 0x21, 0x57, 0x04, 0x21, 0x57, 0x04, 0x21, 0x57, 0xc3, 0x18, 0x57, 0xa2, 0x10, 0x57, 0xa3, 0x18, 0x57, 0xc3, 0x18, 0x57, 0xa2, 0x10, 0x57, 0xa3, 0x18, 0x57, 0x28, 0x42, 0x50,
|
||||
0x49, 0x4a, 0xb7, 0x20, 0x00, 0xff, 0xa7, 0x39, 0x8c, 0x8e, 0x73, 0x04, 0x8e, 0x73, 0x0f, 0x04, 0x21, 0x37, 0x82, 0x10, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x21, 0x08, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x20, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x21, 0x08, 0xff, 0x21, 0x08, 0xff, 0x21, 0x08, 0xff, 0x00, 0x00, 0xff, 0x21, 0x08, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x20, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x21, 0x08, 0xff, 0x61, 0x08, 0xff, 0x82, 0x10, 0xff, 0xa3, 0x18, 0xff, 0xa3, 0x18, 0xff, 0xa2, 0x10, 0xff, 0xa3, 0x18, 0xff, 0xc3, 0x18, 0xff, 0xc3, 0x18, 0xfc, 0xc3, 0x18, 0xfb, 0xc3, 0x18, 0xf8, 0xa3, 0x18, 0xf7, 0xa3, 0x18, 0xf4, 0xa3, 0x18, 0xf3, 0xa2, 0x10, 0xf3, 0xa2, 0x10, 0xf3, 0x82, 0x10, 0xf0, 0x41, 0x08, 0xec, 0x00, 0x00, 0xeb, 0x20, 0x00, 0xeb, 0x21, 0x08, 0xeb, 0x00, 0x00, 0xeb, 0xe3, 0x18, 0xe8,
|
||||
0xc7, 0x39, 0x77, 0x82, 0x10, 0xff, 0x04, 0x21, 0x8b, 0x10, 0x84, 0x03, 0x4d, 0x6b, 0x14, 0x6a, 0x52, 0x5c, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x21, 0x08, 0xff, 0x21, 0x08, 0xff, 0x21, 0x08, 0xff, 0x21, 0x08, 0xff, 0x41, 0x08, 0xff, 0x62, 0x10, 0xff, 0xa2, 0x10, 0xff, 0xa2, 0x10, 0xff, 0xa3, 0x18, 0xff, 0xc3, 0x18, 0xff, 0xe3, 0x18, 0xff, 0x25, 0x29, 0xff, 0x25, 0x29, 0xff, 0x25, 0x29, 0xff, 0x25, 0x29, 0xff, 0x25, 0x29, 0xff, 0xc7, 0x39, 0xff, 0xe7, 0x39, 0xff, 0xe8, 0x41, 0xff, 0x08, 0x42, 0xfc, 0x08, 0x42, 0xf7, 0x49, 0x4a, 0xb7, 0x49, 0x4a, 0xa8, 0x49, 0x4a, 0xa3, 0x49, 0x4a, 0xa3, 0x49, 0x4a, 0xa8, 0x49, 0x4a, 0x93, 0x28, 0x42, 0x7f, 0xa7, 0x39, 0x6b, 0x04, 0x21, 0x5c, 0x41, 0x08, 0x57, 0x00, 0x00, 0x57, 0x20, 0x00, 0x57, 0x41, 0x08, 0x57, 0x61, 0x08, 0x57, 0x61, 0x08, 0x57, 0x62, 0x10, 0x57, 0xa2, 0x10, 0x57, 0x82, 0x10, 0x57, 0xe4, 0x20, 0x9c, 0x41, 0x08, 0xff, 0x00, 0x00, 0xff, 0x21, 0x08, 0xff, 0x20, 0x00, 0xff, 0x00, 0x00, 0xff, 0x41, 0x08, 0xff, 0x21, 0x08, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x41, 0x08, 0xff, 0x86, 0x31, 0xff, 0x29, 0x4a, 0x90, 0x82, 0x10, 0x54, 0x25, 0x29, 0x57, 0xa7, 0x39, 0x57, 0xe8, 0x41, 0x57, 0x08, 0x42, 0x57, 0x49, 0x4a, 0x57, 0x8a, 0x52, 0x53, 0xab, 0x5a, 0x4b, 0xcb, 0x5a, 0x44, 0x0c, 0x63, 0x37, 0x4d, 0x6b, 0x2f, 0x6e, 0x73, 0x27, 0x6e, 0x73, 0x24, 0x6e, 0x73, 0x24, 0x6e, 0x73, 0x24, 0xcf, 0x7b, 0x17, 0x55, 0xad, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x24, 0x21, 0x30, 0x61, 0x08, 0xf4, 0x21, 0x08, 0xff, 0xc7, 0x39, 0xff, 0xa6, 0x31, 0xff, 0x41, 0x08, 0xff, 0x82, 0x10, 0xff, 0xc7, 0x39, 0x70, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x31, 0xcc, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x20, 0x00, 0xff, 0x20, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x04, 0x21, 0xf8, 0xa2, 0x10, 0xa8, 0xaa, 0x52, 0x74, 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, 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, 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, 0xaa, 0x52, 0x2b, 0x62, 0x10, 0xf3, 0x62, 0x10, 0xff, 0x82, 0x10, 0xff, 0x82, 0x10, 0xf3, 0xc3, 0x18, 0x48, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0x5a, 0x18, 0xa6, 0x31, 0xd8, 0x62, 0x10, 0xff, 0x00, 0x00, 0xff, 0x21, 0x08, 0xff, 0x61, 0x08, 0xec, 0xc3, 0x18, 0x87, 0xc7, 0x39, 0x13, 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, 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, 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, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x7b, 0x0c, 0xe8, 0x41, 0x5f, 0x08, 0x42, 0x8c, 0xae, 0x73, 0x17, 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, 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, 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, 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, 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, 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, 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, 0x00, 0xc7, 0x39, 0x54, 0x21, 0x08, 0x57, 0x24, 0x21, 0x57, 0xe7, 0x39, 0x0b, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
#endif
|
||||
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0
|
||||
/*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x10, 0x04, 0x63, 0x2c, 0x1c, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x52, 0x8a, 0x47, 0x00, 0x20, 0x57, 0x21, 0x04, 0x57, 0x39, 0xe7, 0x08, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x5a, 0xeb, 0x0c, 0x39, 0xc7, 0x74, 0x18, 0xc3, 0xeb, 0x18, 0xc3, 0xf0, 0x39, 0xc7, 0xbc, 0x41, 0xe8, 0x04, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x82, 0x03, 0x20, 0xe4, 0x8f, 0x18, 0xa3, 0xfb, 0x00, 0x20, 0xff, 0x08, 0x21, 0xff, 0x08, 0x61, 0xec, 0x21, 0x04, 0x87, 0x4a, 0x49, 0x13, 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, 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, 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, 0x00, 0x00, 0x00,
|
||||
0x7b, 0xef, 0x0f, 0x39, 0xa7, 0xcb, 0x00, 0x20, 0xff, 0x08, 0x21, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x18, 0xc3, 0xc4, 0xbd, 0xd7, 0x04, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x45, 0xa0, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x29, 0x45, 0xf8, 0x18, 0xa3, 0xa8, 0x6b, 0x2d, 0x47, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0x62, 0x4b, 0x10, 0x62, 0xff, 0x18, 0xc3, 0xdb, 0x63, 0x0c, 0x54, 0x5a, 0xeb, 0x50, 0x10, 0x82, 0xb8, 0x08, 0x21, 0xff, 0x21, 0x04, 0xff, 0x39, 0xc7, 0xff, 0x39, 0xe7, 0xff, 0x31, 0x86, 0xff, 0x41, 0xe8, 0xff, 0x41, 0xe8, 0xff, 0x41, 0xe8, 0xff, 0x42, 0x08, 0xff, 0x42, 0x08, 0xfb, 0x42, 0x28, 0xe8, 0x42, 0x28, 0xe4, 0x4a, 0x29, 0xdc, 0x4a, 0x29, 0xd7, 0x4a, 0x29, 0xd0, 0x4a, 0x49, 0xb3, 0x4a, 0x49, 0xb0, 0x4a, 0x49, 0xaf, 0x4a, 0x49, 0xab, 0x4a, 0x49, 0xa7, 0x4a, 0x29, 0x87, 0x4a, 0x29, 0x84, 0x42, 0x28, 0x80, 0x42, 0x28, 0x7f, 0x42, 0x08, 0x7b, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x00, 0x57, 0x00, 0x20, 0x57, 0x08, 0x21, 0x57, 0x00, 0x20, 0x57, 0x00, 0x20, 0x57, 0x08, 0x21, 0x57, 0x08, 0x41, 0x57, 0x08, 0x41, 0x57, 0x08, 0x21, 0x57, 0x08, 0x41, 0x57, 0x08, 0x41, 0x57, 0x08, 0x41, 0x57, 0x08, 0x61, 0x57, 0x08, 0x41, 0x57, 0x08, 0x61, 0x57, 0x08, 0x61, 0x57, 0x10, 0x82, 0x57, 0x10, 0x82, 0x57, 0x10, 0x82, 0x57, 0x10, 0x82, 0x57, 0x10, 0x82, 0x57, 0x10, 0xa2, 0x57, 0x18, 0xa3, 0x57, 0x10, 0xa2, 0x57, 0x10, 0xa2, 0x57, 0x18, 0xa3, 0x57, 0x31, 0x86, 0x9c, 0x08, 0x61, 0xff, 0x08, 0x21, 0xff, 0x08, 0x41, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x08, 0x41, 0xff, 0x08, 0x21, 0xff, 0x00, 0x20, 0xff, 0x00, 0x00, 0xff, 0x00, 0x20, 0xff, 0x29, 0x25, 0xff, 0x42, 0x08, 0xa0, 0x18, 0xc3, 0x57, 0x39, 0xc7, 0x57, 0x41, 0xe8, 0x57, 0x42, 0x08, 0x57, 0x41, 0xe8, 0x57, 0x39, 0xa7, 0x57, 0x31, 0xa6, 0x57, 0x31, 0xa6, 0x57, 0x39, 0xa7, 0x57, 0x39, 0xa7, 0x57, 0x31, 0x66, 0x57, 0x29, 0x25, 0x57, 0x21, 0x04, 0x57, 0x21, 0x04, 0x57, 0x21, 0x04, 0x57, 0x21, 0x04, 0x57, 0x18, 0xc3, 0x57, 0x10, 0xa2, 0x57, 0x18, 0xa3, 0x57, 0x18, 0xc3, 0x57, 0x10, 0xa2, 0x57, 0x18, 0xa3, 0x57, 0x42, 0x28, 0x50,
|
||||
0x4a, 0x49, 0xb7, 0x00, 0x20, 0xff, 0x39, 0xa7, 0x8c, 0x73, 0x8e, 0x04, 0x73, 0x8e, 0x0f, 0x21, 0x04, 0x37, 0x10, 0x82, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x08, 0x21, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x20, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x08, 0x21, 0xff, 0x08, 0x21, 0xff, 0x08, 0x21, 0xff, 0x00, 0x00, 0xff, 0x08, 0x21, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x20, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x08, 0x21, 0xff, 0x08, 0x61, 0xff, 0x10, 0x82, 0xff, 0x18, 0xa3, 0xff, 0x18, 0xa3, 0xff, 0x10, 0xa2, 0xff, 0x18, 0xa3, 0xff, 0x18, 0xc3, 0xff, 0x18, 0xc3, 0xfc, 0x18, 0xc3, 0xfb, 0x18, 0xc3, 0xf8, 0x18, 0xa3, 0xf7, 0x18, 0xa3, 0xf4, 0x18, 0xa3, 0xf3, 0x10, 0xa2, 0xf3, 0x10, 0xa2, 0xf3, 0x10, 0x82, 0xf0, 0x08, 0x41, 0xec, 0x00, 0x00, 0xeb, 0x00, 0x20, 0xeb, 0x08, 0x21, 0xeb, 0x00, 0x00, 0xeb, 0x18, 0xe3, 0xe8,
|
||||
0x39, 0xc7, 0x77, 0x10, 0x82, 0xff, 0x21, 0x04, 0x8b, 0x84, 0x10, 0x03, 0x6b, 0x4d, 0x14, 0x52, 0x6a, 0x5c, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x08, 0x21, 0xff, 0x08, 0x21, 0xff, 0x08, 0x21, 0xff, 0x08, 0x21, 0xff, 0x08, 0x41, 0xff, 0x10, 0x62, 0xff, 0x10, 0xa2, 0xff, 0x10, 0xa2, 0xff, 0x18, 0xa3, 0xff, 0x18, 0xc3, 0xff, 0x18, 0xe3, 0xff, 0x29, 0x25, 0xff, 0x29, 0x25, 0xff, 0x29, 0x25, 0xff, 0x29, 0x25, 0xff, 0x29, 0x25, 0xff, 0x39, 0xc7, 0xff, 0x39, 0xe7, 0xff, 0x41, 0xe8, 0xff, 0x42, 0x08, 0xfc, 0x42, 0x08, 0xf7, 0x4a, 0x49, 0xb7, 0x4a, 0x49, 0xa8, 0x4a, 0x49, 0xa3, 0x4a, 0x49, 0xa3, 0x4a, 0x49, 0xa8, 0x4a, 0x49, 0x93, 0x42, 0x28, 0x7f, 0x39, 0xa7, 0x6b, 0x21, 0x04, 0x5c, 0x08, 0x41, 0x57, 0x00, 0x00, 0x57, 0x00, 0x20, 0x57, 0x08, 0x41, 0x57, 0x08, 0x61, 0x57, 0x08, 0x61, 0x57, 0x10, 0x62, 0x57, 0x10, 0xa2, 0x57, 0x10, 0x82, 0x57, 0x20, 0xe4, 0x9c, 0x08, 0x41, 0xff, 0x00, 0x00, 0xff, 0x08, 0x21, 0xff, 0x00, 0x20, 0xff, 0x00, 0x00, 0xff, 0x08, 0x41, 0xff, 0x08, 0x21, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x08, 0x41, 0xff, 0x31, 0x86, 0xff, 0x4a, 0x29, 0x90, 0x10, 0x82, 0x54, 0x29, 0x25, 0x57, 0x39, 0xa7, 0x57, 0x41, 0xe8, 0x57, 0x42, 0x08, 0x57, 0x4a, 0x49, 0x57, 0x52, 0x8a, 0x53, 0x5a, 0xab, 0x4b, 0x5a, 0xcb, 0x44, 0x63, 0x0c, 0x37, 0x6b, 0x4d, 0x2f, 0x73, 0x6e, 0x27, 0x73, 0x6e, 0x24, 0x73, 0x6e, 0x24, 0x73, 0x6e, 0x24, 0x7b, 0xcf, 0x17, 0xad, 0x55, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x21, 0x24, 0x30, 0x08, 0x61, 0xf4, 0x08, 0x21, 0xff, 0x39, 0xc7, 0xff, 0x31, 0xa6, 0xff, 0x08, 0x41, 0xff, 0x10, 0x82, 0xff, 0x39, 0xc7, 0x70, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x86, 0xcc, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x20, 0xff, 0x00, 0x20, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x21, 0x04, 0xf8, 0x10, 0xa2, 0xa8, 0x52, 0xaa, 0x74, 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, 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, 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, 0x52, 0xaa, 0x2b, 0x10, 0x62, 0xf3, 0x10, 0x62, 0xff, 0x10, 0x82, 0xff, 0x10, 0x82, 0xf3, 0x18, 0xc3, 0x48, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xcb, 0x18, 0x31, 0xa6, 0xd8, 0x10, 0x62, 0xff, 0x00, 0x00, 0xff, 0x08, 0x21, 0xff, 0x08, 0x61, 0xec, 0x18, 0xc3, 0x87, 0x39, 0xc7, 0x13, 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, 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, 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, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0xef, 0x0c, 0x41, 0xe8, 0x5f, 0x42, 0x08, 0x8c, 0x73, 0xae, 0x17, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x39, 0xc7, 0x54, 0x08, 0x21, 0x57, 0x21, 0x24, 0x57, 0x39, 0xe7, 0x0b, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
#endif
|
||||
#if LV_COLOR_DEPTH == 32
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x04, 0x63, 0x63, 0x63, 0x1c, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x4f, 0x4f, 0x47, 0x03, 0x03, 0x03, 0x57, 0x22, 0x22, 0x22, 0x57, 0x3c, 0x3c, 0x3c, 0x08, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x5b, 0x5b, 0x5b, 0x0c, 0x38, 0x38, 0x38, 0x74, 0x19, 0x19, 0x19, 0xeb, 0x18, 0x18, 0x18, 0xf0, 0x3a, 0x3a, 0x3a, 0xbc, 0x3e, 0x3e, 0x3e, 0x04, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x03, 0x1e, 0x1e, 0x1e, 0x8f, 0x16, 0x16, 0x16, 0xfb, 0x04, 0x04, 0x04, 0xff, 0x06, 0x06, 0x06, 0xff, 0x0b, 0x0b, 0x0b, 0xec, 0x20, 0x20, 0x20, 0x87, 0x4a, 0x4a, 0x4a, 0x13, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7b, 0x7b, 0x7b, 0x0f, 0x35, 0x35, 0x35, 0xcb, 0x03, 0x03, 0x03, 0xff, 0x06, 0x06, 0x06, 0xff, 0x04, 0x04, 0x04, 0xff, 0x03, 0x03, 0x03, 0xff, 0x1a, 0x1a, 0x1a, 0xc4, 0xb9, 0xb9, 0xb9, 0x04, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x27, 0x27, 0xa0, 0x02, 0x02, 0x02, 0xff, 0x02, 0x02, 0x02, 0xff, 0x01, 0x01, 0x01, 0xff, 0x02, 0x02, 0x02, 0xff, 0x02, 0x02, 0x02, 0xff, 0x00, 0x00, 0x00, 0xff, 0x29, 0x29, 0x29, 0xf8, 0x16, 0x16, 0x16, 0xa8, 0x65, 0x65, 0x65, 0x47, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0d, 0x0d, 0x0d, 0x4b, 0x0d, 0x0d, 0x0d, 0xff, 0x17, 0x17, 0x17, 0xdb, 0x62, 0x62, 0x62, 0x54, 0x5c, 0x5c, 0x5c, 0x50, 0x0f, 0x0f, 0x0f, 0xb8, 0x05, 0x05, 0x05, 0xff, 0x22, 0x22, 0x22, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x40, 0x40, 0x40, 0xfb, 0x43, 0x43, 0x43, 0xe8, 0x44, 0x44, 0x44, 0xe4, 0x45, 0x45, 0x45, 0xdc, 0x46, 0x46, 0x46, 0xd7, 0x46, 0x46, 0x46, 0xd0, 0x49, 0x49, 0x49, 0xb3, 0x49, 0x49, 0x49, 0xb0, 0x49, 0x49, 0x49, 0xaf, 0x49, 0x49, 0x49, 0xab, 0x49, 0x49, 0x49, 0xa7, 0x46, 0x46, 0x46, 0x87, 0x45, 0x45, 0x45, 0x84, 0x44, 0x44, 0x44, 0x80, 0x43, 0x43, 0x43, 0x7f, 0x42, 0x42, 0x42, 0x7b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x01, 0x01, 0x01, 0x57, 0x02, 0x02, 0x02, 0x57, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x57, 0x02, 0x02, 0x02, 0x57, 0x04, 0x04, 0x04, 0x57, 0x06, 0x06, 0x06, 0x57, 0x04, 0x04, 0x04, 0x57, 0x04, 0x04, 0x04, 0x57, 0x05, 0x05, 0x05, 0x57, 0x07, 0x07, 0x07, 0x57, 0x08, 0x08, 0x08, 0x57, 0x06, 0x06, 0x06, 0x57, 0x07, 0x07, 0x07, 0x57, 0x08, 0x08, 0x08, 0x57, 0x0a, 0x0a, 0x0a, 0x57, 0x0c, 0x0c, 0x0c, 0x57, 0x0a, 0x0a, 0x0a, 0x57, 0x0b, 0x0b, 0x0b, 0x57, 0x0c, 0x0c, 0x0c, 0x57, 0x0f, 0x0f, 0x0f, 0x57, 0x11, 0x11, 0x11, 0x57, 0x10, 0x10, 0x10, 0x57, 0x10, 0x10, 0x10, 0x57, 0x12, 0x12, 0x12, 0x57, 0x14, 0x14, 0x14, 0x57, 0x16, 0x16, 0x16, 0x57, 0x13, 0x13, 0x13, 0x57, 0x14, 0x14, 0x14, 0x57, 0x15, 0x15, 0x15, 0x57, 0x30, 0x30, 0x30, 0x9c, 0x0c, 0x0c, 0x0c, 0xff, 0x06, 0x06, 0x06, 0xff, 0x0a, 0x0a, 0x0a, 0xff, 0x04, 0x04, 0x04, 0xff, 0x04, 0x04, 0x04, 0xff, 0x09, 0x09, 0x09, 0xff, 0x05, 0x05, 0x05, 0xff, 0x03, 0x03, 0x03, 0xff, 0x00, 0x00, 0x00, 0xff, 0x03, 0x03, 0x03, 0xff, 0x25, 0x25, 0x25, 0xff, 0x40, 0x40, 0x40, 0xa0, 0x18, 0x18, 0x18, 0x57, 0x37, 0x37, 0x37, 0x57, 0x3e, 0x3e, 0x3e, 0x57, 0x41, 0x41, 0x41, 0x57, 0x3e, 0x3e, 0x3e, 0x57, 0x35, 0x35, 0x35, 0x57, 0x34, 0x34, 0x34, 0x57, 0x33, 0x33, 0x33, 0x57, 0x35, 0x35, 0x35, 0x57, 0x35, 0x35, 0x35, 0x57, 0x2d, 0x2d, 0x2d, 0x57, 0x26, 0x26, 0x26, 0x57, 0x20, 0x20, 0x20, 0x57, 0x20, 0x20, 0x20, 0x57, 0x22, 0x22, 0x22, 0x57, 0x1f, 0x1f, 0x1f, 0x57, 0x19, 0x19, 0x19, 0x57, 0x14, 0x14, 0x14, 0x57, 0x15, 0x15, 0x15, 0x57, 0x18, 0x18, 0x18, 0x57, 0x14, 0x14, 0x14, 0x57, 0x16, 0x16, 0x16, 0x57, 0x44, 0x44, 0x44, 0x50,
|
||||
0x49, 0x49, 0x49, 0xb7, 0x04, 0x04, 0x04, 0xff, 0x35, 0x35, 0x35, 0x8c, 0x6f, 0x6f, 0x6f, 0x04, 0x6f, 0x6f, 0x6f, 0x0f, 0x21, 0x21, 0x21, 0x37, 0x0f, 0x0f, 0x0f, 0xff, 0x02, 0x02, 0x02, 0xff, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x05, 0xff, 0x02, 0x02, 0x02, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0xff, 0x02, 0x02, 0x02, 0xff, 0x01, 0x01, 0x01, 0xff, 0x02, 0x02, 0x02, 0xff, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0xff, 0x02, 0x02, 0x02, 0xff, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0xff, 0x03, 0x03, 0x03, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x02, 0x02, 0x02, 0xff, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x03, 0x03, 0x03, 0xff, 0x03, 0x03, 0x03, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x03, 0x03, 0x03, 0xff, 0x03, 0x03, 0x03, 0xff, 0x02, 0x02, 0x02, 0xff, 0x02, 0x02, 0x02, 0xff, 0x03, 0x03, 0x03, 0xff, 0x04, 0x04, 0x04, 0xff, 0x02, 0x02, 0x02, 0xff, 0x02, 0x02, 0x02, 0xff, 0x03, 0x03, 0x03, 0xff, 0x03, 0x03, 0x03, 0xff, 0x03, 0x03, 0x03, 0xff, 0x03, 0x03, 0x03, 0xff, 0x03, 0x03, 0x03, 0xff, 0x03, 0x03, 0x03, 0xff, 0x05, 0x05, 0x05, 0xff, 0x05, 0x05, 0x05, 0xff, 0x05, 0x05, 0x05, 0xff, 0x02, 0x02, 0x02, 0xff, 0x06, 0x06, 0x06, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0xff, 0x03, 0x03, 0x03, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x05, 0x05, 0x05, 0xff, 0x0c, 0x0c, 0x0c, 0xff, 0x10, 0x10, 0x10, 0xff, 0x16, 0x16, 0x16, 0xff, 0x15, 0x15, 0x15, 0xff, 0x14, 0x14, 0x14, 0xff, 0x16, 0x16, 0x16, 0xff, 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18, 0xfc, 0x18, 0x18, 0x18, 0xfb, 0x17, 0x17, 0x17, 0xf8, 0x16, 0x16, 0x16, 0xf7, 0x16, 0x16, 0x16, 0xf4, 0x15, 0x15, 0x15, 0xf3, 0x14, 0x14, 0x14, 0xf3, 0x13, 0x13, 0x13, 0xf3, 0x10, 0x10, 0x10, 0xf0, 0x07, 0x07, 0x07, 0xec, 0x02, 0x02, 0x02, 0xeb, 0x03, 0x03, 0x03, 0xeb, 0x05, 0x05, 0x05, 0xeb, 0x02, 0x02, 0x02, 0xeb, 0x1b, 0x1b, 0x1b, 0xe8,
|
||||
0x38, 0x38, 0x38, 0x77, 0x0f, 0x0f, 0x0f, 0xff, 0x20, 0x20, 0x20, 0x8b, 0x80, 0x80, 0x80, 0x03, 0x6a, 0x6a, 0x6a, 0x14, 0x4e, 0x4e, 0x4e, 0x5c, 0x03, 0x03, 0x03, 0xff, 0x03, 0x03, 0x03, 0xff, 0x04, 0x04, 0x04, 0xff, 0x03, 0x03, 0x03, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x02, 0x02, 0x02, 0xff, 0x06, 0x06, 0x06, 0xff, 0x06, 0x06, 0x06, 0xff, 0x05, 0x05, 0x05, 0xff, 0x06, 0x06, 0x06, 0xff, 0x09, 0x09, 0x09, 0xff, 0x0d, 0x0d, 0x0d, 0xff, 0x14, 0x14, 0x14, 0xff, 0x14, 0x14, 0x14, 0xff, 0x15, 0x15, 0x15, 0xff, 0x19, 0x19, 0x19, 0xff, 0x1c, 0x1c, 0x1c, 0xff, 0x26, 0x26, 0x26, 0xff, 0x26, 0x26, 0x26, 0xff, 0x26, 0x26, 0x26, 0xff, 0x26, 0x26, 0x26, 0xff, 0x25, 0x25, 0x25, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3f, 0x3f, 0x3f, 0xfc, 0x41, 0x41, 0x41, 0xf7, 0x48, 0x48, 0x48, 0xb7, 0x49, 0x49, 0x49, 0xa8, 0x49, 0x49, 0x49, 0xa3, 0x49, 0x49, 0x49, 0xa3, 0x49, 0x49, 0x49, 0xa8, 0x48, 0x48, 0x48, 0x93, 0x43, 0x43, 0x43, 0x7f, 0x36, 0x36, 0x36, 0x6b, 0x22, 0x22, 0x22, 0x5c, 0x0a, 0x0a, 0x0a, 0x57, 0x01, 0x01, 0x01, 0x57, 0x03, 0x03, 0x03, 0x57, 0x09, 0x09, 0x09, 0x57, 0x0c, 0x0c, 0x0c, 0x57, 0x0c, 0x0c, 0x0c, 0x57, 0x0d, 0x0d, 0x0d, 0x57, 0x13, 0x13, 0x13, 0x57, 0x0f, 0x0f, 0x0f, 0x57, 0x1e, 0x1e, 0x1e, 0x9c, 0x07, 0x07, 0x07, 0xff, 0x00, 0x00, 0x00, 0xff, 0x05, 0x05, 0x05, 0xff, 0x03, 0x03, 0x03, 0xff, 0x01, 0x01, 0x01, 0xff, 0x07, 0x07, 0x07, 0xff, 0x05, 0x05, 0x05, 0xff, 0x01, 0x01, 0x01, 0xff, 0x02, 0x02, 0x02, 0xff, 0x00, 0x00, 0x00, 0xff, 0x07, 0x07, 0x07, 0xff, 0x31, 0x31, 0x31, 0xff, 0x45, 0x45, 0x45, 0x90, 0x12, 0x12, 0x12, 0x54, 0x25, 0x25, 0x25, 0x57, 0x36, 0x36, 0x36, 0x57, 0x3d, 0x3d, 0x3d, 0x57, 0x3f, 0x3f, 0x3f, 0x57, 0x47, 0x47, 0x47, 0x57, 0x50, 0x50, 0x50, 0x53, 0x55, 0x55, 0x55, 0x4b, 0x59, 0x59, 0x59, 0x44, 0x62, 0x62, 0x62, 0x37, 0x67, 0x67, 0x67, 0x2f, 0x6d, 0x6d, 0x6d, 0x27, 0x6e, 0x6e, 0x6e, 0x24, 0x6e, 0x6e, 0x6e, 0x24, 0x6e, 0x6e, 0x6e, 0x24, 0x79, 0x79, 0x79, 0x17, 0xa7, 0xa7, 0xa7, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x23, 0x23, 0x23, 0x30, 0x0b, 0x0b, 0x0b, 0xf4, 0x05, 0x05, 0x05, 0xff, 0x38, 0x38, 0x38, 0xff, 0x33, 0x33, 0x33, 0xff, 0x07, 0x07, 0x07, 0xff, 0x10, 0x10, 0x10, 0xff, 0x37, 0x37, 0x37, 0x70, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x2f, 0x2f, 0xcc, 0x02, 0x02, 0x02, 0xff, 0x01, 0x01, 0x01, 0xff, 0x03, 0x03, 0x03, 0xff, 0x03, 0x03, 0x03, 0xff, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0xff, 0x20, 0x20, 0x20, 0xf8, 0x14, 0x14, 0x14, 0xa8, 0x53, 0x53, 0x53, 0x74, 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, 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, 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, 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, 0x53, 0x53, 0x53, 0x2b, 0x0d, 0x0d, 0x0d, 0xf3, 0x0d, 0x0d, 0x0d, 0xff, 0x10, 0x10, 0x10, 0xff, 0x10, 0x10, 0x10, 0xf3, 0x17, 0x17, 0x17, 0x48, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x5a, 0x5a, 0x18, 0x34, 0x34, 0x34, 0xd8, 0x0d, 0x0d, 0x0d, 0xff, 0x02, 0x02, 0x02, 0xff, 0x05, 0x05, 0x05, 0xff, 0x0b, 0x0b, 0x0b, 0xec, 0x19, 0x19, 0x19, 0x87, 0x38, 0x38, 0x38, 0x13, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x7b, 0x7b, 0x0c, 0x3e, 0x3e, 0x3e, 0x5f, 0x41, 0x41, 0x41, 0x8c, 0x74, 0x74, 0x74, 0x17, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x39, 0x39, 0x54, 0x05, 0x05, 0x05, 0x57, 0x24, 0x24, 0x24, 0x57, 0x3c, 0x3c, 0x3c, 0x0b, 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, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
#endif
|
||||
};
|
||||
|
||||
const lv_img_dsc_t img_hand = {
|
||||
.header.always_zero = 0,
|
||||
.header.w = 100,
|
||||
.header.h = 9,
|
||||
.data_size = 900 * LV_IMG_PX_SIZE_ALPHA_BYTE,
|
||||
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
|
||||
.data = img_hand_map,
|
||||
};
|
||||
269
src/main.cpp
Normal file
269
src/main.cpp
Normal file
@@ -0,0 +1,269 @@
|
||||
#include <Arduino.h>
|
||||
|
||||
|
||||
#include <Wire.h>
|
||||
|
||||
#include <SPI.h>
|
||||
#include <TFT_eSPI.h>
|
||||
#include "FT62XXTouchScreen.h"
|
||||
|
||||
TFT_eSPI tft = TFT_eSPI();
|
||||
FT62XXTouchScreen touchScreen = FT62XXTouchScreen(TFT_WIDTH, PIN_SDA, PIN_SCL);
|
||||
|
||||
#include "lvgl.h"
|
||||
#include "widgets/meter/lv_meter.h"
|
||||
#include "esp_freertos_hooks.h"
|
||||
|
||||
static lv_disp_buf_t disp_buf;
|
||||
static lv_color_t buf[LV_HOR_RES_MAX * 10];
|
||||
|
||||
|
||||
|
||||
|
||||
lv_obj_t *screenMain;
|
||||
lv_obj_t *tabview;
|
||||
lv_obj_t *tab1;
|
||||
lv_obj_t *label;
|
||||
lv_obj_t *btn1;
|
||||
lv_obj_t *btn2;
|
||||
lv_obj_t *tab2;
|
||||
lv_obj_t *guage;
|
||||
lv_obj_t *meter;
|
||||
|
||||
|
||||
static void event_handler_btn(lv_obj_t * obj, lv_event_t event){
|
||||
if(event == LV_EVENT_CLICKED) {
|
||||
if (obj == btn1)
|
||||
lv_label_set_text(label, "Hello");
|
||||
else if (obj == btn2){
|
||||
lv_label_set_text(label, "Goodbye");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void my_disp_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p)
|
||||
{
|
||||
uint32_t w = (area->x2 - area->x1 + 1);
|
||||
uint32_t h = (area->y2 - area->y1 + 1);
|
||||
|
||||
tft.startWrite();
|
||||
tft.setAddrWindow(area->x1, area->y1, w, h);
|
||||
tft.pushColors(&color_p->full, w * h, true);
|
||||
tft.endWrite();
|
||||
|
||||
lv_disp_flush_ready(disp);
|
||||
}
|
||||
|
||||
uint16_t lastx = 0;
|
||||
uint16_t lasty = 0;
|
||||
|
||||
bool my_input_read2(lv_indev_drv_t * drv, lv_indev_data_t*data) {
|
||||
Serial.println("#");
|
||||
TouchPoint touchPos = touchScreen.read();
|
||||
if (touchPos.touched) {
|
||||
Serial.println(String(touchPos.xPos) + ": " + String(touchPos.yPos));
|
||||
data->state = LV_INDEV_STATE_PR;
|
||||
data->point.x = touchPos.xPos;
|
||||
data->point.y = touchPos.yPos;
|
||||
lastx = touchPos.xPos;
|
||||
lasty = touchPos.yPos;
|
||||
} else {
|
||||
data->state = LV_INDEV_STATE_REL;
|
||||
data->point.x = lastx;
|
||||
data->point.y = lasty;
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
static void lv_tick_task(void)
|
||||
{
|
||||
lv_tick_inc(portTICK_RATE_MS);
|
||||
}
|
||||
|
||||
// static void set_value(void * indic, int32_t v)
|
||||
// {
|
||||
// lv_meter_set_indicator_end_value(meter, indic, v);
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
* A meter with multiple arcs
|
||||
*/
|
||||
// void lv_example_meter_2(void)
|
||||
// {
|
||||
// meter = lv_meter_create(lv_scr_act());
|
||||
// lv_obj_center(meter);
|
||||
// lv_obj_set_size(meter, 200, 200);
|
||||
|
||||
// /*Remove the circle from the middle*/
|
||||
// lv_obj_remove_style(meter, NULL, LV_PART_INDICATOR);
|
||||
|
||||
// /*Add a scale first*/
|
||||
// lv_meter_scale_t * scale = lv_meter_add_scale(meter);
|
||||
// lv_meter_set_scale_ticks(meter, scale, 11, 2, 10, lv_palette_main(LV_PALETTE_GREY));
|
||||
// lv_meter_set_scale_major_ticks(meter, scale, 1, 2, 30, lv_color_hex3(0xeee), 15);
|
||||
// lv_meter_set_scale_range(meter, scale, 0, 100, 270, 90);
|
||||
|
||||
// /*Add a three arc indicator*/
|
||||
// lv_meter_indicator_t * indic1 = lv_meter_add_arc(meter, scale, 10, lv_palette_main(LV_PALETTE_RED), 0);
|
||||
// lv_meter_indicator_t * indic2 = lv_meter_add_arc(meter, scale, 10, lv_palette_main(LV_PALETTE_GREEN), -10);
|
||||
// lv_meter_indicator_t * indic3 = lv_meter_add_arc(meter, scale, 10, lv_palette_main(LV_PALETTE_BLUE), -20);
|
||||
|
||||
// /*Create an animation to set the value*/
|
||||
// lv_anim_t a;
|
||||
// lv_anim_init(&a);
|
||||
// lv_anim_set_exec_cb(&a, set_value);
|
||||
// lv_anim_set_values(&a, 0, 100);
|
||||
// lv_anim_set_repeat_delay(&a, 100);
|
||||
// lv_anim_set_playback_delay(&a, 100);
|
||||
// lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
|
||||
|
||||
// lv_anim_set_time(&a, 2000);
|
||||
// lv_anim_set_playback_time(&a, 500);
|
||||
// lv_anim_set_var(&a, indic1);
|
||||
// lv_anim_start(&a);
|
||||
|
||||
// lv_anim_set_time(&a, 1000);
|
||||
// lv_anim_set_playback_time(&a, 1000);
|
||||
// lv_anim_set_var(&a, indic2);
|
||||
// lv_anim_start(&a);
|
||||
|
||||
// lv_anim_set_time(&a, 1000);
|
||||
// lv_anim_set_playback_time(&a, 2000);
|
||||
// lv_anim_set_var(&a, indic3);
|
||||
// lv_anim_start(&a);
|
||||
// }
|
||||
|
||||
void lv_gauge_2(lv_obj_t* par)
|
||||
{
|
||||
/*Describe the color for the needles*/
|
||||
static lv_color_t needle_colors[3];
|
||||
needle_colors[0] = LV_COLOR_BLUE;
|
||||
needle_colors[1] = LV_COLOR_ORANGE;
|
||||
needle_colors[2] = LV_COLOR_PURPLE;
|
||||
|
||||
LV_IMG_DECLARE(img_hand);
|
||||
|
||||
/*Create a gauge*/
|
||||
guage = lv_gauge_create(par, NULL);
|
||||
lv_gauge_set_needle_count(guage, 3, needle_colors);
|
||||
lv_obj_set_size(guage, 200, 200);
|
||||
lv_obj_align(guage, NULL, LV_ALIGN_CENTER, 100, 0);
|
||||
lv_gauge_set_needle_img(guage, &img_hand, 4, 4);
|
||||
/*Allow recoloring of the images according to the needles' color*/
|
||||
lv_obj_set_style_local_image_recolor_opa(guage, LV_GAUGE_PART_NEEDLE, LV_STATE_DEFAULT, LV_OPA_COVER);
|
||||
|
||||
/*Set the values*/
|
||||
lv_gauge_set_value(guage, 0, 10);
|
||||
lv_gauge_set_value(guage, 1, 20);
|
||||
lv_gauge_set_value(guage, 2, 30);
|
||||
}
|
||||
|
||||
void lv_ex_tabview(lv_obj_t* par)
|
||||
{
|
||||
/*Create a Tab view object*/
|
||||
lv_scr_load(par);
|
||||
tabview = lv_tabview_create(lv_scr_act(), NULL);
|
||||
|
||||
/*Add 3 tabs (the tabs are page (lv_page) and can be scrolled*/
|
||||
tab1 = lv_tabview_add_tab(tabview, "Tab 1");
|
||||
tab2 = lv_tabview_add_tab(tabview, "Tab 2");
|
||||
lv_tabview_set_anim_time(tabview,2);
|
||||
}
|
||||
|
||||
void lv_Create_text(lv_obj_t* par)
|
||||
{
|
||||
label = lv_label_create(par, NULL);
|
||||
lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
|
||||
lv_label_set_text(label, "Press a button");
|
||||
lv_label_set_align(label, LV_LABEL_ALIGN_CENTER);
|
||||
lv_obj_set_size(label, 240, 40);
|
||||
lv_obj_set_pos(label, 0, 15);
|
||||
}
|
||||
|
||||
void lv_Create_button1(lv_obj_t* par)
|
||||
{
|
||||
btn1 = lv_btn_create(par, NULL);
|
||||
lv_obj_set_event_cb(btn1, event_handler_btn);
|
||||
lv_obj_set_width(btn1, 70);
|
||||
lv_obj_set_height(btn1, 32);
|
||||
lv_obj_set_pos(btn1, 32, 100);
|
||||
lv_obj_t * label1 = lv_label_create(btn1, NULL);
|
||||
lv_label_set_text(label1, "Hello");
|
||||
}
|
||||
|
||||
void lv_Create_button2(lv_obj_t* par)
|
||||
{
|
||||
btn2 = lv_btn_create(par, NULL);
|
||||
lv_obj_set_event_cb(btn2, event_handler_btn);
|
||||
lv_obj_set_width(btn2, 70);
|
||||
lv_obj_set_height(btn2, 32);
|
||||
lv_obj_set_pos(btn2, 142, 100);
|
||||
lv_obj_t * label2 = lv_label_create(btn2, NULL);
|
||||
lv_label_set_text(label2, "Goodbye");
|
||||
}
|
||||
|
||||
|
||||
void setup() {
|
||||
lv_disp_drv_t disp_drv;
|
||||
lv_indev_drv_t indev_drv;
|
||||
|
||||
Serial.begin(115200);
|
||||
lv_init();
|
||||
// Setup tick hook for lv_tick_task
|
||||
/*esp_err_t err = */esp_register_freertos_tick_hook((esp_freertos_tick_cb_t)lv_tick_task);
|
||||
|
||||
// Enable TFT
|
||||
tft.begin();
|
||||
tft.setRotation(1);
|
||||
|
||||
// Enable Backlight
|
||||
pinMode(TFT_BL, OUTPUT);
|
||||
digitalWrite(TFT_BL,1);
|
||||
|
||||
// Start TouchScreen
|
||||
touchScreen.begin();
|
||||
|
||||
|
||||
// Display Buffer
|
||||
lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10);
|
||||
|
||||
// Init Display
|
||||
lv_disp_drv_init(&disp_drv);
|
||||
disp_drv.hor_res = 480;
|
||||
disp_drv.ver_res = 320;
|
||||
disp_drv.flush_cb = my_disp_flush;
|
||||
disp_drv.buffer = &disp_buf;
|
||||
lv_disp_drv_register(&disp_drv);
|
||||
|
||||
// Init Touchscreen
|
||||
lv_indev_drv_init(&indev_drv);
|
||||
indev_drv.type = LV_INDEV_TYPE_POINTER;
|
||||
indev_drv.read_cb = my_input_read2;
|
||||
lv_indev_drv_register(&indev_drv);
|
||||
|
||||
// Screen Object
|
||||
screenMain = lv_obj_create(NULL, NULL);
|
||||
|
||||
lv_ex_tabview(screenMain);
|
||||
|
||||
// Text
|
||||
lv_Create_text(tab1);
|
||||
|
||||
// BUtton 1
|
||||
lv_Create_button1(tab1);
|
||||
|
||||
|
||||
// Button 2
|
||||
lv_Create_button2(tab1);
|
||||
|
||||
lv_gauge_2(tab2);
|
||||
|
||||
// Screen load
|
||||
lv_scr_load(screenMain);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
lv_task_handler();
|
||||
delay(1);
|
||||
}
|
||||
11
test/README
Normal file
11
test/README
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
This directory is intended for PlatformIO Unit Testing and project tests.
|
||||
|
||||
Unit Testing is a software testing method by which individual units of
|
||||
source code, sets of one or more MCU program modules together with associated
|
||||
control data, usage procedures, and operating procedures, are tested to
|
||||
determine whether they are fit for use. Unit testing finds problems early
|
||||
in the development cycle.
|
||||
|
||||
More information about PlatformIO Unit Testing:
|
||||
- https://docs.platformio.org/page/plus/unit-testing.html
|
||||
Reference in New Issue
Block a user