From c3985709e449704e2c0407b6bcf86db19ef10a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Thu, 18 Feb 2021 13:25:22 +0100 Subject: [PATCH] version: add optional oem version tag (ext/oem-) and log it --- src/lib/version/px_update_git_header.py | 13 ++++++++++++- src/lib/version/version.c | 5 +++++ src/lib/version/version.h | 5 +++++ src/modules/logger/logger.cpp | 7 +++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/lib/version/px_update_git_header.py b/src/lib/version/px_update_git_header.py index 7e455dfa0a..42c00676c0 100755 --- a/src/lib/version/px_update_git_header.py +++ b/src/lib/version/px_update_git_header.py @@ -84,15 +84,26 @@ except: git_branch_name = '' git_version_short = git_version[0:16] +# OEM version +try: + oem_tag = subprocess.check_output('git describe --match ext/oem-* --tags'.split(), + stderr=subprocess.STDOUT).decode('utf-8').strip() + oem_tag = oem_tag[8:] +except: + oem_tag = '' + header += """ #define PX4_GIT_VERSION_STR "{git_version}" #define PX4_GIT_VERSION_BINARY 0x{git_version_short} #define PX4_GIT_TAG_STR "{git_tag}" #define PX4_GIT_BRANCH_NAME "{git_branch_name}" + +#define PX4_GIT_OEM_VERSION_STR "{oem_tag}" """.format(git_tag=git_tag, git_version=git_version, git_version_short=git_version_short, - git_branch_name=git_branch_name) + git_branch_name=git_branch_name, + oem_tag=oem_tag) # ECL diff --git a/src/lib/version/version.c b/src/lib/version/version.c index 4b2754e493..f0b137661b 100644 --- a/src/lib/version/version.c +++ b/src/lib/version/version.c @@ -370,3 +370,8 @@ uint64_t px4_os_version_binary(void) #endif } +const char *px4_firmware_oem_version_string(void) +{ + return PX4_GIT_OEM_VERSION_STR; +} + diff --git a/src/lib/version/version.h b/src/lib/version/version.h index 4db5927140..2190fefdbf 100644 --- a/src/lib/version/version.h +++ b/src/lib/version/version.h @@ -187,5 +187,10 @@ __EXPORT uint64_t px4_mavlink_lib_version_binary(void); */ __EXPORT uint64_t px4_os_version_binary(void); +/** + * get the git oem version tag (can be empty, no particular format) + */ +__EXPORT const char *px4_firmware_oem_version_string(void); + __END_DECLS diff --git a/src/modules/logger/logger.cpp b/src/modules/logger/logger.cpp index b8c3ee16ef..fc5c4eb6e3 100644 --- a/src/modules/logger/logger.cpp +++ b/src/modules/logger/logger.cpp @@ -1781,6 +1781,13 @@ void Logger::write_version(LogType type) write_info(type, "sys_os_ver", os_version); } + const char *oem_version = px4_firmware_oem_version_string(); + + if (oem_version && oem_version[0]) { + write_info(type, "ver_oem", oem_version); + } + + write_info(type, "sys_os_ver_release", px4_os_version()); write_info(type, "sys_toolchain", px4_toolchain_name()); write_info(type, "sys_toolchain_ver", px4_toolchain_version());