mirror of
https://github.com/espressif/esp-protocols.git
synced 2025-07-23 15:27:28 +02:00
extended the modem_console example. (#120)
Co-authored-by: Franz Höpfinger <krone-trailer@franzhoepfinger.de> Co-authored-by: david-cermak <38914379+david-cermak@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
d2f519f9e5
commit
ef0e48a678
@ -14,4 +14,163 @@ menu "Example Configuration"
|
|||||||
help
|
help
|
||||||
Connect to modem via USB (CDC-ACM class). For IDF version >= 4.4.
|
Connect to modem via USB (CDC-ACM class). For IDF version >= 4.4.
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
choice EXAMPLE_MODEM_DEVICE
|
||||||
|
prompt "Choose supported modem device (DCE)"
|
||||||
|
default EXAMPLE_MODEM_DEVICE_BG96
|
||||||
|
help
|
||||||
|
Select modem device connected to the ESP DTE.
|
||||||
|
config EXAMPLE_MODEM_DEVICE_SHINY
|
||||||
|
bool "SHINY"
|
||||||
|
help
|
||||||
|
SHINY is a GSM/GPRS module.
|
||||||
|
It supports SHINY.
|
||||||
|
config EXAMPLE_MODEM_DEVICE_SIM800
|
||||||
|
bool "SIM800"
|
||||||
|
help
|
||||||
|
SIMCom SIM800L is a GSM/GPRS module.
|
||||||
|
It supports Quad-band 850/900/1800/1900MHz.
|
||||||
|
config EXAMPLE_MODEM_DEVICE_BG96
|
||||||
|
bool "BG96"
|
||||||
|
help
|
||||||
|
Quectel BG96 is a series of LTE Cat M1/Cat NB1/EGPRS module.
|
||||||
|
config EXAMPLE_MODEM_DEVICE_SIM7000
|
||||||
|
bool "SIM7000"
|
||||||
|
help
|
||||||
|
SIM7000 is a Multi-Band LTE-FDD and GSM/GPRS/EDGE module.
|
||||||
|
config EXAMPLE_MODEM_DEVICE_SIM7070
|
||||||
|
bool "SIM7070"
|
||||||
|
help
|
||||||
|
SIM7070 is Multi-Band CAT M and NB IoT module.
|
||||||
|
config EXAMPLE_MODEM_DEVICE_SIM7600
|
||||||
|
bool "SIM7600"
|
||||||
|
help
|
||||||
|
SIM7600 is a Multi-Band LTE-TDD/LTE-FDD/HSPA+ and GSM/GPRS/EDGE module.
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_PPP_APN
|
||||||
|
string "Set MODEM APN"
|
||||||
|
default "internet"
|
||||||
|
help
|
||||||
|
Set APN (Access Point Name), a logical name to choose data network
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_PPP_AUTH_USERNAME
|
||||||
|
string "Set username for authentication"
|
||||||
|
default "espressif"
|
||||||
|
depends on !EXAMPLE_MODEM_PPP_AUTH_NONE
|
||||||
|
help
|
||||||
|
Set username for PPP Authentication.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_PPP_AUTH_PASSWORD
|
||||||
|
string "Set password for authentication"
|
||||||
|
default "esp32"
|
||||||
|
depends on !EXAMPLE_MODEM_PPP_AUTH_NONE
|
||||||
|
help
|
||||||
|
Set password for PPP Authentication.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_PPP_AUTH_NONE
|
||||||
|
bool "Skip PPP authentication"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Set to true for the PPP client to skip authentication
|
||||||
|
|
||||||
|
config EXAMPLE_SEND_MSG
|
||||||
|
bool "Short message (SMS)"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Select this, the modem will send a short message before power off.
|
||||||
|
|
||||||
|
if EXAMPLE_SEND_MSG
|
||||||
|
config EXAMPLE_SEND_MSG_PEER_PHONE_NUMBER
|
||||||
|
string "Peer Phone Number (with area code)"
|
||||||
|
default "+8610086"
|
||||||
|
help
|
||||||
|
Enter the peer phone number that you want to send message to.
|
||||||
|
endif
|
||||||
|
|
||||||
|
config EXAMPLE_NEED_SIM_PIN
|
||||||
|
bool "SIM PIN needed"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Enable to set SIM PIN before starting the example
|
||||||
|
|
||||||
|
config EXAMPLE_SIM_PIN
|
||||||
|
string "Set SIM PIN"
|
||||||
|
default "1234"
|
||||||
|
depends on EXAMPLE_NEED_SIM_PIN
|
||||||
|
help
|
||||||
|
Pin to unlock the SIM
|
||||||
|
|
||||||
|
menu "UART Configuration"
|
||||||
|
config EXAMPLE_MODEM_UART_TX_PIN
|
||||||
|
int "TXD Pin Number"
|
||||||
|
default 25
|
||||||
|
range 0 31
|
||||||
|
help
|
||||||
|
Pin number of UART TX.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_UART_RX_PIN
|
||||||
|
int "RXD Pin Number"
|
||||||
|
default 26
|
||||||
|
range 0 31
|
||||||
|
help
|
||||||
|
Pin number of UART RX.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_UART_RTS_PIN
|
||||||
|
int "RTS Pin Number"
|
||||||
|
default 27
|
||||||
|
range 0 31
|
||||||
|
help
|
||||||
|
Pin number of UART RTS.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_UART_CTS_PIN
|
||||||
|
int "CTS Pin Number"
|
||||||
|
default 23
|
||||||
|
range 0 31
|
||||||
|
help
|
||||||
|
Pin number of UART CTS.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_UART_EVENT_TASK_STACK_SIZE
|
||||||
|
int "UART Event Task Stack Size"
|
||||||
|
range 2000 6000
|
||||||
|
default 2048
|
||||||
|
help
|
||||||
|
Stack size of UART event task.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_UART_EVENT_TASK_PRIORITY
|
||||||
|
int "UART Event Task Priority"
|
||||||
|
range 3 22
|
||||||
|
default 5
|
||||||
|
help
|
||||||
|
Priority of UART event task.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_UART_EVENT_QUEUE_SIZE
|
||||||
|
int "UART Event Queue Size"
|
||||||
|
range 10 40
|
||||||
|
default 30
|
||||||
|
help
|
||||||
|
Length of UART event queue.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_UART_PATTERN_QUEUE_SIZE
|
||||||
|
int "UART Pattern Queue Size"
|
||||||
|
range 10 40
|
||||||
|
default 20
|
||||||
|
help
|
||||||
|
Length of UART pattern queue.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_UART_TX_BUFFER_SIZE
|
||||||
|
int "UART TX Buffer Size"
|
||||||
|
range 256 2048
|
||||||
|
default 512
|
||||||
|
help
|
||||||
|
Buffer size of UART TX buffer.
|
||||||
|
|
||||||
|
config EXAMPLE_MODEM_UART_RX_BUFFER_SIZE
|
||||||
|
int "UART RX Buffer Size"
|
||||||
|
range 256 2048
|
||||||
|
default 1024
|
||||||
|
help
|
||||||
|
Buffer size of UART RX buffer.
|
||||||
|
endmenu
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -64,8 +64,43 @@ extern "C" void app_main(void)
|
|||||||
|
|
||||||
#if defined(CONFIG_EXAMPLE_SERIAL_CONFIG_UART)
|
#if defined(CONFIG_EXAMPLE_SERIAL_CONFIG_UART)
|
||||||
esp_modem_dte_config_t dte_config = ESP_MODEM_DTE_DEFAULT_CONFIG();
|
esp_modem_dte_config_t dte_config = ESP_MODEM_DTE_DEFAULT_CONFIG();
|
||||||
|
/* setup UART specific configuration based on kconfig options */
|
||||||
|
dte_config.uart_config.tx_io_num = CONFIG_EXAMPLE_MODEM_UART_TX_PIN;
|
||||||
|
dte_config.uart_config.rx_io_num = CONFIG_EXAMPLE_MODEM_UART_RX_PIN;
|
||||||
|
dte_config.uart_config.rts_io_num = CONFIG_EXAMPLE_MODEM_UART_RTS_PIN;
|
||||||
|
dte_config.uart_config.cts_io_num = CONFIG_EXAMPLE_MODEM_UART_CTS_PIN;
|
||||||
|
dte_config.uart_config.flow_control = ESP_MODEM_FLOW_CONTROL_HW;
|
||||||
|
dte_config.uart_config.rx_buffer_size = CONFIG_EXAMPLE_MODEM_UART_RX_BUFFER_SIZE;
|
||||||
|
dte_config.uart_config.tx_buffer_size = CONFIG_EXAMPLE_MODEM_UART_TX_BUFFER_SIZE;
|
||||||
|
dte_config.uart_config.event_queue_size = CONFIG_EXAMPLE_MODEM_UART_EVENT_QUEUE_SIZE;
|
||||||
|
dte_config.task_stack_size = CONFIG_EXAMPLE_MODEM_UART_EVENT_TASK_STACK_SIZE;
|
||||||
|
dte_config.task_priority = CONFIG_EXAMPLE_MODEM_UART_EVENT_TASK_PRIORITY;
|
||||||
|
dte_config.dte_buffer_size = CONFIG_EXAMPLE_MODEM_UART_RX_BUFFER_SIZE / 2;
|
||||||
auto uart_dte = create_uart_dte(&dte_config);
|
auto uart_dte = create_uart_dte(&dte_config);
|
||||||
|
|
||||||
|
#if CONFIG_EXAMPLE_MODEM_DEVICE_SHINY == 1
|
||||||
|
ESP_LOGI(TAG, "Initializing esp_modem for the SHINY module...");
|
||||||
auto dce = create_shiny_dce(&dce_config, uart_dte, esp_netif);
|
auto dce = create_shiny_dce(&dce_config, uart_dte, esp_netif);
|
||||||
|
#elif CONFIG_EXAMPLE_MODEM_DEVICE_BG96 == 1
|
||||||
|
ESP_LOGI(TAG, "Initializing esp_modem for the BG96 module...");
|
||||||
|
auto dce = create_BG96_dce(&dce_config, uart_dte, esp_netif);
|
||||||
|
#elif CONFIG_EXAMPLE_MODEM_DEVICE_SIM800 == 1
|
||||||
|
ESP_LOGI(TAG, "Initializing esp_modem for the SIM800 module...");
|
||||||
|
auto dce = create_SIM800_dce(&dce_config, uart_dte, esp_netif);
|
||||||
|
#elif CONFIG_EXAMPLE_MODEM_DEVICE_SIM7000 == 1
|
||||||
|
ESP_LOGI(TAG, "Initializing esp_modem for the SIM7000 module...");
|
||||||
|
auto dce = create_SIM7000_dce(&dce_config, uart_dte, esp_netif);
|
||||||
|
#elif CONFIG_EXAMPLE_MODEM_DEVICE_SIM7070 == 1
|
||||||
|
ESP_LOGI(TAG, "Initializing esp_modem for the SIM7070 module...");
|
||||||
|
auto dce = create_SIM7070_dce(&dce_config, uart_dte, esp_netif);
|
||||||
|
#elif CONFIG_EXAMPLE_MODEM_DEVICE_SIM7600 == 1
|
||||||
|
ESP_LOGI(TAG, "Initializing esp_modem for the SIM7600 module...");
|
||||||
|
auto dce = create_SIM7600_dce(&dce_config, uart_dte, esp_netif);
|
||||||
|
#else
|
||||||
|
ESP_LOGI(TAG, "Initializing esp_modem for a generic module...");
|
||||||
|
auto dce = create_generic_dce(&dce_config, uart_dte, esp_netif);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#elif defined(CONFIG_EXAMPLE_SERIAL_CONFIG_USB)
|
#elif defined(CONFIG_EXAMPLE_SERIAL_CONFIG_USB)
|
||||||
struct esp_modem_usb_term_config usb_config = ESP_MODEM_DEFAULT_USB_CONFIG(0x2C7C, 0x0296); // VID and PID of BG96 modem
|
struct esp_modem_usb_term_config usb_config = ESP_MODEM_DEFAULT_USB_CONFIG(0x2C7C, 0x0296); // VID and PID of BG96 modem
|
||||||
@ -82,6 +117,14 @@ extern "C" void app_main(void)
|
|||||||
|
|
||||||
assert(dce != nullptr);
|
assert(dce != nullptr);
|
||||||
|
|
||||||
|
if(dte_config.uart_config.flow_control == ESP_MODEM_FLOW_CONTROL_HW) {
|
||||||
|
if (command_result::OK != dce->set_flow_control(2, 2)) {
|
||||||
|
ESP_LOGE(TAG, "Failed to set the set_flow_control mode");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ESP_LOGI(TAG, "set_flow_control OK");
|
||||||
|
}
|
||||||
|
|
||||||
// init console REPL environment
|
// init console REPL environment
|
||||||
esp_console_repl_config_t repl_config = ESP_CONSOLE_REPL_CONFIG_DEFAULT();
|
esp_console_repl_config_t repl_config = ESP_CONSOLE_REPL_CONFIG_DEFAULT();
|
||||||
esp_console_dev_uart_config_t uart_config = ESP_CONSOLE_DEV_UART_CONFIG_DEFAULT();
|
esp_console_dev_uart_config_t uart_config = ESP_CONSOLE_DEV_UART_CONFIG_DEFAULT();
|
||||||
|
Reference in New Issue
Block a user