diff --git a/components/domain/src/printer_protocol.c b/components/domain/src/printer_protocol.c index 1945ceb..0bc499d 100644 --- a/components/domain/src/printer_protocol.c +++ b/components/domain/src/printer_protocol.c @@ -682,6 +682,24 @@ esp_err_t printer_protocol_init(void) { return err; } + if (s_backend == PRINTER_BACKEND_DIRECT) { + uint32_t connect_timeout_ms = domain_policy_rest_printer_connect_timeout_ms(); + err = platform_direct_printer_connect(connect_timeout_ms); + if (err != ESP_OK) { + s_protocol_initialized = false; + platform_direct_printer_disconnect(); + platform_direct_printer_deinit(); + destroy_runtime_objects(); + return err; + } + + if (xSemaphoreTake(s_mutex, pdMS_TO_TICKS(200)) == pdTRUE) { + refresh_direct_status_locked(); + xSemaphoreGive(s_mutex); + } + ESP_LOGI(TAG, "direct printer auto connected at startup"); + } + BaseType_t ok = printer_create_task_prefer_psram(printer_protocol_worker_task, "print_worker", 6144,