feat(printer): add direct thermal backend and debug controls
This commit is contained in:
@@ -130,14 +130,44 @@ typedef struct {
|
||||
uint8_t patch;
|
||||
} printer_ota_version_t;
|
||||
|
||||
typedef enum {
|
||||
PRINTER_BACKEND_BLE = 0,
|
||||
PRINTER_BACKEND_DIRECT = 1,
|
||||
} printer_backend_t;
|
||||
|
||||
typedef struct {
|
||||
printer_backend_t backend;
|
||||
const char *name;
|
||||
uint32_t timeout_ms;
|
||||
} printer_connect_options_t;
|
||||
|
||||
typedef struct {
|
||||
// Direct backend only: bypass paper/temp/battery precheck for this print job.
|
||||
bool direct_ignore_precheck;
|
||||
} printer_print_options_t;
|
||||
|
||||
typedef struct {
|
||||
bool supports_connect;
|
||||
bool supports_gap_move;
|
||||
bool supports_label_offset;
|
||||
bool supports_ota;
|
||||
} printer_capabilities_t;
|
||||
|
||||
typedef struct {
|
||||
printer_backend_t backend;
|
||||
bool connected;
|
||||
bool transport_ready;
|
||||
bool notify_ready;
|
||||
bool busy;
|
||||
bool has_paper;
|
||||
int8_t paper_gpio_level;
|
||||
uint8_t paper_present_level;
|
||||
uint8_t battery_percent;
|
||||
float temperature;
|
||||
uint16_t mtu;
|
||||
bool supports_gap_move;
|
||||
bool supports_label_offset;
|
||||
bool supports_ota;
|
||||
uint32_t queue_depth;
|
||||
int64_t last_status_ms;
|
||||
} printer_runtime_status_t;
|
||||
@@ -147,8 +177,13 @@ typedef uint32_t printer_status_poll_pause_token_t;
|
||||
esp_err_t printer_protocol_init(void);
|
||||
esp_err_t printer_protocol_stop(uint32_t timeout_ms);
|
||||
|
||||
esp_err_t printer_protocol_set_backend(printer_backend_t backend, char *err, size_t err_len);
|
||||
printer_backend_t printer_protocol_get_backend(void);
|
||||
|
||||
esp_err_t printer_protocol_connect(const char *target_name, uint32_t timeout_ms);
|
||||
esp_err_t printer_protocol_connect_ex(const printer_connect_options_t *opt, char *err, size_t err_len);
|
||||
void printer_protocol_disconnect(void);
|
||||
void printer_protocol_get_capabilities(printer_capabilities_t *out_capabilities);
|
||||
|
||||
void printer_protocol_get_runtime_status(printer_runtime_status_t *out_status);
|
||||
printer_status_poll_pause_token_t printer_protocol_status_poll_pause_acquire(void);
|
||||
@@ -162,6 +197,15 @@ esp_err_t printer_protocol_submit_raster_job(const uint8_t *raster,
|
||||
uint32_t *out_job_id,
|
||||
char *err,
|
||||
size_t err_len);
|
||||
esp_err_t printer_protocol_submit_raster_job_ex(const uint8_t *raster,
|
||||
size_t raster_len,
|
||||
uint16_t width,
|
||||
uint16_t height,
|
||||
const char *density,
|
||||
const printer_print_options_t *options,
|
||||
uint32_t *out_job_id,
|
||||
char *err,
|
||||
size_t err_len);
|
||||
|
||||
bool printer_protocol_get_job(uint32_t job_id, print_job_info_t *out_info);
|
||||
esp_err_t printer_protocol_list_jobs(print_job_info_t *out_jobs, size_t max_jobs, size_t *out_count);
|
||||
|
||||
Reference in New Issue
Block a user