1. add support for ESP32 DTE 2. add support for SIM800/BG96 DCE 3. add PPPoS setup procedure 4. add support for SMS 5. add mqtt example after PPP connection established
131 lines
3.3 KiB
C
131 lines
3.3 KiB
C
// Copyright 2015-2018 Espressif Systems (Shanghai) PTE LTD
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "esp_modem_dce.h"
|
|
|
|
/**
|
|
* @brief Indicate that processing current command has done
|
|
*
|
|
* @param dce Modem DCE object
|
|
* @param state Modem state after processing
|
|
* @return esp_err_t
|
|
* - ESP_OK on success
|
|
* - ESP_FAIL on error
|
|
*/
|
|
static inline esp_err_t esp_modem_process_command_done(modem_dce_t *dce, modem_state_t state)
|
|
{
|
|
dce->state = state;
|
|
return dce->dte->process_cmd_done(dce->dte);
|
|
}
|
|
|
|
/**
|
|
* @brief Strip the tailed "\r\n"
|
|
*
|
|
* @param str string to strip
|
|
* @param len length of string
|
|
*/
|
|
static inline void strip_cr_lf_tail(char *str, uint32_t len)
|
|
{
|
|
if (str[len - 2] == '\r') {
|
|
str[len - 2] = '\0';
|
|
} else if (str[len - 1] == '\r') {
|
|
str[len - 1] = '\0';
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Default handler for response
|
|
* Some responses for command are simple, commonly will return OK when succeed of ERROR when failed
|
|
*
|
|
* @param dce Modem DCE object
|
|
* @param line line string
|
|
* @return esp_err_t
|
|
* - ESP_OK on success
|
|
* - ESP_FAIL on error
|
|
*/
|
|
esp_err_t esp_modem_dce_handle_response_default(modem_dce_t *dce, const char *line);
|
|
|
|
/**
|
|
* @brief Syncronization
|
|
*
|
|
* @param dce Modem DCE object
|
|
* @return esp_err_t
|
|
* - ESP_OK on success
|
|
* - ESP_FAIL on error
|
|
*/
|
|
esp_err_t esp_modem_dce_sync(modem_dce_t *dce);
|
|
|
|
/**
|
|
* @brief Enable or not echo mode of DCE
|
|
*
|
|
* @param dce Modem DCE object
|
|
* @param on true to enable echo mode, false to disable echo mode
|
|
* @return esp_err_t
|
|
* - ESP_OK on success
|
|
* - ESP_FAIL on error
|
|
*/
|
|
esp_err_t esp_modem_dce_echo(modem_dce_t *dce, bool on);
|
|
|
|
/**
|
|
* @brief Store current parameter setting in the user profile
|
|
*
|
|
* @param dce Modem DCE object
|
|
* @return esp_err_t
|
|
* - ESP_OK on success
|
|
* - ESP_FAIL on error
|
|
*/
|
|
esp_err_t esp_modem_dce_store_profile(modem_dce_t *dce);
|
|
|
|
/**
|
|
* @brief Set flow control mode of DCE in data mode
|
|
*
|
|
* @param dce Modem DCE object
|
|
* @param flow_ctrl flow control mode
|
|
* @return esp_err_t
|
|
* - ESP_OK on success
|
|
* - ESP_FAIL on error
|
|
*/
|
|
esp_err_t esp_modem_dce_set_flow_ctrl(modem_dce_t *dce, modem_flow_ctrl_t flow_ctrl);
|
|
|
|
/**
|
|
* @brief Define PDP context
|
|
*
|
|
* @param dce Modem DCE object
|
|
* @param cid PDP context identifier
|
|
* @param type Protocol type
|
|
* @param apn Access point name
|
|
* @return esp_err_t
|
|
* - ESP_OK on success
|
|
* - ESP_FAIL on error
|
|
*/
|
|
esp_err_t esp_modem_dce_define_pdp_context(modem_dce_t *dce, uint32_t cid, const char *type, const char *apn);
|
|
|
|
/**
|
|
* @brief Hang up
|
|
*
|
|
* @param dce Modem DCE object
|
|
* @return esp_err_t
|
|
* - ESP_OK on success
|
|
* - ESP_FAIL on error
|
|
*/
|
|
esp_err_t esp_modem_dce_hang_up(modem_dce_t *dce);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|