@@ -95,12 +95,43 @@ extern "C" esp_err_t esp_modem_sync(esp_modem_dce_t *dce_wrap)
9595 return command_response_to_esp_err (dce_wrap->dce ->sync ());
9696}
9797
98+ extern " C" esp_modem_dce_mode_t esp_modem_get_mode (esp_modem_dce_t *dce_wrap)
99+ {
100+ if (dce_wrap == nullptr || dce_wrap->dce == nullptr ) {
101+ return ESP_MODEM_MODE_UNDEF ;
102+ }
103+ auto mode = dce_wrap->dce ->get_mode ();
104+ switch (mode) {
105+ default :
106+ case modem_mode::UNDEF :
107+ return ESP_MODEM_MODE_UNDEF ;
108+ case modem_mode::COMMAND_MODE :
109+ return ESP_MODEM_MODE_COMMAND ;
110+ case modem_mode::DATA_MODE :
111+ return ESP_MODEM_MODE_DATA ;
112+ case modem_mode::CMUX_MODE :
113+ return ESP_MODEM_MODE_CMUX ;
114+ case modem_mode::CMUX_MANUAL_MODE :
115+ return ESP_MODEM_MODE_CMUX_MANUAL ;
116+ case modem_mode::CMUX_MANUAL_EXIT :
117+ return ESP_MODEM_MODE_CMUX_MANUAL_EXIT ;
118+ case modem_mode::CMUX_MANUAL_DATA :
119+ return ESP_MODEM_MODE_CMUX_MANUAL_DATA ;
120+ case modem_mode::CMUX_MANUAL_COMMAND :
121+ return ESP_MODEM_MODE_CMUX_MANUAL_COMMAND ;
122+ case modem_mode::CMUX_MANUAL_SWAP :
123+ return ESP_MODEM_MODE_CMUX_MANUAL_SWAP ;
124+ }
125+ }
126+
98127extern " C" esp_err_t esp_modem_set_mode (esp_modem_dce_t *dce_wrap, esp_modem_dce_mode_t mode)
99128{
100129 if (dce_wrap == nullptr || dce_wrap->dce == nullptr ) {
101130 return ESP_ERR_INVALID_ARG ;
102131 }
103132 switch (mode) {
133+ case ESP_MODEM_MODE_UNDEF :
134+ return dce_wrap->dce ->set_mode (modem_mode::UNDEF ) ? ESP_OK : ESP_FAIL ;
104135 case ESP_MODEM_MODE_DATA :
105136 return dce_wrap->dce ->set_mode (modem_mode::DATA_MODE ) ? ESP_OK : ESP_FAIL ;
106137 case ESP_MODEM_MODE_COMMAND :
@@ -117,6 +148,8 @@ extern "C" esp_err_t esp_modem_set_mode(esp_modem_dce_t *dce_wrap, esp_modem_dce
117148 return dce_wrap->dce ->set_mode (modem_mode::CMUX_MANUAL_DATA ) ? ESP_OK : ESP_FAIL ;
118149 case ESP_MODEM_MODE_CMUX_MANUAL_COMMAND :
119150 return dce_wrap->dce ->set_mode (modem_mode::CMUX_MANUAL_COMMAND ) ? ESP_OK : ESP_FAIL ;
151+ case ESP_MODEM_MODE_DETECT :
152+ return dce_wrap->dce ->set_mode (modem_mode::AUTODETECT ) ? ESP_OK : ESP_FAIL ;
120153 }
121154 return ESP_ERR_NOT_SUPPORTED ;
122155}
0 commit comments