CLI: device info

This commit is contained in:
DrZlo13 2021-12-02 17:28:01 +10:00
parent faab039929
commit 8bc89c4dda
6 changed files with 96 additions and 33 deletions

View File

@ -73,7 +73,7 @@ execute_process(
OUTPUT_VARIABLE BM_GIT_DESC
OUTPUT_STRIP_TRAILING_WHITESPACE)
message(STATUS "BM Version: ${BM_GIT_DESC}")
message(STATUS "BM version: ${BM_GIT_DESC}")
idf_component_register(SRCS ${BM_SOURCES} ${BM_TARGETS}
INCLUDE_DIRS ${BM_INCLUDE})

View File

@ -14,6 +14,7 @@ set(SOURCES
"cli-uart.c"
"cli-commands.c"
"cli-command-gpio.c"
"cli-command-device-info.c"
"cli-args.c"
)
@ -23,3 +24,46 @@ set(INCLUDES
idf_component_register(SRCS ${SOURCES}
INCLUDE_DIRS ${INCLUDES})
# Commit
execute_process(
COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE FW_GIT_COMMIT
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Branch
execute_process(
COMMAND git rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE FW_GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Branch number
execute_process(
COMMAND git rev-list --count HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE FW_GIT_BRANCH_NUM
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Version
execute_process(
COMMAND git describe --tags --abbrev=0
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE FW_GIT_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE)
# Build date
string(TIMESTAMP FW_BUILD_DATE "%d-%m-%Y")
message(STATUS "FW date: ${FW_BUILD_DATE}")
message(STATUS "FW commit: ${FW_GIT_COMMIT}")
message(STATUS "FW branch: ${FW_GIT_BRANCH}")
message(STATUS "FW branch num: ${FW_GIT_BRANCH_NUM}")
message(STATUS "FW version: ${FW_GIT_VERSION}")
set_property(SOURCE "cli-command-device-info.c" APPEND PROPERTY COMPILE_OPTIONS -DFW_BUILD_DATE="${FW_BUILD_DATE}")
set_property(SOURCE "cli-command-device-info.c" APPEND PROPERTY COMPILE_OPTIONS -DFW_GIT_COMMIT="${FW_GIT_COMMIT}")
set_property(SOURCE "cli-command-device-info.c" APPEND PROPERTY COMPILE_OPTIONS -DFW_GIT_BRANCH="${FW_GIT_BRANCH}")
set_property(SOURCE "cli-command-device-info.c" APPEND PROPERTY COMPILE_OPTIONS -DFW_GIT_BRANCH_NUM="${FW_GIT_BRANCH_NUM}")
set_property(SOURCE "cli-command-device-info.c" APPEND PROPERTY COMPILE_OPTIONS -DFW_GIT_VERSION="${FW_GIT_VERSION}")

View File

@ -0,0 +1,37 @@
#include "cli.h"
#include "cli-args.h"
#include "cli-commands.h"
#include "helpers.h"
#include <gdb-glue.h>
#include <esp_mac.h>
void cli_device_info(Cli* cli, mstring_t* args) {
uint8_t mac_addr[6] = {0};
ESP_ERROR_CHECK(esp_read_mac(mac_addr, ESP_MAC_WIFI_STA));
cli_printf(cli, "hardware_uid: ");
cli_printf(
cli,
"%02x%02x%02x%02x%02x%02x",
mac_addr[0],
mac_addr[1],
mac_addr[2],
mac_addr[3],
mac_addr[4],
mac_addr[5]);
cli_write_eol(cli);
cli_printf(cli, "idf_ver: %s", IDF_VER);
cli_write_eol(cli);
cli_printf(cli, "blackmagic_version: %s", gdb_glue_get_bm_version());
cli_write_eol(cli);
cli_printf(cli, "firmware_commit: %s", FW_GIT_COMMIT);
cli_write_eol(cli);
cli_printf(cli, "firmware_branch: %s", FW_GIT_BRANCH);
cli_write_eol(cli);
cli_printf(cli, "firmware_branch_num: %s", FW_GIT_BRANCH_NUM);
cli_write_eol(cli);
cli_printf(cli, "firmware_version: %s", FW_GIT_VERSION);
cli_write_eol(cli);
cli_printf(cli, "firmware_build_date: %s", FW_BUILD_DATE);
}

View File

@ -1,37 +1,35 @@
#include <stdlib.h>
#include <stdint.h>
#include <esp_mac.h>
#include "cli.h"
#include "cli-args.h"
#include "cli-commands.h"
#include "helpers.h"
void cli_id(Cli* cli, mstring_t* args);
void cli_help(Cli* cli, mstring_t* args);
void cli_version(Cli* cli, mstring_t* args);
void cli_gpio_set(Cli* cli, mstring_t* args);
void cli_device_info(Cli* cli, mstring_t* args);
const CliItem cli_items[] = {
{
.name = "?",
.callback = cli_help,
.name = "!",
.callback = cli_device_info,
},
{
.name = "id",
.callback = cli_id,
.name = "?",
.callback = cli_help,
},
{
.name = "help",
.callback = cli_help,
},
{
.name = "version",
.callback = cli_version,
},
{
.name = "gpio_set",
.callback = cli_gpio_set,
},
{
.name = "device_info",
.callback = cli_device_info,
},
};
size_t cli_items_count = COUNT_OF(cli_items);
@ -44,24 +42,4 @@ void cli_help(Cli* cli, mstring_t* args) {
cli_write_eol(cli);
}
}
}
void cli_id(Cli* cli, mstring_t* args) {
uint8_t mac_addr[6] = {0};
ESP_ERROR_CHECK(esp_read_mac(mac_addr, ESP_MAC_WIFI_STA));
cli_printf(
cli,
"%02X%02X%02X%02X%02X%02X",
mac_addr[0],
mac_addr[1],
mac_addr[2],
mac_addr[3],
mac_addr[4],
mac_addr[5]);
}
void cli_version(Cli* cli, mstring_t* args) {
cli_printf(cli, "IDF version: %s", IDF_VER);
cli_write_eol(cli);
cli_printf(cli, "FW version: %s", "0.1");
}

View File

@ -8,6 +8,8 @@
*/
#pragma once
#include "stdint.h"
#include "stdlib.h"
typedef struct Cli Cli;
typedef struct CliItem CliItem;

View File

@ -7,4 +7,6 @@
* Misc helpers
*/
#define COUNT_OF(x) (sizeof(x) / sizeof((x)[0]))
#define COUNT_OF(x) (sizeof(x) / sizeof((x)[0]))
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)