feat(esp_modem): Add CMUX mode to C-API

Closes https://github.com/espressif/esp-protocols/issues/41
This commit is contained in:
David Cermak
2022-05-26 17:40:02 +02:00
parent a16aab6979
commit 3fd4391c38
2 changed files with 8 additions and 0 deletions

View File

@ -39,6 +39,7 @@ typedef enum esp_modem_dce_mode
{ {
ESP_MODEM_MODE_COMMAND, /**< Default mode after modem startup, used for sending AT commands */ ESP_MODEM_MODE_COMMAND, /**< Default mode after modem startup, used for sending AT commands */
ESP_MODEM_MODE_DATA, /**< Used for switching to PPP mode for the modem to connect to a network */ ESP_MODEM_MODE_DATA, /**< Used for switching to PPP mode for the modem to connect to a network */
ESP_MODEM_MODE_CMUX, /**< Multiplexed terminal mode */
} esp_modem_dce_mode_t; } esp_modem_dce_mode_t;
/** /**

View File

@ -125,6 +125,13 @@ extern "C" esp_err_t esp_modem_set_mode(esp_modem_dce_t *dce_wrap, esp_modem_dce
dce_wrap->dce->set_data(); dce_wrap->dce->set_data();
} else if (mode == ESP_MODEM_MODE_COMMAND) { } else if (mode == ESP_MODEM_MODE_COMMAND) {
dce_wrap->dce->exit_data(); dce_wrap->dce->exit_data();
} else if (mode == ESP_MODEM_MODE_CMUX) {
if (dce_wrap->dce->set_mode(modem_mode::CMUX_MODE) &&
// automatically switch to data mode for the primary terminal
dce_wrap->dce->set_mode(modem_mode::DATA_MODE)) {
return ESP_OK;
}
return ESP_FAIL;
} else { } else {
return ESP_ERR_NOT_SUPPORTED; return ESP_ERR_NOT_SUPPORTED;
} }