LVGL G-code preview. Legacy MKS WiFi Cura plugin compatibility (#20589)
This commit is contained in:
parent
7b33ceebbb
commit
eda5a884c6
|
@ -216,6 +216,7 @@
|
||||||
#define ANY_BUTTON(V...) DO(BTNEX,||,V)
|
#define ANY_BUTTON(V...) DO(BTNEX,||,V)
|
||||||
|
|
||||||
#define WITHIN(N,L,H) ((N) >= (L) && (N) <= (H))
|
#define WITHIN(N,L,H) ((N) >= (L) && (N) <= (H))
|
||||||
|
#define ISEOL(C) ((C) == '\n' || (C) == '\r')
|
||||||
#define NUMERIC(a) WITHIN(a, '0', '9')
|
#define NUMERIC(a) WITHIN(a, '0', '9')
|
||||||
#define DECIMAL(a) (NUMERIC(a) || a == '.')
|
#define DECIMAL(a) (NUMERIC(a) || a == '.')
|
||||||
#define HEXCHR(a) (NUMERIC(a) ? (a) - '0' : WITHIN(a, 'a', 'f') ? ((a) - 'a' + 10) : WITHIN(a, 'A', 'F') ? ((a) - 'A' + 10) : -1)
|
#define HEXCHR(a) (NUMERIC(a) ? (a) - '0' : WITHIN(a, 'a', 'f') ? ((a) - 'a' + 10) : WITHIN(a, 'A', 'F') ? ((a) - 'A' + 10) : -1)
|
||||||
|
|
|
@ -76,7 +76,6 @@ public:
|
||||||
FORCE_INLINE static void disable() { enabled = false; }
|
FORCE_INLINE static void disable() { enabled = false; }
|
||||||
|
|
||||||
FORCE_INLINE static void update(State &state, const uint8_t c) {
|
FORCE_INLINE static void update(State &state, const uint8_t c) {
|
||||||
#define ISEOL(C) ((C) == '\n' || (C) == '\r')
|
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case EP_RESET:
|
case EP_RESET:
|
||||||
switch (c) {
|
switch (c) {
|
||||||
|
|
|
@ -158,8 +158,6 @@ bool GCodeQueue::_enqueue(const char* cmd, bool say_ok/*=false*/
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ISEOL(C) ((C) == '\n' || (C) == '\r')
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enqueue with Serial Echo
|
* Enqueue with Serial Echo
|
||||||
* Return true if the command was consumed
|
* Return true if the command was consumed
|
||||||
|
|
|
@ -417,12 +417,20 @@ void lv_gcode_file_read(uint8_t *data_buf) {
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t c = card.get();
|
uint16_t c = card.get();
|
||||||
// check if we have more data or finished the line (CR)
|
// check for more data or end of line (CR or LF)
|
||||||
if (c == '\r') break;
|
if (ISEOL(c)) {
|
||||||
|
c = card.get(); // more eol?
|
||||||
|
if (!ISEOL(c)) card.setIndex(card.getIndex() - 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
card.setIndex(card.getIndex() - 1);
|
card.setIndex(card.getIndex() - 1);
|
||||||
k++;
|
k++;
|
||||||
j = 0;
|
j = 0;
|
||||||
ignore_start = false;
|
ignore_start = false;
|
||||||
|
if (k > 1) {
|
||||||
|
card.closefile();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#if HAS_TFT_LVGL_UI_SPI
|
#if HAS_TFT_LVGL_UI_SPI
|
||||||
for (i = 0; i < 200;) {
|
for (i = 0; i < 200;) {
|
||||||
|
|
|
@ -369,8 +369,9 @@ lv_fs_res_t spi_flash_tell_cb(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p
|
||||||
}
|
}
|
||||||
|
|
||||||
//sd
|
//sd
|
||||||
|
extern uint8_t public_buf[512];
|
||||||
char *cur_namefff;
|
char *cur_namefff;
|
||||||
uint32_t sd_read_base_addr = 0,sd_read_addr_offset = 0;
|
uint32_t sd_read_base_addr = 0, sd_read_addr_offset = 0, small_image_size = 409;
|
||||||
lv_fs_res_t sd_open_cb (lv_fs_drv_t * drv, void * file_p, const char * path, lv_fs_mode_t mode) {
|
lv_fs_res_t sd_open_cb (lv_fs_drv_t * drv, void * file_p, const char * path, lv_fs_mode_t mode) {
|
||||||
//cur_namefff = strrchr(path, '/');
|
//cur_namefff = strrchr(path, '/');
|
||||||
char name_buf[100];
|
char name_buf[100];
|
||||||
|
@ -381,6 +382,11 @@ lv_fs_res_t sd_open_cb (lv_fs_drv_t * drv, void * file_p, const char * path, lv_
|
||||||
sd_read_base_addr = lv_open_gcode_file((char *)name_buf);
|
sd_read_base_addr = lv_open_gcode_file((char *)name_buf);
|
||||||
sd_read_addr_offset = sd_read_base_addr;
|
sd_read_addr_offset = sd_read_base_addr;
|
||||||
if (sd_read_addr_offset == UINT32_MAX) return LV_FS_RES_NOT_EX;
|
if (sd_read_addr_offset == UINT32_MAX) return LV_FS_RES_NOT_EX;
|
||||||
|
// find small image size
|
||||||
|
card.read(public_buf, 512);
|
||||||
|
public_buf[511] = '\0';
|
||||||
|
char* eol = strpbrk((const char*)public_buf, "\n\r");
|
||||||
|
small_image_size = (uintptr_t)eol - (uintptr_t)((uint32_t *)(&public_buf[0])) + 1;
|
||||||
return LV_FS_RES_OK;
|
return LV_FS_RES_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -406,14 +412,14 @@ lv_fs_res_t sd_read_cb (lv_fs_drv_t * drv, void * file_p, void * buf, uint32_t b
|
||||||
}
|
}
|
||||||
|
|
||||||
lv_fs_res_t sd_seek_cb(lv_fs_drv_t * drv, void * file_p, uint32_t pos) {
|
lv_fs_res_t sd_seek_cb(lv_fs_drv_t * drv, void * file_p, uint32_t pos) {
|
||||||
sd_read_addr_offset = sd_read_base_addr + (pos - 4) / 200 * 409;
|
sd_read_addr_offset = sd_read_base_addr + (pos - 4) / 200 * small_image_size;
|
||||||
lv_gcode_file_seek(sd_read_addr_offset);
|
lv_gcode_file_seek(sd_read_addr_offset);
|
||||||
return LV_FS_RES_OK;
|
return LV_FS_RES_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
lv_fs_res_t sd_tell_cb(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p) {
|
lv_fs_res_t sd_tell_cb(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p) {
|
||||||
if (sd_read_addr_offset) *pos_p = 0;
|
if (sd_read_addr_offset) *pos_p = 0;
|
||||||
else *pos_p = (sd_read_addr_offset - sd_read_base_addr) / 409 * 200 + 4;
|
else *pos_p = (sd_read_addr_offset - sd_read_base_addr) / small_image_size * 200 + 4;
|
||||||
return LV_FS_RES_OK;
|
return LV_FS_RES_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue