Make a few init things fail less fatally

custom
jacqueline 2 years ago
parent db01e6335a
commit e0363df454
  1. 4
      src/drivers/dac.cpp
  2. 23
      src/main/main.cpp

@ -253,7 +253,7 @@ void AudioDac::WriteRegister(Register reg, uint8_t val) {
.write_ack(reg, val) .write_ack(reg, val)
.stop(); .stop();
// TODO: Retry once? // TODO: Retry once?
ESP_ERROR_CHECK(transaction.Execute()); transaction.Execute();
} }
uint8_t AudioDac::ReadRegister(Register reg) { uint8_t AudioDac::ReadRegister(Register reg) {
@ -267,7 +267,7 @@ uint8_t AudioDac::ReadRegister(Register reg) {
.read(&result, I2C_MASTER_NACK) .read(&result, I2C_MASTER_NACK)
.stop(); .stop();
ESP_ERROR_CHECK(transaction.Execute()); transaction.Execute();
return result; return result;
} }

@ -114,11 +114,12 @@ extern "C" void app_main(void) {
ESP_LOGI(TAG, "Init SD card"); ESP_LOGI(TAG, "Init SD card");
auto storage_res = drivers::SdStorage::create(expander); auto storage_res = drivers::SdStorage::create(expander);
std::shared_ptr<drivers::SdStorage> storage;
if (storage_res.has_error()) { if (storage_res.has_error()) {
ESP_LOGE(TAG, "Failed: %d", storage_res.error()); ESP_LOGE(TAG, "Failed! Do you have an SD card?");
return; } else {
storage = std::move(storage_res.value());
} }
std::shared_ptr<drivers::SdStorage> storage = std::move(storage_res.value());
LvglArgs* lvglArgs = (LvglArgs*)calloc(1, sizeof(LvglArgs)); LvglArgs* lvglArgs = (LvglArgs*)calloc(1, sizeof(LvglArgs));
lvglArgs->gpio_expander = expander; lvglArgs->gpio_expander = expander;
@ -126,14 +127,16 @@ extern "C" void app_main(void) {
(void*)lvglArgs, 1, sLvglStack, (void*)lvglArgs, 1, sLvglStack,
&sLvglTaskBuffer, 1); &sLvglTaskBuffer, 1);
ESP_LOGI(TAG, "Init audio pipeline"); std::shared_ptr<audio::AudioPlayback> playback;
auto playback_res = audio::AudioPlayback::create(expander, storage); if (storage) {
if (playback_res.has_error()) { ESP_LOGI(TAG, "Init audio pipeline");
ESP_LOGE(TAG, "Failed: %d", playback_res.error()); auto playback_res = audio::AudioPlayback::create(expander, storage);
return; if (playback_res.has_error()) {
ESP_LOGE(TAG, "Failed! Playback will not work.");
} else {
playback = std::move(playback_res.value());
}
} }
std::shared_ptr<audio::AudioPlayback> playback =
std::move(playback_res.value());
ESP_LOGI(TAG, "Waiting for background tasks before launching console..."); ESP_LOGI(TAG, "Waiting for background tasks before launching console...");
vTaskDelay(pdMS_TO_TICKS(1000)); vTaskDelay(pdMS_TO_TICKS(1000));

Loading…
Cancel
Save