13 ноября 2024 Hardware ESP32S3 ESP32 console_cmd_ping
В инфрастуктуре проекта esp32.com имеется регистр готовых компонентов. Мне потребовалось протестировать и посмотреть как устроены некоторые механизмы компонента espressif/console_cmd_ping, доступном по адресу https://components.espressif.com/components/espressif/console_cmd_ping/versions/1.1.0
Для сборки приложения с этим компонентом необходимо включить его с помощью команды idf.py add-dependency "espressif/console_cmd_ping^1.1.0" в директории текущего или нового проекта
Затем добавить код иницилизации из описания компонента. Но для того чтобы использовать его возможности необходимо включить возможность записи в терминале, а для этого необходимо изменить настройки сборки с помощью idf.py menuconfig
Там найти и включить Component config > ESP System Settings > Channel for console output > choose USB Serial/JTAG Controller, а затем пересобрать приложение.
После перепрошивки платы можно подключиться к терминалу платы и выполнять команды:
help [<string>]
Print the summary of all registered commands if no arguments are given,
otherwise print summary of given command.
<string> Name of command
ping [-W <t>] [-i <t>] [-s <n>] [-c <n>] [-Q <n>] [-T <n>] <host>
send ICMP ECHO_REQUEST to network hosts
-W, --timeout=<t> Time to wait for a response, in seconds
-i, --interval=<t> Wait interval seconds between sending each packet
-s, --size=<n> Specify the number of data bytes to be sent
-c, --count=<n> Stop after sending count packets
-Q, --tos=<n> Set Type of Service related bits in IP datagrams
-T, --ttl=<n> Set Time to Live related bits in IP datagrams
<host> Host address
getaddrinfo [-f <AF>] [-F <FLAGS>]... [-p <port>] <hostname>
Usage: getaddrinfo [options] <hostname> [service]
-f, --family=<AF> Address family (AF_INET, AF_INET6, AF_UNSPEC).
-F, --flags=<FLAGS> Special flags (AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST, AI_V4MAPPED, AI_ALL).
-p, --port=<port> String containing a numeric port number.
<hostname> Host address
setdnsserver <main> [backup] [fallback]
Usage: setdnsserver <main> [backup] [fallback]
<main> The main DNS server IP address.
backup The secondary DNS server IP address (optional).
fallback The fallback DNS server IP address (optional).
getdnsserver
Usage: getdnsserver
По сути, это реализация микро sh и легко расширяется