uhd/host/lib/include/uhdlib/utils/serial_number.hpp
Lane Kolbly abf025f0a5 uhd: Add fuzzy serial number checking
We have integer 32-bit serial numbers for MPM devices, for example
"1234abcd". For serial numbers which have less than eight digits,
e.g. "123abcd", a user may feel inclined to prefix this number with
a 0 when they are searching for devices, e.g. "0123abcd". This change
makes it so that specifying "0123abcd" will match a device with serial
number "123ABCD".
2020-04-08 15:13:53 -05:00

29 lines
885 B
C++

//
// Copyright 2020 Ettus Research, a National Instruments Brand
//
// SPDX-License-Identifier: GPL-3.0-or-later
//
#ifndef INCLUDED_UHDLIB_UTILS_SERIAL_NUMBER_HPP
# define INCLUDED_UHDLIB_UTILS_SERIAL_NUMBER_HPP
#include <string>
namespace uhd { namespace utils {
/*! Convenience function to determine whether two serial numbers refer to the
* same device. Serial numbers are case-insensitive and ignore leading zeros,
* so e.g. the strings "0123abcd" and "123ABCD" are considered the same serial
* number.
*
* Serial numbers cannot be longer than 8 characters or have characters outside
* the range 0-9a-fA-F.
*
* \param serial_a The first serial number to compare
* \param serial_b The second serial number to compare
*/
bool serial_numbers_match(const std::string& serial_a, const std::string& serial_b);
}}
#endif /* INCLUDED_UHDLIB_UTILS_SERIAL_NUMBER_HPP */