LVGL G-code preview. Legacy MKS WiFi Cura plugin compatibility (#20589)

This commit is contained in:
Victor Oliveira
2020-12-29 01:07:11 -03:00
committed by GitHub
parent aff4fccfc3
commit 90a2b482e6
5 changed files with 20 additions and 8 deletions

View File

@ -417,12 +417,20 @@ void lv_gcode_file_read(uint8_t *data_buf) {
}
uint16_t c = card.get();
// check if we have more data or finished the line (CR)
if (c == '\r') break;
// check for more data or end of line (CR or LF)
if (ISEOL(c)) {
c = card.get(); // more eol?
if (!ISEOL(c)) card.setIndex(card.getIndex() - 1);
break;
}
card.setIndex(card.getIndex() - 1);
k++;
j = 0;
ignore_start = false;
if (k > 1) {
card.closefile();
break;
}
}
#if HAS_TFT_LVGL_UI_SPI
for (i = 0; i < 200;) {

View File

@ -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
extern uint8_t public_buf[512];
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) {
//cur_namefff = strrchr(path, '/');
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_addr_offset = sd_read_base_addr;
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;
}
@ -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) {
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);
return LV_FS_RES_OK;
}
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;
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;
}