From 9d5167e68d7db21e0fbd01b729825615a6270ac3 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Wed, 5 Jun 2024 18:12:04 -0400 Subject: [PATCH] Implement a firmware build string command --- src/ncp-uart-hw/app.c | 14 ++++++++++++++ src/ncp-uart-hw/config/xncp_config.h | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/src/ncp-uart-hw/app.c b/src/ncp-uart-hw/app.c index c93e7a83..df722e51 100644 --- a/src/ncp-uart-hw/app.c +++ b/src/ncp-uart-hw/app.c @@ -33,10 +33,12 @@ #define FEATURE_MEMBER_OF_ALL_GROUPS (0b00000000000000000000000000000001) #define FEATURE_MANUAL_SOURCE_ROUTE (0b00000000000000000000000000000010) #define FEATURE_MFG_TOKEN_OVERRIDES (0b00000000000000000000000000000100) +#define FEATURE_BUILD_STRING (0b00000000000000000000000000001000) #define SUPPORTED_FEATURES ( \ FEATURE_MEMBER_OF_ALL_GROUPS \ | FEATURE_MANUAL_SOURCE_ROUTE \ | FEATURE_MFG_TOKEN_OVERRIDES \ + | FEATURE_BUILD_STRING \ ) @@ -44,10 +46,12 @@ typedef enum { XNCP_CMD_GET_SUPPORTED_FEATURES_REQ = 0x0000, XNCP_CMD_SET_SOURCE_ROUTE_REQ = 0x0001, XNCP_CMD_GET_MFG_TOKEN_OVERRIDE_REQ = 0x0002, + XNCP_CMD_GET_BUILD_STRING_REQ = 0x0003, XNCP_CMD_GET_SUPPORTED_FEATURES_RSP = XNCP_CMD_GET_SUPPORTED_FEATURES_REQ | 0x8000, XNCP_CMD_SET_SOURCE_ROUTE_RSP = XNCP_CMD_SET_SOURCE_ROUTE_REQ | 0x8000, XNCP_CMD_GET_MFG_TOKEN_OVERRIDE_RSP = XNCP_CMD_GET_MFG_TOKEN_OVERRIDE_REQ | 0x8000, + XNCP_CMD_GET_BUILD_STRING_RSP = XNCP_CMD_GET_BUILD_STRING_REQ | 0x8000, XNCP_CMD_UNKNOWN = 0xFFFF } XNCP_COMMAND; @@ -308,6 +312,16 @@ EmberStatus emberAfPluginXncpIncomingCustomFrameCallback(uint8_t messageLength, break; } + case XNCP_CMD_GET_BUILD_STRING_REQ: { + rsp_command_id = XNCP_CMD_GET_BUILD_STRING_RSP; + rsp_status = EMBER_SUCCESS; + + uint8_t value_length = strlen(XNCP_BUILD_STRING); + memcpy(replyPayload + *replyPayloadLength, XNCP_BUILD_STRING, value_length); + *replyPayloadLength += value_length; + break; + } + default: { rsp_status = EMBER_NOT_FOUND; break; diff --git a/src/ncp-uart-hw/config/xncp_config.h b/src/ncp-uart-hw/config/xncp_config.h index 190b5ea9..fd85149b 100644 --- a/src/ncp-uart-hw/config/xncp_config.h +++ b/src/ncp-uart-hw/config/xncp_config.h @@ -13,4 +13,8 @@ #define XNCP_MFG_MANUF_NAME ("") #define XNCP_MFG_BOARD_NAME ("") + +// Specify a build string that can be read by the host, augmenting its version info +#define XNCP_BUILD_STRING ("") + #endif /* CONFIG_XNCP_CONFIG_H_ */