diff --git a/dsdl/uavcan/protocol/SoftwareVersion.uavcan b/dsdl/uavcan/protocol/SoftwareVersion.uavcan index 59c61cd0c9..04ce45059d 100644 --- a/dsdl/uavcan/protocol/SoftwareVersion.uavcan +++ b/dsdl/uavcan/protocol/SoftwareVersion.uavcan @@ -3,6 +3,17 @@ # Generic software version information. # +# Primary version numbers for humans. Can be both set to zeros if not available. uint8 major uint8 minor -uint32 build # VCS revision hash, build date, etc + +# This mask indicates which optional fields are set. +uint8 OPTIONAL_FIELD_MASK_VCS_COMMIT = 1 +uint8 OPTIONAL_FIELD_MASK_IMAGE_CRC = 2 +uint8 optional_field_mask + +# VCS commit hash or revision number, e.g. git short commit hash. Useful for the developers. Optional. +uint32 vcs_commit + +# CRC-64-WE of the firmware image. CRC function is the same as in the data type signature. Optional. +uint64 image_crc diff --git a/libuavcan/include/uavcan/build_config.hpp b/libuavcan/include/uavcan/build_config.hpp index 8d6162a4ec..34be68ff76 100644 --- a/libuavcan/include/uavcan/build_config.hpp +++ b/libuavcan/include/uavcan/build_config.hpp @@ -6,7 +6,6 @@ /** * UAVCAN version definition - * // TODO: Use git short hash as build id */ #define UAVCAN_VERSION_MAJOR 0 #define UAVCAN_VERSION_MINOR 1 diff --git a/libuavcan/test/dsdl_test/dsdl_uavcan_compilability.cpp b/libuavcan/test/dsdl_test/dsdl_uavcan_compilability.cpp index 315a7bc746..d6c12437e4 100644 --- a/libuavcan/test/dsdl_test/dsdl_uavcan_compilability.cpp +++ b/libuavcan/test/dsdl_test/dsdl_uavcan_compilability.cpp @@ -62,7 +62,9 @@ TEST(Dsdl, Streaming) "software_version: \n" " major: 0\n" " minor: 0\n" - " build: 0\n" + " optional_field_mask: 0\n" + " vcs_commit: 0\n" + " image_crc: 0\n" "status: \n" " uptime_sec: 0\n" " status_code: 0\n" diff --git a/libuavcan/test/node/node.cpp b/libuavcan/test/node/node.cpp index 038e258398..2598907abb 100644 --- a/libuavcan/test/node/node.cpp +++ b/libuavcan/test/node/node.cpp @@ -30,7 +30,7 @@ TEST(Node, Basic) uavcan::protocol::SoftwareVersion swver; swver.major = 0; swver.minor = 1; - swver.build = 0xDEADBEEF; + swver.vcs_commit = 0xDEADBEEF; /* * uavcan::Node diff --git a/libuavcan/test/protocol/network_compat_checker.cpp b/libuavcan/test/protocol/network_compat_checker.cpp index cf12167723..48b07bf9af 100644 --- a/libuavcan/test/protocol/network_compat_checker.cpp +++ b/libuavcan/test/protocol/network_compat_checker.cpp @@ -33,7 +33,7 @@ struct NetworkCompatibilityCheckerRemoteContext { node_status_provider.setName("com.example"); uavcan::protocol::SoftwareVersion swver; - swver.build = 1; + swver.vcs_commit = 1; node_status_provider.setSoftwareVersion(swver); } diff --git a/libuavcan/test/protocol/node_status_provider.cpp b/libuavcan/test/protocol/node_status_provider.cpp index 993707dc8e..52b4ae2b93 100644 --- a/libuavcan/test/protocol/node_status_provider.cpp +++ b/libuavcan/test/protocol/node_status_provider.cpp @@ -23,7 +23,7 @@ TEST(NodeStatusProvider, Basic) uavcan::protocol::SoftwareVersion swver; swver.major = 2; swver.minor = 18; - swver.build = 0x600DF00D; + swver.vcs_commit = 0x600DF00D; nsp.setHardwareVersion(hwver); nsp.setSoftwareVersion(swver);