feat(lcd): migrate driver to platform and replace jpg demo with png

This commit is contained in:
admin
2026-02-28 13:34:39 +08:00
parent 46a800c499
commit 8a55ca0005
16 changed files with 1378 additions and 311 deletions

View File

@@ -9,6 +9,7 @@
#include "domain.h"
static const char *TAG = "rest_print";
#define SCREEN_PREVIEW_TIMEOUT_MS 200
typedef struct {
bool scale_to_width;
@@ -355,6 +356,42 @@ static esp_err_t rest_server_send_image_generation_error(httpd_req_t *req,
return rest_server_send_error(req, "502 Bad Gateway", message);
}
static void rest_server_try_preview_raster(const char *source,
const uint8_t *raster,
size_t raster_len,
uint16_t width,
uint16_t height) {
if (raster == NULL || raster_len == 0 || width == 0 || height == 0) {
return;
}
char preview_err[96] = {0};
esp_err_t preview_rc = screen_preview_show_raster(raster,
raster_len,
width,
height,
SCREEN_PREVIEW_TIMEOUT_MS,
preview_err,
sizeof(preview_err));
if (preview_rc == ESP_OK) {
ESP_LOGI(TAG,
"screen preview updated (%s), size=%ux%u",
source != NULL ? source : "unknown",
(unsigned)width,
(unsigned)height);
return;
}
if (preview_rc == ESP_ERR_NOT_SUPPORTED) {
return;
}
ESP_LOGW(TAG,
"screen preview skipped (%s), rc=0x%x, msg=%s",
source != NULL ? source : "unknown",
(unsigned)preview_rc,
preview_err[0] != '\0' ? preview_err : "preview failed");
}
static esp_err_t rest_server_print_image_binary(httpd_req_t *req) {
bool scale_to_width = true;
uint8_t threshold = 160;
@@ -419,6 +456,7 @@ static esp_err_t rest_server_print_image_binary(httpd_req_t *req) {
(unsigned)width,
(unsigned)height,
(unsigned)raster_len);
rest_server_try_preview_raster("upload", raster, raster_len, width, height);
esp_err_t submit_rc = rest_server_print_submit_raster_job_and_reply(req,
raster,
@@ -562,6 +600,7 @@ static esp_err_t rest_server_print_image_generate(httpd_req_t *req) {
(unsigned)width,
(unsigned)height,
(unsigned)raster_len);
rest_server_try_preview_raster("generated", raster, raster_len, width, height);
char warning[160] = {0};
if (request_id[0] != '\0') {