.. _program_listing_file__tmp_ws_src_kobuki_core_include_kobuki_core_version_info.hpp: Program Listing for File version_info.hpp ========================================= |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/kobuki_core/include/kobuki_core/version_info.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /***************************************************************************** ** Ifdefs *****************************************************************************/ #ifndef KOBUKI_CORE_VERSION_HPP_ #define KOBUKI_CORE_VERSION_HPP_ /***************************************************************************** ** Includes *****************************************************************************/ #include #include #include #include #include #include "macros.hpp" /***************************************************************************** ** Namespaces *****************************************************************************/ namespace kobuki { /***************************************************************************** ** Interfaces *****************************************************************************/ class kobuki_PUBLIC VersionInfo { public: VersionInfo(const uint32_t &fw, const uint32_t &hw, const uint32_t udid0_, const uint32_t udid1_, const uint32_t udid2_ ) : firmware(fw), hardware(hw), software(0), udid0(udid0_), udid1(udid1_), udid2(udid2_) {} const uint32_t firmware; const uint32_t hardware; const uint32_t software; const uint32_t udid0; const uint32_t udid1; const uint32_t udid2; static int majorVersion(const uint32_t &version) { return ((version & 0x00FF0000) >> 16); } static int minorVersion(const uint32_t &version) { return ((version & 0x0000FF00) >> 8); } static int patchVersion(const uint32_t &version) { return (version & 0x000000FF); } static std::string toString(const uint32_t &version) { // Convert an unsigned int into a string of type ..; first byte is ignored std::stringstream ss; ss << majorVersion(version) << "." << minorVersion(version) << "." << patchVersion(version); return std::string(ss.str()); } static std::string toString(const std::vector &versions) { std::stringstream ss; std::size_t number_versions = versions.size(); for(std::size_t i = 0; i < number_versions; ++i) { ss << VersionInfo::toString(versions[i]); if (i != (number_versions - 1)) { ss << " / "; } } return std::string(ss.str()); } static std::string toString(const uint32_t &udid0, const uint32_t &udid1, const uint32_t &udid2) { // Convert three udid unsigned integers into a string of type -- std::stringstream ss; ss << udid0 << "-" << udid1 << "-" << udid2; return std::string(ss.str()); } static std::string getSoftwareVersion(); }; } // namespace kobuki #endif /* KOBUKI_CORE_VERSION_HPP_ */