Files
2025-12-03 11:12:34 +08:00

76 lines
2.4 KiB
C

#include "ui/lcd_spi/lcd_drive.h"
#include "ui/text_matrix.h"
#include "typedef.h"
#include "ui/ui_mask.h"
#include "ui/ui_basic.h"
const u8 update_text_buf[10][20]={
/*0*/ "等待连接",
/*1*/ "等待升级",
/*2*/ "请尝试使用升级",
/*3*/ "软件手动触发升级",
/*4*/ "地址:",
/*5*/ "进度",
/*6*/ ".",
/*7*/ "进入升级",
/*8*/ "进入强制升级",
/*9*/ "升级中",
};
/* disp_lcd_init(&ui_cfg_data); */
void bt_addr_to_str(u8*str_buf,u8*addr)
{
int offset = 0;
for(int i =0;i<6;i++){
sprintf(&str_buf[offset], "%02X", addr[i]);
offset += 2;
if(i != 5){
sprintf(&str_buf[offset], ":", addr[i]);
offset += 1;
}
}
}
AT_UI_SIM_RAM
void ui_draw_text(int x, int y,int width,int height,int color, u8 *str,u8 str_len)
{
struct rect draw;
struct rect rect={x,y,width,height};
int i;
memcpy(&draw, &rect, sizeof(struct rect));
//printf("rect (%d, %d, %d, %d)\n", rect.left, rect.left + rect.width - 1, rect.top, rect.top + rect.height - 1);
int block = disp_get_buffer_line(rect.width);
//printf("block : %d\n", block);
for (i = 0; i < (rect.height + block - 1) / block; i++) {
draw.top = rect.top + block * i;
draw.height = (rect.top + rect.height - draw.top) > block ? block : (rect.top + rect.height - draw.top);
//printf("draw : (%d %d %d %d)\n",draw.left,draw.top,draw.width,draw.height );
disp_set_buffer_rect(&draw);
disp_buffer_clear(&draw, 0x0000);
draw_text(&draw, x, y, str,str_len, color);
disp_buffer_flush(&draw, disp_get_buffer_addr());
}
}
AT_UI_SIM_RAM
void ui_draw_rect(int x, int y,int width,int height,int color)
{
struct rect draw;
struct rect rect = {x,y,width,height};
int i;
memcpy(&draw, &rect, sizeof(struct rect));
// printf("rect (%d, %d, %d, %d)\n", rect.left, rect.left + rect.width - 1, rect.top, rect.top + rect.height - 1);
int block = disp_get_buffer_line(rect.width);
// printf("block : %d\n", block);
for (i = 0; i < (rect.height + block - 1) / block; i++) {
draw.top = rect.top + block * i;
draw.height = (rect.top + rect.height - draw.top) > block ? block : (rect.top + rect.height - draw.top);
// printf("draw : (%d %d %d %d)\n",draw.left,draw.top,draw.width,draw.height );
disp_set_buffer_rect(&draw);
disp_buffer_clear(&draw, color);
disp_buffer_flush(&draw, disp_get_buffer_addr());
}
}