mirror of
https://github.com/espressif/esp-protocols.git
synced 2025-07-16 12:02:11 +02:00
esp_modem_get_gnss_power_mode (#136)
Co-authored-by: Franz Höpfinger <krone-trailer@franzhoepfinger.de>
This commit is contained in:
committed by
GitHub
parent
afafcb7c24
commit
fe536e476c
@ -295,6 +295,13 @@ ESP_MODEM_DECLARE_DCE_COMMAND(get_network_system_mode, command_result, 1, INT_OU
|
|||||||
*/ \
|
*/ \
|
||||||
ESP_MODEM_DECLARE_DCE_COMMAND(set_gnss_power_mode, command_result, 1, INT_IN(p1, mode)) \
|
ESP_MODEM_DECLARE_DCE_COMMAND(set_gnss_power_mode, command_result, 1, INT_IN(p1, mode)) \
|
||||||
\
|
\
|
||||||
|
/**
|
||||||
|
* @brief GNSS power control
|
||||||
|
* @param[out] mode power mode (0 - off, 1 - on)
|
||||||
|
* @return OK, FAIL or TIMEOUT
|
||||||
|
*/ \
|
||||||
|
ESP_MODEM_DECLARE_DCE_COMMAND(get_gnss_power_mode, command_result, 1, INT_OUT(p1, mode)) \
|
||||||
|
\
|
||||||
|
|
||||||
|
|
||||||
#ifdef GENERATE_DOCS
|
#ifdef GENERATE_DOCS
|
||||||
|
@ -371,6 +371,19 @@ extern "C" esp_err_t esp_modem_set_gnss_power_mode(esp_modem_dce_t *dce_wrap, in
|
|||||||
return command_response_to_esp_err(dce_wrap->dce->set_gnss_power_mode(mode));
|
return command_response_to_esp_err(dce_wrap->dce->set_gnss_power_mode(mode));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" esp_err_t esp_modem_get_gnss_power_mode(esp_modem_dce_t *dce_wrap, int *p_mode)
|
||||||
|
{
|
||||||
|
if (dce_wrap == nullptr || dce_wrap->dce == nullptr) {
|
||||||
|
return ESP_ERR_INVALID_ARG;
|
||||||
|
}
|
||||||
|
int mode;
|
||||||
|
auto ret = command_response_to_esp_err(dce_wrap->dce->get_gnss_power_mode(mode));
|
||||||
|
if (ret == ESP_OK) {
|
||||||
|
*p_mode = mode;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" esp_err_t esp_modem_reset(esp_modem_dce_t *dce_wrap)
|
extern "C" esp_err_t esp_modem_reset(esp_modem_dce_t *dce_wrap)
|
||||||
{
|
{
|
||||||
return command_response_to_esp_err(dce_wrap->dce->reset());
|
return command_response_to_esp_err(dce_wrap->dce->reset());
|
||||||
|
@ -554,6 +554,27 @@ command_result set_gnss_power_mode(CommandableIf *t, int mode)
|
|||||||
return generic_command_common(t, "AT+CGNSPWR=" + std::to_string(mode) + "\r");
|
return generic_command_common(t, "AT+CGNSPWR=" + std::to_string(mode) + "\r");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
command_result get_gnss_power_mode(CommandableIf *t, int &mode)
|
||||||
|
{
|
||||||
|
ESP_LOGV(TAG, "%s", __func__ );
|
||||||
|
std::string_view out;
|
||||||
|
auto ret = generic_get_string(t, "AT+CGNSPWR?\r", out);
|
||||||
|
if (ret != command_result::OK) {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
constexpr std::string_view pattern = "+CGNSPWR: ";
|
||||||
|
constexpr int pos = pattern.size();
|
||||||
|
if (out.find(pattern) == std::string::npos) {
|
||||||
|
return command_result::FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (std::from_chars(out.data() + pos, out.data() + out.size(), mode).ec == std::errc::invalid_argument) {
|
||||||
|
return command_result::FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return command_result::OK;
|
||||||
|
}
|
||||||
|
|
||||||
command_result set_gnss_power_mode_sim76xx(CommandableIf *t, int mode)
|
command_result set_gnss_power_mode_sim76xx(CommandableIf *t, int mode)
|
||||||
{
|
{
|
||||||
ESP_LOGV(TAG, "%s", __func__ );
|
ESP_LOGV(TAG, "%s", __func__ );
|
||||||
|
Reference in New Issue
Block a user