69# pragma warning(disable : 4251)
85 static constexpr const char *
path{
"" };
88 static constexpr const char *
name{
"CameraState" };
92 R
"description(Information about camera connection state, temperatures, etc.)description"
105 static constexpr std::array<uint8_t, 3> binaryId{
'c',
's',
't' };
122 static constexpr const char *
path{
"Available" };
125 static constexpr const char *
name{
"Available" };
129 R
"description(Flag if camera is physically connected to the computer and is available for use, but not connected in
130software. This corresponds to the Status enums `available` or `firmwareUpdateRequired`. Zivid
131recommends to use the Status enum instead of this bool.
143 return {
false,
true };
161 explicit operator bool()
const
169 return m_value == other.m_value;
175 return m_value != other.m_value;
181 return stream <<
value.toString();
185 void setFromString(
const std::string &value);
187 bool m_value{
false };
189 friend struct DataModel::Detail::Befriend<
Available>;
204 static constexpr const char *
path{
"Connected" };
207 static constexpr const char *
name{
"Connected" };
211 R
"description(Flag if camera is connected in software. This bool is true when the Status value is `connected`. Zivid
212recommends to use the Status enum instead of this bool.
224 return {
false,
true };
242 explicit operator bool()
const
250 return m_value == other.m_value;
256 return m_value != other.m_value;
262 return stream <<
value.toString();
266 void setFromString(
const std::string &value);
268 bool m_value{
false };
270 friend struct DataModel::Detail::Befriend<
Connected>;
283 static constexpr const char *
path{
"InaccessibleReason" };
286 static constexpr const char *
name{
"InaccessibleReason" };
290 R
"description(If the camera status is `inaccessible`, then this enum value will give you the reason.)description"
320 : m_opt{ verifyValue(
value) }
347 return m_opt == other.m_opt;
353 return m_opt != other.m_opt;
359 return stream <<
value.toString();
363 void setFromString(
const std::string &value);
365 constexpr ValueType
static verifyValue(
const ValueType &value)
367 return value == ValueType::ipConflictWithAnotherCamera
368 || value == ValueType::ipConflictWithLocalNetworkAdapter
369 || value == ValueType::ipNotInLocalSubnet || value == ValueType::ipInMultipleLocalSubnets
371 :
throw std::invalid_argument{
372 "Invalid value: InaccessibleReason{ "
373 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
377 std::optional<ValueType> m_opt;
392 static constexpr const char *
path{
"Network" };
395 static constexpr const char *
name{
"Network" };
398 static constexpr const char *
description{ R
"description(Current network state)description" };
411 static constexpr const char *
path{
"Network/LocalInterface" };
414 static constexpr const char *
name{
"LocalInterface" };
418 R
"description(Current state of the computer's local network interface.
432 static constexpr const char *
path{
"Network/LocalInterface/IPV4" };
435 static constexpr const char *
name{
"IPV4" };
439 R
"description(Current IPv4 protocol state of the computer's local network interface.)description"
453 static constexpr const char *
path{
"Network/LocalInterface/IPV4/Subnet" };
456 static constexpr const char *
name{
"Subnet" };
460 R
"description(An IPv4 subnet that the local network interface is connected to.
474 static constexpr const char *
path{
"Network/LocalInterface/IPV4/Subnet/Address" };
477 static constexpr const char *
name{
"Address" };
481 R
"description(IP address of the computer's local network interface.)description"
490 return { 0, std::numeric_limits<ValueType::size_type>::max() };
498 : m_value{ std::move(
value) }
510 return m_value == other.m_value;
516 return m_value != other.m_value;
522 return m_value < other.m_value;
528 return m_value > other.m_value;
534 return m_value <= other.m_value;
540 return m_value >= other.m_value;
546 return stream <<
value.toString();
550 void setFromString(
const std::string &value);
552 std::string m_value{};
554 friend struct DataModel::Detail::Befriend<
Address>;
567 static constexpr const char *
path{
"Network/LocalInterface/IPV4/Subnet/Mask" };
570 static constexpr const char *
name{
"Mask" };
574 R
"description(Subnet mask of the computer's local network interface.)description"
583 return { 0, std::numeric_limits<ValueType::size_type>::max() };
591 : m_value{ std::move(
value) }
603 return m_value == other.m_value;
609 return m_value != other.m_value;
615 return m_value < other.m_value;
621 return m_value > other.m_value;
627 return m_value <= other.m_value;
633 return m_value >= other.m_value;
639 return stream <<
value.toString();
643 void setFromString(
const std::string &value);
645 std::string m_value{};
647 friend struct DataModel::Detail::Befriend<
Mask>;
672 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
673 typename std::enable_if<
674 Zivid::Detail::TypeTraits::
675 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
678 template<typename... Args>
682 using namespace Zivid::Detail::TypeTraits;
685 AllArgsDecayedAreUnique<Args...>::value,
686 "Found duplicate types among the arguments passed to Subnet(...). "
687 "Types should be listed at most once.");
689 set(std::forward<Args>(args)...);
704 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
706 template<typename... Args>
710 using namespace Zivid::Detail::TypeTraits;
712 using AllArgsAreDescendantNodes =
713 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
715 AllArgsAreDescendantNodes::value,
716 "All arguments passed to set(...) must be descendant nodes.");
719 AllArgsDecayedAreUnique<Args...>::value,
720 "Found duplicate types among the arguments passed to set(...). "
721 "Types should be listed at most once.");
723 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
739 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
741 template<typename... Args>
745 using namespace Zivid::Detail::TypeTraits;
747 using AllArgsAreDescendantNodes =
748 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
750 AllArgsAreDescendantNodes::value,
751 "All arguments passed to copyWith(...) must be descendant nodes.");
754 AllArgsDecayedAreUnique<Args...>::value,
755 "Found duplicate types among the arguments passed to copyWith(...). "
756 "Types should be listed at most once.");
759 copy.set(std::forward<Args>(args)...);
803 typename std::enable_if<
804 std::is_same<T, CameraState::Network::LocalInterface::IPV4::Subnet::Address>::value,
813 typename std::enable_if<
814 std::is_same<T, CameraState::Network::LocalInterface::IPV4::Subnet::Mask>::value,
821 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
827 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
865 void setFromString(
const std::string &value);
867 void setFromString(
const std::string &fullPath,
const std::string &value);
869 std::string getString(
const std::string &fullPath)
const;
874 friend struct DataModel::Detail::Befriend<
Subnet>;
890 static constexpr const char *
path{
"Network/LocalInterface/IPV4/Subnets" };
893 static constexpr const char *
name{
"Subnets" };
897 R
"description(List of IPv4 addresses and subnet masks that the interface is configured with. This list can
898contain multiple entries if the local network interface is configured with multiple IPv4
904 using ValueType = std::vector<CameraState::Network::LocalInterface::IPV4::Subnet>;
909 return { 0, std::numeric_limits<ValueType::size_type>::max() };
916 explicit Subnets(std::vector<CameraState::Network::LocalInterface::IPV4::Subnet>
value)
917 : m_value{ std::move(
value) }
922 std::initializer_list<CameraState::Network::LocalInterface::IPV4::Subnet>
value)
927 const std::vector<CameraState::Network::LocalInterface::IPV4::Subnet> &
value()
const;
933 std::size_t
size() const noexcept;
943 template<typename... Args>
946 m_value.emplace_back(std::forward<Args>(args)...);
981 for(
auto &child : m_value)
991 for(
const auto &child : m_value)
998 using Iterator = std::vector<CameraState::Network::LocalInterface::IPV4::Subnet>::iterator;
1025 return m_value == other.m_value;
1031 return m_value != other.m_value;
1037 return stream <<
value.toString();
1041 void setFromString(
const std::string &value);
1043 std::vector<CameraState::Network::LocalInterface::IPV4::Subnet> m_value{};
1045 friend struct DataModel::Detail::Befriend<
Subnets>;
1048 using Descendants = std::tuple<CameraState::Network::LocalInterface::IPV4::Subnets>;
1067 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1068 typename std::enable_if<
1069 Zivid::Detail::TypeTraits::
1070 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
1073 template<typename... Args>
1077 using namespace Zivid::Detail::TypeTraits;
1080 AllArgsDecayedAreUnique<Args...>::value,
1081 "Found duplicate types among the arguments passed to IPV4(...). "
1082 "Types should be listed at most once.");
1084 set(std::forward<Args>(args)...);
1098 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1100 template<typename... Args>
1104 using namespace Zivid::Detail::TypeTraits;
1106 using AllArgsAreDescendantNodes =
1107 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1109 AllArgsAreDescendantNodes::value,
1110 "All arguments passed to set(...) must be descendant nodes.");
1113 AllArgsDecayedAreUnique<Args...>::value,
1114 "Found duplicate types among the arguments passed to set(...). "
1115 "Types should be listed at most once.");
1117 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1132 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1134 template<typename... Args>
1138 using namespace Zivid::Detail::TypeTraits;
1140 using AllArgsAreDescendantNodes =
1141 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1143 AllArgsAreDescendantNodes::value,
1144 "All arguments passed to copyWith(...) must be descendant nodes.");
1147 AllArgsDecayedAreUnique<Args...>::value,
1148 "Found duplicate types among the arguments passed to copyWith(...). "
1149 "Types should be listed at most once.");
1152 copy.set(std::forward<Args>(args)...);
1177 typename std::enable_if<
1178 std::is_same<T, CameraState::Network::LocalInterface::IPV4::Subnets>::value,
1185 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1192 template<
typename F>
1199 template<
typename F>
1221 void setFromString(
const std::string &value);
1223 void setFromString(
const std::string &fullPath,
const std::string &value);
1225 std::string getString(
const std::string &fullPath)
const;
1229 friend struct DataModel::Detail::Befriend<
IPV4>;
1242 static constexpr const char *
path{
"Network/LocalInterface/InterfaceName" };
1245 static constexpr const char *
name{
"InterfaceName" };
1249 R
"description(Name of the computer's local network interface.)description"
1258 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1266 : m_value{ std::move(
value) }
1278 return m_value == other.m_value;
1284 return m_value != other.m_value;
1290 return m_value < other.m_value;
1296 return m_value > other.m_value;
1302 return m_value <= other.m_value;
1308 return m_value >= other.m_value;
1314 return stream <<
value.toString();
1318 void setFromString(
const std::string &value);
1320 std::string m_value{};
1349 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1350 typename std::enable_if<
1351 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1355 template<typename... Args>
1359 using namespace Zivid::Detail::TypeTraits;
1362 AllArgsDecayedAreUnique<Args...>::value,
1363 "Found duplicate types among the arguments passed to LocalInterface(...). "
1364 "Types should be listed at most once.");
1366 set(std::forward<Args>(args)...);
1382 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1384 template<typename... Args>
1388 using namespace Zivid::Detail::TypeTraits;
1390 using AllArgsAreDescendantNodes =
1391 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1393 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1396 AllArgsDecayedAreUnique<Args...>::value,
1397 "Found duplicate types among the arguments passed to set(...). "
1398 "Types should be listed at most once.");
1400 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1417 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1419 template<typename... Args>
1423 using namespace Zivid::Detail::TypeTraits;
1425 using AllArgsAreDescendantNodes =
1426 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1428 AllArgsAreDescendantNodes::value,
1429 "All arguments passed to copyWith(...) must be descendant nodes.");
1432 AllArgsDecayedAreUnique<Args...>::value,
1433 "Found duplicate types among the arguments passed to copyWith(...). "
1434 "Types should be listed at most once.");
1437 copy.set(std::forward<Args>(args)...);
1470 return m_interfaceName;
1476 return m_interfaceName;
1482 m_interfaceName = value;
1488 typename std::enable_if<std::is_same<T, CameraState::Network::LocalInterface::IPV4>::value,
int>::
1497 typename std::enable_if<
1498 std::is_same<T, CameraState::Network::LocalInterface::IPV4::Subnets>::value,
1507 typename std::enable_if<
1508 std::is_same<T, CameraState::Network::LocalInterface::InterfaceName>::value,
1512 return m_interfaceName;
1515 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1521 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1524 return m_interfaceName;
1528 template<
typename F>
1536 template<
typename F>
1559 void setFromString(
const std::string &value);
1561 void setFromString(
const std::string &fullPath,
const std::string &value);
1563 std::string getString(
const std::string &fullPath)
const;
1581 static constexpr const char *
path{
"Network/Ethernet" };
1584 static constexpr const char *
name{
"Ethernet" };
1587 static constexpr const char *
description{ R
"description(Current Ethernet state)description" };
1599 static constexpr const char *
path{
"Network/Ethernet/LinkSpeed" };
1602 static constexpr const char *
name{
"LinkSpeed" };
1606 R
"description(The link speed between the camera and the network device it is connected to, not the transfer speed between the camera and the host computer. Suppose the camera is connected to a 10Gbps network switch that is connected to a 1Gbps network card on the host computer. This value will indicate speed of 10Gbps even if the end-to-end link speed is limited to 1Gbps. The value will be `unknown` if the link is down or if the camera cannot determine the link speed.)description"
1641 : m_value{ verifyValue(
value) }
1659 return m_value == other.m_value;
1665 return m_value != other.m_value;
1671 return stream <<
value.toString();
1675 void setFromString(
const std::string &value);
1677 constexpr ValueType
static verifyValue(
const ValueType &value)
1679 return value == ValueType::unknown || value == ValueType::link10Mbps
1680 || value == ValueType::link100Mbps || value == ValueType::link1Gbps
1681 || value == ValueType::link2_5Gbps || value == ValueType::link5Gbps
1682 || value == ValueType::link10Gbps
1684 :
throw std::invalid_argument{
1685 "Invalid value: LinkSpeed{ "
1686 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
1693 friend struct DataModel::Detail::Befriend<
LinkSpeed>;
1696 using Descendants = std::tuple<CameraState::Network::Ethernet::LinkSpeed>;
1715 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1716 typename std::enable_if<
1717 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1721 template<typename... Args>
1725 using namespace Zivid::Detail::TypeTraits;
1728 AllArgsDecayedAreUnique<Args...>::value,
1729 "Found duplicate types among the arguments passed to Ethernet(...). "
1730 "Types should be listed at most once.");
1732 set(std::forward<Args>(args)...);
1746 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1748 template<typename... Args>
1752 using namespace Zivid::Detail::TypeTraits;
1754 using AllArgsAreDescendantNodes =
1755 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1757 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1760 AllArgsDecayedAreUnique<Args...>::value,
1761 "Found duplicate types among the arguments passed to set(...). "
1762 "Types should be listed at most once.");
1764 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1779 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1781 template<typename... Args>
1785 using namespace Zivid::Detail::TypeTraits;
1787 using AllArgsAreDescendantNodes =
1788 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1790 AllArgsAreDescendantNodes::value,
1791 "All arguments passed to copyWith(...) must be descendant nodes.");
1794 AllArgsDecayedAreUnique<Args...>::value,
1795 "Found duplicate types among the arguments passed to copyWith(...). "
1796 "Types should be listed at most once.");
1799 copy.set(std::forward<Args>(args)...);
1818 m_linkSpeed = value;
1824 typename std::enable_if<std::is_same<T, CameraState::Network::Ethernet::LinkSpeed>::value,
int>::
1831 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1838 template<
typename F>
1845 template<
typename F>
1867 void setFromString(
const std::string &value);
1869 void setFromString(
const std::string &fullPath,
const std::string &value);
1871 std::string getString(
const std::string &fullPath)
const;
1875 friend struct DataModel::Detail::Befriend<
Ethernet>;
1888 static constexpr const char *
path{
"Network/IPV4" };
1891 static constexpr const char *
name{
"IPV4" };
1894 static constexpr const char *
description{ R
"description(Current IPv4 protocol state)description" };
1906 static constexpr const char *
path{
"Network/IPV4/Address" };
1909 static constexpr const char *
name{
"Address" };
1912 static constexpr const char *
description{ R
"description(Current IPv4 address)description" };
1920 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1928 : m_value{ std::move(
value) }
1940 return m_value == other.m_value;
1946 return m_value != other.m_value;
1952 return m_value < other.m_value;
1958 return m_value > other.m_value;
1964 return m_value <= other.m_value;
1970 return m_value >= other.m_value;
1976 return stream <<
value.toString();
1980 void setFromString(
const std::string &value);
1982 std::string m_value{};
1984 friend struct DataModel::Detail::Befriend<
Address>;
2006 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2007 typename std::enable_if<
2008 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2012 template<typename... Args>
2016 using namespace Zivid::Detail::TypeTraits;
2019 AllArgsDecayedAreUnique<Args...>::value,
2020 "Found duplicate types among the arguments passed to IPV4(...). "
2021 "Types should be listed at most once.");
2023 set(std::forward<Args>(args)...);
2037 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2039 template<typename... Args>
2043 using namespace Zivid::Detail::TypeTraits;
2045 using AllArgsAreDescendantNodes =
2046 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2048 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2051 AllArgsDecayedAreUnique<Args...>::value,
2052 "Found duplicate types among the arguments passed to set(...). "
2053 "Types should be listed at most once.");
2055 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2070 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2072 template<typename... Args>
2076 using namespace Zivid::Detail::TypeTraits;
2078 using AllArgsAreDescendantNodes =
2079 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2081 AllArgsAreDescendantNodes::value,
2082 "All arguments passed to copyWith(...) must be descendant nodes.");
2085 AllArgsDecayedAreUnique<Args...>::value,
2086 "Found duplicate types among the arguments passed to copyWith(...). "
2087 "Types should be listed at most once.");
2090 copy.set(std::forward<Args>(args)...);
2115 typename std::enable_if<std::is_same<T, CameraState::Network::IPV4::Address>::value,
int>::type = 0>
2121 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2128 template<
typename F>
2135 template<
typename F>
2157 void setFromString(
const std::string &value);
2159 void setFromString(
const std::string &fullPath,
const std::string &value);
2161 std::string getString(
const std::string &fullPath)
const;
2165 friend struct DataModel::Detail::Befriend<
IPV4>;
2184 static constexpr const char *
path{
"Network/LocalInterfaces" };
2187 static constexpr const char *
name{
"LocalInterfaces" };
2191 R
"description(List of the computer's local network interfaces that discovered the camera. In the most common scenario
2192with the camera connected to the computer with an Ethernet cable, this list will contain only the
2193network interface for that Ethernet port. In more complex network scenarios it can be the case that the
2194camera is discovered by multiple interfaces, and in that case this list will contain multiple network
2195interfaces. However, when `CameraState::Status` is `connected`, only the one network interface that has
2196the active TCP/IP connection to the camera will be listed.
2201 using ValueType = std::vector<CameraState::Network::LocalInterface>;
2206 return { 0, std::numeric_limits<ValueType::size_type>::max() };
2214 : m_value{ std::move(
value) }
2223 const std::vector<CameraState::Network::LocalInterface> &
value()
const;
2239 template<typename... Args>
2242 m_value.emplace_back(std::forward<Args>(args)...);
2274 template<
typename F>
2277 for(
auto &child : m_value)
2284 template<
typename F>
2287 for(
const auto &child : m_value)
2294 using Iterator = std::vector<CameraState::Network::LocalInterface>::iterator;
2320 return m_value == other.m_value;
2326 return m_value != other.m_value;
2332 return stream <<
value.toString();
2336 void setFromString(
const std::string &value);
2338 std::vector<CameraState::Network::LocalInterface> m_value{};
2371 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2372 typename std::enable_if<
2373 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2377 template<typename... Args>
2381 using namespace Zivid::Detail::TypeTraits;
2384 AllArgsDecayedAreUnique<Args...>::value,
2385 "Found duplicate types among the arguments passed to Network(...). "
2386 "Types should be listed at most once.");
2388 set(std::forward<Args>(args)...);
2406 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2408 template<typename... Args>
2412 using namespace Zivid::Detail::TypeTraits;
2414 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2416 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2419 AllArgsDecayedAreUnique<Args...>::value,
2420 "Found duplicate types among the arguments passed to set(...). "
2421 "Types should be listed at most once.");
2423 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2442 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2444 template<typename... Args>
2448 using namespace Zivid::Detail::TypeTraits;
2450 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2452 AllArgsAreDescendantNodes::value,
2453 "All arguments passed to copyWith(...) must be descendant nodes.");
2456 AllArgsDecayedAreUnique<Args...>::value,
2457 "Found duplicate types among the arguments passed to copyWith(...). "
2458 "Types should be listed at most once.");
2461 copy.set(std::forward<Args>(args)...);
2487 m_ethernet.
set(value);
2520 return m_localInterfaces;
2526 return m_localInterfaces;
2532 m_localInterfaces = value;
2538 typename std::enable_if<std::is_same<T, CameraState::Network::Ethernet>::value,
int>::type = 0>
2546 typename std::enable_if<std::is_same<T, CameraState::Network::Ethernet::LinkSpeed>::value,
int>::type =
2555 typename std::enable_if<std::is_same<T, CameraState::Network::IPV4>::value,
int>::type = 0>
2563 typename std::enable_if<std::is_same<T, CameraState::Network::IPV4::Address>::value,
int>::type = 0>
2571 typename std::enable_if<std::is_same<T, CameraState::Network::LocalInterfaces>::value,
int>::type = 0>
2574 return m_localInterfaces;
2577 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2583 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2589 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2592 return m_localInterfaces;
2596 template<
typename F>
2601 f(m_localInterfaces);
2605 template<
typename F>
2610 f(m_localInterfaces);
2629 void setFromString(
const std::string &value);
2631 void setFromString(
const std::string &fullPath,
const std::string &value);
2633 std::string getString(
const std::string &fullPath)
const;
2635 Ethernet m_ethernet;
2639 friend struct DataModel::Detail::Befriend<
Network>;
2685 static constexpr const char *
path{
"Status" };
2688 static constexpr const char *
name{
"Status" };
2692 R
"description(This enum describes the current status of this camera. The enum can have the following values:
2694* `inaccessible`: The camera was discovered, but the SDK is not able to connect to this camera. This can
2695 be because the IP settings of the camera and the PC are not compatible, or because there are several
2696 cameras with the same IP connected to your PC. The `InaccessibleReason` enum will give you more
2697 details about why this camera is not accessible. The network configuration of the camera can be changed
2698 using the ZividNetworkCameraConfigurator CLI tool. See the knowledge base for more information.
2700* `busy`: The camera is currently in use by another process. This can be a different process on the same
2701 PC, or on a different PC if the camera is shared on a network.
2703* `applyingNetworkConfiguration`: The camera network configuration is being changed by the current process.
2705* `firmwareUpdateRequired`: The camera is accessible, but requires a firmware update before you can connect
2708* `updatingFirmware`: The camera firmware is currently being updated in the current process.
2710* `available`: The camera is available for use by the current process. This means that you can invoke
2711 camera.connect() on this camera.
2713* `connecting`: The camera is currently connecting in the current process.
2715* `connected`: The camera is connected in the current process. This means camera.connect() has successfully
2716 completed and you can capture using this camera.
2718* `disconnecting`: The camera is currently disconnecting in the current process. When disconnection has
2719 completed, the camera will normally go back to the `available` state.
2721* `disappeared`: The camera was found earlier, but it can no longer be found. The connection between the
2722 PC and the camera may be disrupted, or the camera may have lost power. When in `disappeared` state, the
2723 camera will not be returned from `Application::cameras()`. The camera will go back to one of the other
2724 states if the camera is later found again.
2773 : m_value{ verifyValue(
value) }
2791 return m_value == other.m_value;
2797 return m_value != other.m_value;
2803 return stream <<
value.toString();
2807 void setFromString(
const std::string &value);
2809 constexpr ValueType
static verifyValue(
const ValueType &value)
2811 return value == ValueType::inaccessible || value == ValueType::busy
2812 || value == ValueType::applyingNetworkConfiguration
2813 || value == ValueType::firmwareUpdateRequired || value == ValueType::updatingFirmware
2814 || value == ValueType::available || value == ValueType::connecting
2815 || value == ValueType::connected || value == ValueType::disconnecting
2816 || value == ValueType::disappeared
2818 :
throw std::invalid_argument{
2819 "Invalid value: Status{ "
2820 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
2826 friend struct DataModel::Detail::Befriend<
Status>;
2839 static constexpr const char *
path{
"Temperature" };
2842 static constexpr const char *
name{
"Temperature" };
2845 static constexpr const char *
description{ R
"description(Current temperature(s))description" };
2857 static constexpr const char *
path{
"Temperature/DMD" };
2860 static constexpr const char *
name{
"DMD" };
2863 static constexpr const char *
description{ R
"description(DMD temperature)description" };
2871 return { std::numeric_limits<double>::lowest(), std::numeric_limits<double>::max() };
2891 return m_value == other.m_value;
2897 return m_value != other.m_value;
2903 return m_value < other.m_value;
2909 return m_value > other.m_value;
2915 return m_value <= other.m_value;
2921 return m_value >= other.m_value;
2927 return stream <<
value.toString();
2931 void setFromString(
const std::string &value);
2933 double m_value{ 0.0 };
2935 friend struct DataModel::Detail::Befriend<
DMD>;
2948 static constexpr const char *
path{
"Temperature/General" };
2951 static constexpr const char *
name{
"General" };
2954 static constexpr const char *
description{ R
"description(General temperature)description" };
2962 return { std::numeric_limits<double>::lowest(), std::numeric_limits<double>::max() };
2982 return m_value == other.m_value;
2988 return m_value != other.m_value;
2994 return m_value < other.m_value;
3000 return m_value > other.m_value;
3006 return m_value <= other.m_value;
3012 return m_value >= other.m_value;
3018 return stream <<
value.toString();
3022 void setFromString(
const std::string &value);
3024 double m_value{ 0.0 };
3026 friend struct DataModel::Detail::Befriend<
General>;
3039 static constexpr const char *
path{
"Temperature/LED" };
3042 static constexpr const char *
name{
"LED" };
3045 static constexpr const char *
description{ R
"description(LED temperature)description" };
3053 return { std::numeric_limits<double>::lowest(), std::numeric_limits<double>::max() };
3073 return m_value == other.m_value;
3079 return m_value != other.m_value;
3085 return m_value < other.m_value;
3091 return m_value > other.m_value;
3097 return m_value <= other.m_value;
3103 return m_value >= other.m_value;
3109 return stream <<
value.toString();
3113 void setFromString(
const std::string &value);
3115 double m_value{ 0.0 };
3117 friend struct DataModel::Detail::Befriend<
LED>;
3130 static constexpr const char *
path{
"Temperature/Lens" };
3133 static constexpr const char *
name{
"Lens" };
3136 static constexpr const char *
description{ R
"description(Lens temperature)description" };
3144 return { std::numeric_limits<double>::lowest(), std::numeric_limits<double>::max() };
3164 return m_value == other.m_value;
3170 return m_value != other.m_value;
3176 return m_value < other.m_value;
3182 return m_value > other.m_value;
3188 return m_value <= other.m_value;
3194 return m_value >= other.m_value;
3200 return stream <<
value.toString();
3204 void setFromString(
const std::string &value);
3206 double m_value{ 0.0 };
3208 friend struct DataModel::Detail::Befriend<
Lens>;
3221 static constexpr const char *
path{
"Temperature/PCB" };
3224 static constexpr const char *
name{
"PCB" };
3227 static constexpr const char *
description{ R
"description(PCB temperature)description" };
3235 return { std::numeric_limits<double>::lowest(), std::numeric_limits<double>::max() };
3255 return m_value == other.m_value;
3261 return m_value != other.m_value;
3267 return m_value < other.m_value;
3273 return m_value > other.m_value;
3279 return m_value <= other.m_value;
3285 return m_value >= other.m_value;
3291 return stream <<
value.toString();
3295 void setFromString(
const std::string &value);
3297 double m_value{ 0.0 };
3299 friend struct DataModel::Detail::Befriend<
PCB>;
3330 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3331 typename std::enable_if<
3332 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
3336 template<typename... Args>
3340 using namespace Zivid::Detail::TypeTraits;
3343 AllArgsDecayedAreUnique<Args...>::value,
3344 "Found duplicate types among the arguments passed to Temperature(...). "
3345 "Types should be listed at most once.");
3347 set(std::forward<Args>(args)...);
3365 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3367 template<typename... Args>
3371 using namespace Zivid::Detail::TypeTraits;
3373 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3375 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
3378 AllArgsDecayedAreUnique<Args...>::value,
3379 "Found duplicate types among the arguments passed to set(...). "
3380 "Types should be listed at most once.");
3382 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3401 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3403 template<typename... Args>
3407 using namespace Zivid::Detail::TypeTraits;
3409 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3411 AllArgsAreDescendantNodes::value,
3412 "All arguments passed to copyWith(...) must be descendant nodes.");
3415 AllArgsDecayedAreUnique<Args...>::value,
3416 "Found duplicate types among the arguments passed to copyWith(...). "
3417 "Types should be listed at most once.");
3420 copy.set(std::forward<Args>(args)...);
3521 typename std::enable_if<std::is_same<T, CameraState::Temperature::DMD>::value,
int>::type = 0>
3529 typename std::enable_if<std::is_same<T, CameraState::Temperature::General>::value,
int>::type = 0>
3537 typename std::enable_if<std::is_same<T, CameraState::Temperature::LED>::value,
int>::type = 0>
3545 typename std::enable_if<std::is_same<T, CameraState::Temperature::Lens>::value,
int>::type = 0>
3553 typename std::enable_if<std::is_same<T, CameraState::Temperature::PCB>::value,
int>::type = 0>
3559 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3565 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3571 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3577 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
3583 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
3590 template<
typename F>
3601 template<
typename F>
3627 void setFromString(
const std::string &value);
3629 void setFromString(
const std::string &fullPath,
const std::string &value);
3631 std::string getString(
const std::string &fullPath)
const;
3639 friend struct DataModel::Detail::Befriend<
Temperature>;
3709 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3710 typename std::enable_if<
3711 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
3714 template<typename... Args>
3718 using namespace Zivid::Detail::TypeTraits;
3721 AllArgsDecayedAreUnique<Args...>::value,
3722 "Found duplicate types among the arguments passed to CameraState(...). "
3723 "Types should be listed at most once.");
3725 set(std::forward<Args>(args)...);
3754 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3756 template<typename... Args>
3760 using namespace Zivid::Detail::TypeTraits;
3762 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3764 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
3767 AllArgsDecayedAreUnique<Args...>::value,
3768 "Found duplicate types among the arguments passed to set(...). "
3769 "Types should be listed at most once.");
3771 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3801 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3803 template<typename... Args>
3807 using namespace Zivid::Detail::TypeTraits;
3809 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3811 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
3814 AllArgsDecayedAreUnique<Args...>::value,
3815 "Found duplicate types among the arguments passed to copyWith(...). "
3816 "Types should be listed at most once.");
3819 copy.set(std::forward<Args>(args)...);
3838 m_available = value;
3857 m_connected = value;
3864 return m_inaccessibleReason;
3870 return m_inaccessibleReason;
3876 m_inaccessibleReason = value;
3902 m_network.
set(value);
3909 m_network.
set(value);
3916 m_network.
set(value);
3923 m_network.
set(value);
3930 m_network.
set(value);
3956 return m_temperature;
3962 return m_temperature;
3968 m_temperature = value;
3975 m_temperature.
set(value);
3982 m_temperature.
set(value);
3989 m_temperature.
set(value);
3996 m_temperature.
set(value);
4003 m_temperature.
set(value);
4007 template<typename T, typename std::enable_if<std::is_same<T, CameraState::Available>::value,
int>::type = 0>
4013 template<typename T, typename std::enable_if<std::is_same<T, CameraState::Connected>::value,
int>::type = 0>
4021 typename std::enable_if<std::is_same<T, CameraState::InaccessibleReason>::value,
int>::type = 0>
4024 return m_inaccessibleReason;
4027 template<typename T, typename std::enable_if<std::is_same<T, CameraState::Network>::value,
int>::type = 0>
4035 typename std::enable_if<std::is_same<T, CameraState::Network::Ethernet>::value,
int>::type = 0>
4043 typename std::enable_if<std::is_same<T, CameraState::Network::Ethernet::LinkSpeed>::value,
int>::type = 0>
4049 template<typename T, typename std::enable_if<std::is_same<T, CameraState::Network::IPV4>::value,
int>::type = 0>
4057 typename std::enable_if<std::is_same<T, CameraState::Network::IPV4::Address>::value,
int>::type = 0>
4065 typename std::enable_if<std::is_same<T, CameraState::Network::LocalInterfaces>::value,
int>::type = 0>
4071 template<typename T, typename std::enable_if<std::is_same<T, CameraState::Status>::value,
int>::type = 0>
4077 template<typename T, typename std::enable_if<std::is_same<T, CameraState::Temperature>::value,
int>::type = 0>
4080 return m_temperature;
4085 typename std::enable_if<std::is_same<T, CameraState::Temperature::DMD>::value,
int>::type = 0>
4093 typename std::enable_if<std::is_same<T, CameraState::Temperature::General>::value,
int>::type = 0>
4101 typename std::enable_if<std::is_same<T, CameraState::Temperature::LED>::value,
int>::type = 0>
4109 typename std::enable_if<std::is_same<T, CameraState::Temperature::Lens>::value,
int>::type = 0>
4117 typename std::enable_if<std::is_same<T, CameraState::Temperature::PCB>::value,
int>::type = 0>
4123 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4129 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4135 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
4138 return m_inaccessibleReason;
4141 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
4147 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
4153 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
4156 return m_temperature;
4160 template<
typename F>
4165 f(m_inaccessibleReason);
4172 template<
typename F>
4177 f(m_inaccessibleReason);
4199 void save(
const std::string &fileName)
const;
4202 void load(
const std::string &fileName);
4205 void setFromString(
const std::string &value);
4207 void setFromString(
const std::string &fullPath,
const std::string &value);
4209 std::string getString(
const std::string &fullPath)
const;
4218 friend struct DataModel::Detail::Befriend<
CameraState>;
4223 struct CameraState::Version<8>
4236 ZIVID_CORE_EXPORT void save(
const Zivid::CameraState &dataModel, std::ostream &ostream);
4237 ZIVID_CORE_EXPORT void load(Zivid::CameraState &dataModel, std::istream &istream);
4239 ZIVID_CORE_EXPORT std::vector<uint8_t> serializeToBinaryVector(
const Zivid::CameraState &source);
4240 ZIVID_CORE_EXPORT void deserializeFromBinaryVector(Zivid::CameraState &dest,
const std::vector<uint8_t> &data);
4246# pragma warning(pop)
4250# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
4255 struct tuple_size<Zivid::CameraState::Network> : integral_constant<size_t, 3>
4259 struct tuple_element<i, Zivid::CameraState::Network>
4261 static_assert(i < tuple_size<Zivid::CameraState::Network>::value,
"Index must be less than 3");
4264 =
decltype(declval<Zivid::CameraState::Network>().get<i>());
4268 struct tuple_size<Zivid::CameraState::Network::Ethernet> : integral_constant<size_t, 1>
4272 struct tuple_element<i, Zivid::CameraState::Network::Ethernet>
4274 static_assert(i < tuple_size<Zivid::CameraState::Network::Ethernet>::value,
"Index must be less than 1");
4277 =
decltype(declval<Zivid::CameraState::Network::Ethernet>().get<i>());
4281 struct tuple_size<Zivid::CameraState::Network::IPV4> : integral_constant<size_t, 1>
4285 struct tuple_element<i, Zivid::CameraState::Network::IPV4>
4287 static_assert(i < tuple_size<Zivid::CameraState::Network::IPV4>::value,
"Index must be less than 1");
4290 =
decltype(declval<Zivid::CameraState::Network::IPV4>().get<i>());
4294 struct tuple_size<Zivid::CameraState::Temperature> : integral_constant<size_t, 5>
4298 struct tuple_element<i, Zivid::CameraState::Temperature>
4300 static_assert(i < tuple_size<Zivid::CameraState::Temperature>::value,
"Index must be less than 5");
4303 =
decltype(declval<Zivid::CameraState::Temperature>().get<i>());
4307 struct tuple_size<Zivid::CameraState> : integral_constant<size_t, 6>
4311 struct tuple_element<i, Zivid::CameraState>
4313 static_assert(i < tuple_size<Zivid::CameraState>::value,
"Index must be less than 6");
4316 =
decltype(declval<Zivid::CameraState>().get<i>());
4325#if defined(__has_include) && !defined(NO_DOC)
4326# if __has_include("Zivid/CameraStateInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
4327# include "Zivid/CameraStateInternal.h"
#define ZIVID_CORE_EXPORT
Definition CoreExport.h:56
Flag if camera is physically connected to the computer and is available for use, but not connected in...
Definition CameraState.h:116
static std::set< bool > validValues()
All valid values of Available.
Definition CameraState.h:141
static const Available no
Off/disabled.
Definition CameraState.h:138
bool operator==(const Available &other) const
Comparison operator.
Definition CameraState.h:167
std::string toString() const
Get the value as string.
bool ValueType
The type of the underlying value.
Definition CameraState.h:136
static const Available yes
On/enabled.
Definition CameraState.h:137
friend std::ostream & operator<<(std::ostream &stream, const Available &value)
Operator to serialize the value to a stream.
Definition CameraState.h:179
static constexpr const char * path
The full path for this value.
Definition CameraState.h:122
bool operator!=(const Available &other) const
Comparison operator.
Definition CameraState.h:173
constexpr Available(bool value)
Constructor.
Definition CameraState.h:150
bool value() const
Get the value.
static constexpr const char * name
The name of this value.
Definition CameraState.h:125
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:119
Available()=default
Default constructor.
static constexpr const char * description
The description for this value.
Definition CameraState.h:128
Flag if camera is connected in software. This bool is true when the Status value is connected....
Definition CameraState.h:198
Connected()=default
Default constructor.
static const Connected yes
On/enabled.
Definition CameraState.h:218
static const Connected no
Off/disabled.
Definition CameraState.h:219
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:201
bool operator!=(const Connected &other) const
Comparison operator.
Definition CameraState.h:254
static constexpr const char * name
The name of this value.
Definition CameraState.h:207
constexpr Connected(bool value)
Constructor.
Definition CameraState.h:231
bool value() const
Get the value.
std::string toString() const
Get the value as string.
static constexpr const char * description
The description for this value.
Definition CameraState.h:210
friend std::ostream & operator<<(std::ostream &stream, const Connected &value)
Operator to serialize the value to a stream.
Definition CameraState.h:260
static std::set< bool > validValues()
All valid values of Connected.
Definition CameraState.h:222
bool operator==(const Connected &other) const
Comparison operator.
Definition CameraState.h:248
static constexpr const char * path
The full path for this value.
Definition CameraState.h:204
bool ValueType
The type of the underlying value.
Definition CameraState.h:217
If the camera status is inaccessible, then this enum value will give you the reason.
Definition CameraState.h:277
static const InaccessibleReason ipNotInLocalSubnet
ipNotInLocalSubnet
Definition CameraState.h:303
constexpr InaccessibleReason(ValueType value)
Constructor.
Definition CameraState.h:319
bool hasValue() const
Check if the value is set.
static constexpr const char * path
The full path for this value.
Definition CameraState.h:283
static const InaccessibleReason ipConflictWithAnotherCamera
ipConflictWithAnotherCamera
Definition CameraState.h:301
friend std::ostream & operator<<(std::ostream &stream, const InaccessibleReason::ValueType &value)
Operator to serialize ValueType to a stream.
Definition CameraState.h:339
bool operator==(const InaccessibleReason &other) const
Comparison operator.
Definition CameraState.h:345
static constexpr const char * description
The description for this value.
Definition CameraState.h:289
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const InaccessibleReason &value)
Operator to serialize the value to a stream.
Definition CameraState.h:357
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:280
static const InaccessibleReason ipConflictWithLocalNetworkAdapter
ipConflictWithLocalNetworkAdapter
Definition CameraState.h:302
InaccessibleReason()=default
Default constructor.
static const InaccessibleReason ipInMultipleLocalSubnets
ipInMultipleLocalSubnets
Definition CameraState.h:304
static constexpr const char * name
The name of this value.
Definition CameraState.h:286
ValueType
The type of the underlying value.
Definition CameraState.h:295
@ ipConflictWithLocalNetworkAdapter
Definition CameraState.h:297
@ ipNotInLocalSubnet
Definition CameraState.h:298
@ ipInMultipleLocalSubnets
Definition CameraState.h:299
@ ipConflictWithAnotherCamera
Definition CameraState.h:296
ValueType value() const
Get the value.
void reset()
Reset the node to unset state.
bool operator!=(const InaccessibleReason &other) const
Comparison operator.
Definition CameraState.h:351
static std::set< ValueType > validValues()
All valid values of InaccessibleReason.
Definition CameraState.h:307
The link speed between the camera and the network device it is connected to, not the transfer speed b...
Definition CameraState.h:1593
static const LinkSpeed link2_5Gbps
link2_5Gbps
Definition CameraState.h:1624
std::string toString() const
Get the value as string.
static const LinkSpeed unknown
unknown
Definition CameraState.h:1620
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:1596
bool operator!=(const LinkSpeed &other) const
Comparison operator.
Definition CameraState.h:1663
static constexpr const char * name
The name of this value.
Definition CameraState.h:1602
static const LinkSpeed link100Mbps
link100Mbps
Definition CameraState.h:1622
LinkSpeed()=default
Default constructor.
static constexpr const char * path
The full path for this value.
Definition CameraState.h:1599
friend std::ostream & operator<<(std::ostream &stream, const LinkSpeed::ValueType &value)
Operator to serialize ValueType to a stream.
Definition CameraState.h:1651
static const LinkSpeed link5Gbps
link5Gbps
Definition CameraState.h:1625
static constexpr const char * description
The description for this value.
Definition CameraState.h:1605
static const LinkSpeed link10Gbps
link10Gbps
Definition CameraState.h:1626
ValueType value() const
Get the value.
friend std::ostream & operator<<(std::ostream &stream, const LinkSpeed &value)
Operator to serialize the value to a stream.
Definition CameraState.h:1669
constexpr LinkSpeed(ValueType value)
Constructor.
Definition CameraState.h:1640
static const LinkSpeed link10Mbps
link10Mbps
Definition CameraState.h:1621
static std::set< ValueType > validValues()
All valid values of LinkSpeed.
Definition CameraState.h:1629
static const LinkSpeed link1Gbps
link1Gbps
Definition CameraState.h:1623
ValueType
The type of the underlying value.
Definition CameraState.h:1611
@ link10Gbps
Definition CameraState.h:1618
@ unknown
Definition CameraState.h:1612
@ link2_5Gbps
Definition CameraState.h:1616
@ link1Gbps
Definition CameraState.h:1615
@ link10Mbps
Definition CameraState.h:1613
@ link5Gbps
Definition CameraState.h:1617
@ link100Mbps
Definition CameraState.h:1614
bool operator==(const LinkSpeed &other) const
Comparison operator.
Definition CameraState.h:1657
Current Ethernet state.
Definition CameraState.h:1575
friend std::ostream & operator<<(std::ostream &stream, const Ethernet &value)
Operator to send the value as string to a stream.
Definition CameraState.h:1861
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:1578
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:1846
Ethernet copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition CameraState.h:1783
static constexpr const char * name
The name of this value.
Definition CameraState.h:1584
const CameraState::Network::Ethernet::LinkSpeed & get() const
Definition CameraState.h:1826
Ethernet()
Default constructor.
std::tuple< CameraState::Network::Ethernet::LinkSpeed > Descendants
Definition CameraState.h:1696
LinkSpeed & linkSpeed()
Get LinkSpeed.
Definition CameraState.h:1810
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:1839
static constexpr const char * description
The description for this value.
Definition CameraState.h:1587
static constexpr const char * path
The full path for this value.
Definition CameraState.h:1581
Ethernet & set(const LinkSpeed &value)
Set LinkSpeed.
Definition CameraState.h:1816
bool operator!=(const Ethernet &other) const
Inequality operator.
std::string toString() const
Get the value as string.
bool operator==(const Ethernet &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition CameraState.h:1750
const LinkSpeed & linkSpeed() const
Get LinkSpeed.
Definition CameraState.h:1804
Current IPv4 address.
Definition CameraState.h:1900
Address()=default
Default constructor.
bool operator<(const Address &other) const
Comparison operator.
Definition CameraState.h:1950
static constexpr const char * description
The description for this value.
Definition CameraState.h:1912
bool operator==(const Address &other) const
Comparison operator.
Definition CameraState.h:1938
bool operator<=(const Address &other) const
Comparison operator.
Definition CameraState.h:1962
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Address.
Definition CameraState.h:1918
bool operator>(const Address &other) const
Comparison operator.
Definition CameraState.h:1956
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:1903
bool operator!=(const Address &other) const
Comparison operator.
Definition CameraState.h:1944
const std::string & value() const
Get the value.
static constexpr const char * name
The name of this value.
Definition CameraState.h:1909
friend std::ostream & operator<<(std::ostream &stream, const Address &value)
Operator to serialize the value to a stream.
Definition CameraState.h:1974
static constexpr const char * path
The full path for this value.
Definition CameraState.h:1906
bool operator>=(const Address &other) const
Comparison operator.
Definition CameraState.h:1968
Address(std::string value)
Constructor.
Definition CameraState.h:1927
std::string toString() const
Get the value as string.
std::string ValueType
The type of the underlying value.
Definition CameraState.h:1915
Current IPv4 protocol state.
Definition CameraState.h:1882
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:1885
IPV4()
Default constructor.
void set(Args &&...args)
Set multiple arguments.
Definition CameraState.h:2041
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:2129
static constexpr const char * description
The description for this value.
Definition CameraState.h:1894
const Address & address() const
Get Address.
Definition CameraState.h:2095
static constexpr const char * path
The full path for this value.
Definition CameraState.h:1888
friend std::ostream & operator<<(std::ostream &stream, const IPV4 &value)
Operator to send the value as string to a stream.
Definition CameraState.h:2151
IPV4 copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition CameraState.h:2074
const CameraState::Network::IPV4::Address & get() const
Definition CameraState.h:2116
static constexpr const char * name
The name of this value.
Definition CameraState.h:1891
bool operator==(const IPV4 &other) const
Equality operator.
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:2136
IPV4 & set(const Address &value)
Set Address.
Definition CameraState.h:2107
std::string toString() const
Get the value as string.
std::tuple< CameraState::Network::IPV4::Address > Descendants
Definition CameraState.h:1987
Address & address()
Get Address.
Definition CameraState.h:2101
bool operator!=(const IPV4 &other) const
Inequality operator.
IP address of the computer's local network interface.
Definition CameraState.h:468
bool operator>=(const Address &other) const
Comparison operator.
Definition CameraState.h:538
bool operator<(const Address &other) const
Comparison operator.
Definition CameraState.h:520
bool operator<=(const Address &other) const
Comparison operator.
Definition CameraState.h:532
static constexpr const char * name
The name of this value.
Definition CameraState.h:477
std::string ValueType
The type of the underlying value.
Definition CameraState.h:485
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Address.
Definition CameraState.h:488
std::string toString() const
Get the value as string.
static constexpr const char * path
The full path for this value.
Definition CameraState.h:474
friend std::ostream & operator<<(std::ostream &stream, const Address &value)
Operator to serialize the value to a stream.
Definition CameraState.h:544
const std::string & value() const
Get the value.
Address(std::string value)
Constructor.
Definition CameraState.h:497
bool operator!=(const Address &other) const
Comparison operator.
Definition CameraState.h:514
static constexpr const char * description
The description for this value.
Definition CameraState.h:480
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:471
bool operator>(const Address &other) const
Comparison operator.
Definition CameraState.h:526
Address()=default
Default constructor.
bool operator==(const Address &other) const
Comparison operator.
Definition CameraState.h:508
Subnet mask of the computer's local network interface.
Definition CameraState.h:561
bool operator!=(const Mask &other) const
Comparison operator.
Definition CameraState.h:607
bool operator>=(const Mask &other) const
Comparison operator.
Definition CameraState.h:631
Mask(std::string value)
Constructor.
Definition CameraState.h:590
static constexpr const char * description
The description for this value.
Definition CameraState.h:573
friend std::ostream & operator<<(std::ostream &stream, const Mask &value)
Operator to serialize the value to a stream.
Definition CameraState.h:637
bool operator==(const Mask &other) const
Comparison operator.
Definition CameraState.h:601
bool operator>(const Mask &other) const
Comparison operator.
Definition CameraState.h:619
static constexpr const char * name
The name of this value.
Definition CameraState.h:570
bool operator<(const Mask &other) const
Comparison operator.
Definition CameraState.h:613
bool operator<=(const Mask &other) const
Comparison operator.
Definition CameraState.h:625
Mask()=default
Default constructor.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:564
std::string toString() const
Get the value as string.
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Mask.
Definition CameraState.h:581
std::string ValueType
The type of the underlying value.
Definition CameraState.h:578
static constexpr const char * path
The full path for this value.
Definition CameraState.h:567
const std::string & value() const
Get the value.
An IPv4 subnet that the local network interface is connected to.
Definition CameraState.h:447
std::string toString() const
Get the value as string.
static constexpr const char * path
The full path for this value.
Definition CameraState.h:453
Subnet copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition CameraState.h:743
const Mask & mask() const
Get Mask.
Definition CameraState.h:783
static constexpr const char * name
The name of this value.
Definition CameraState.h:456
void set(Args &&...args)
Set multiple arguments.
Definition CameraState.h:708
const CameraState::Network::LocalInterface::IPV4::Subnet::Address & get() const
Definition CameraState.h:806
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:450
Subnet()
Default constructor.
bool operator!=(const Subnet &other) const
Inequality operator.
Mask & mask()
Get Mask.
Definition CameraState.h:789
std::tuple< CameraState::Network::LocalInterface::IPV4::Subnet::Address, CameraState::Network::LocalInterface::IPV4::Subnet::Mask > Descendants
Definition CameraState.h:650
bool operator==(const Subnet &other) const
Equality operator.
static constexpr const char * description
The description for this value.
Definition CameraState.h:459
friend std::ostream & operator<<(std::ostream &stream, const Subnet &value)
Operator to send the value as string to a stream.
Definition CameraState.h:859
const CameraState::Network::LocalInterface::IPV4::Subnet::Mask & get() const
Definition CameraState.h:816
const Address & address() const
Get Address.
Definition CameraState.h:764
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:843
Subnet & set(const Address &value)
Set Address.
Definition CameraState.h:776
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:835
Subnet & set(const Mask &value)
Set Mask.
Definition CameraState.h:795
Address & address()
Get Address.
Definition CameraState.h:770
List of IPv4 addresses and subnet masks that the interface is configured with. This list can contain ...
Definition CameraState.h:884
CameraState::Network::LocalInterface::IPV4::Subnet & operator[](std::size_t pos)
Returns a reference to the element at position pos in the list.
static constexpr const char * description
The description for this value.
Definition CameraState.h:896
void emplaceBack(Args &&...args)
Appends a new element to the end of the list.
Definition CameraState.h:944
bool operator!=(const Subnets &other) const
Comparison operator.
Definition CameraState.h:1029
bool isEmpty() const noexcept
Check if the list is empty.
std::vector< CameraState::Network::LocalInterface::IPV4::Subnet > ValueType
The type of the underlying value.
Definition CameraState.h:904
Subnets(std::vector< CameraState::Network::LocalInterface::IPV4::Subnet > value)
Constructor.
Definition CameraState.h:916
std::string toString() const
Get the value as string.
const CameraState::Network::LocalInterface::IPV4::Subnet & at(std::size_t pos) const
Returns a const reference to the element at position pos in the list.
Subnets(std::initializer_list< CameraState::Network::LocalInterface::IPV4::Subnet > value)
Constructor.
Definition CameraState.h:921
void forEach(const F &f)
Run the given function on each element in the list.
Definition CameraState.h:979
friend std::ostream & operator<<(std::ostream &stream, const Subnets &value)
Operator to serialize the value to a stream.
Definition CameraState.h:1035
std::vector< CameraState::Network::LocalInterface::IPV4::Subnet >::const_iterator ConstIterator
Constant iterator type for Subnets.
Definition CameraState.h:1007
static constexpr const char * name
The name of this value.
Definition CameraState.h:893
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:887
Iterator end() noexcept
Returns an iterator to the element following the last element of the list.
ConstIterator cbegin() const noexcept
Returns a constant iterator to the first element of the list.
std::size_t size() const noexcept
Get the size of the list.
CameraState::Network::LocalInterface::IPV4::Subnet & at(std::size_t pos)
Returns a reference to the element at position pos in the list.
Subnets()=default
Default constructor.
const CameraState::Network::LocalInterface::IPV4::Subnet & operator[](std::size_t pos) const
Returns a const reference to the element at position pos in the list.
static constexpr const char * path
The full path for this value.
Definition CameraState.h:890
std::vector< CameraState::Network::LocalInterface::IPV4::Subnet >::iterator Iterator
Iterator type for Subnets.
Definition CameraState.h:998
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Subnets.
Definition CameraState.h:907
ConstIterator cend() const noexcept
Returns a constant iterator to the element following the last element of the list.
void forEach(const F &f) const
Run the given function on each element in the list.
Definition CameraState.h:989
const std::vector< CameraState::Network::LocalInterface::IPV4::Subnet > & value() const
Get the value.
Iterator begin() noexcept
Returns an iterator to the first element of the list.
Current IPv4 protocol state of the computer's local network interface.
Definition CameraState.h:426
static constexpr const char * path
The full path for this value.
Definition CameraState.h:432
const Subnets & subnets() const
Get Subnets.
Definition CameraState.h:1157
IPV4 copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition CameraState.h:1136
const CameraState::Network::LocalInterface::IPV4::Subnets & get() const
Definition CameraState.h:1180
std::tuple< CameraState::Network::LocalInterface::IPV4::Subnets > Descendants
Definition CameraState.h:1048
friend std::ostream & operator<<(std::ostream &stream, const IPV4 &value)
Operator to send the value as string to a stream.
Definition CameraState.h:1215
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:429
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:1193
IPV4()
Default constructor.
bool operator!=(const IPV4 &other) const
Inequality operator.
void set(Args &&...args)
Set multiple arguments.
Definition CameraState.h:1102
static constexpr const char * description
The description for this value.
Definition CameraState.h:438
bool operator==(const IPV4 &other) const
Equality operator.
std::string toString() const
Get the value as string.
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:1200
IPV4 & set(const Subnets &value)
Set Subnets.
Definition CameraState.h:1169
Subnets & subnets()
Get Subnets.
Definition CameraState.h:1163
static constexpr const char * name
The name of this value.
Definition CameraState.h:435
Name of the computer's local network interface.
Definition CameraState.h:1236
bool operator==(const InterfaceName &other) const
Comparison operator.
Definition CameraState.h:1276
std::string ValueType
The type of the underlying value.
Definition CameraState.h:1253
const std::string & value() const
Get the value.
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for InterfaceName.
Definition CameraState.h:1256
InterfaceName(std::string value)
Constructor.
Definition CameraState.h:1265
bool operator<=(const InterfaceName &other) const
Comparison operator.
Definition CameraState.h:1300
friend std::ostream & operator<<(std::ostream &stream, const InterfaceName &value)
Operator to serialize the value to a stream.
Definition CameraState.h:1312
bool operator>(const InterfaceName &other) const
Comparison operator.
Definition CameraState.h:1294
bool operator<(const InterfaceName &other) const
Comparison operator.
Definition CameraState.h:1288
static constexpr const char * path
The full path for this value.
Definition CameraState.h:1242
InterfaceName()=default
Default constructor.
std::string toString() const
Get the value as string.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:1239
bool operator!=(const InterfaceName &other) const
Comparison operator.
Definition CameraState.h:1282
bool operator>=(const InterfaceName &other) const
Comparison operator.
Definition CameraState.h:1306
static constexpr const char * name
The name of this value.
Definition CameraState.h:1245
static constexpr const char * description
The description for this value.
Definition CameraState.h:1248
Current state of the computer's local network interface.
Definition CameraState.h:405
const CameraState::Network::LocalInterface::IPV4::Subnets & get() const
Definition CameraState.h:1500
static constexpr const char * path
The full path for this value.
Definition CameraState.h:411
bool operator!=(const LocalInterface &other) const
Inequality operator.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:408
LocalInterface()
Default constructor.
std::tuple< CameraState::Network::LocalInterface::IPV4, CameraState::Network::LocalInterface::IPV4::Subnets, CameraState::Network::LocalInterface::InterfaceName > Descendants
Definition CameraState.h:1325
InterfaceName & interfaceName()
Get InterfaceName.
Definition CameraState.h:1474
bool operator==(const LocalInterface &other) const
Equality operator.
LocalInterface & set(const IPV4::Subnets &value)
Set IPV4::Subnets.
Definition CameraState.h:1461
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:1537
LocalInterface copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition CameraState.h:1421
std::string toString() const
Get the value as string.
const InterfaceName & interfaceName() const
Get InterfaceName.
Definition CameraState.h:1468
const IPV4 & ipv4() const
Get IPV4.
Definition CameraState.h:1442
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:1529
void set(Args &&...args)
Set multiple arguments.
Definition CameraState.h:1386
friend std::ostream & operator<<(std::ostream &stream, const LocalInterface &value)
Operator to send the value as string to a stream.
Definition CameraState.h:1553
const CameraState::Network::LocalInterface::IPV4 & get() const
Definition CameraState.h:1490
static constexpr const char * description
The description for this value.
Definition CameraState.h:417
LocalInterface & set(const InterfaceName &value)
Set InterfaceName.
Definition CameraState.h:1480
static constexpr const char * name
The name of this value.
Definition CameraState.h:414
IPV4 & ipv4()
Get IPV4.
Definition CameraState.h:1448
const CameraState::Network::LocalInterface::InterfaceName & get() const
Definition CameraState.h:1510
LocalInterface & set(const IPV4 &value)
Set IPV4.
Definition CameraState.h:1454
List of the computer's local network interfaces that discovered the camera. In the most common scenar...
Definition CameraState.h:2178
std::vector< CameraState::Network::LocalInterface >::iterator Iterator
Iterator type for LocalInterfaces.
Definition CameraState.h:2294
bool operator!=(const LocalInterfaces &other) const
Comparison operator.
Definition CameraState.h:2324
bool isEmpty() const noexcept
Check if the list is empty.
const std::vector< CameraState::Network::LocalInterface > & value() const
Get the value.
ConstIterator cbegin() const noexcept
Returns a constant iterator to the first element of the list.
CameraState::Network::LocalInterface & operator[](std::size_t pos)
Returns a reference to the element at position pos in the list.
std::string toString() const
Get the value as string.
LocalInterfaces()=default
Default constructor.
static constexpr const char * description
The description for this value.
Definition CameraState.h:2190
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:2181
Iterator end() noexcept
Returns an iterator to the element following the last element of the list.
std::vector< CameraState::Network::LocalInterface > ValueType
The type of the underlying value.
Definition CameraState.h:2201
LocalInterfaces(std::initializer_list< CameraState::Network::LocalInterface > value)
Constructor.
Definition CameraState.h:2218
const CameraState::Network::LocalInterface & operator[](std::size_t pos) const
Returns a const reference to the element at position pos in the list.
void emplaceBack(Args &&...args)
Appends a new element to the end of the list.
Definition CameraState.h:2240
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for LocalInterfaces.
Definition CameraState.h:2204
Iterator begin() noexcept
Returns an iterator to the first element of the list.
const CameraState::Network::LocalInterface & at(std::size_t pos) const
Returns a const reference to the element at position pos in the list.
LocalInterfaces(std::vector< CameraState::Network::LocalInterface > value)
Constructor.
Definition CameraState.h:2213
ConstIterator cend() const noexcept
Returns a constant iterator to the element following the last element of the list.
void forEach(const F &f) const
Run the given function on each element in the list.
Definition CameraState.h:2285
std::vector< CameraState::Network::LocalInterface >::const_iterator ConstIterator
Constant iterator type for LocalInterfaces.
Definition CameraState.h:2303
static constexpr const char * name
The name of this value.
Definition CameraState.h:2187
void forEach(const F &f)
Run the given function on each element in the list.
Definition CameraState.h:2275
static constexpr const char * path
The full path for this value.
Definition CameraState.h:2184
CameraState::Network::LocalInterface & at(std::size_t pos)
Returns a reference to the element at position pos in the list.
std::size_t size() const noexcept
Get the size of the list.
friend std::ostream & operator<<(std::ostream &stream, const LocalInterfaces &value)
Operator to serialize the value to a stream.
Definition CameraState.h:2330
Current network state.
Definition CameraState.h:386
void set(Args &&...args)
Set multiple arguments.
Definition CameraState.h:2410
const LocalInterfaces & localInterfaces() const
Get LocalInterfaces.
Definition CameraState.h:2518
Network & set(const Ethernet::LinkSpeed &value)
Set Ethernet::LinkSpeed.
Definition CameraState.h:2485
std::tuple< CameraState::Network::Ethernet, CameraState::Network::Ethernet::LinkSpeed, CameraState::Network::IPV4, CameraState::Network::IPV4::Address, CameraState::Network::LocalInterfaces > Descendants
Definition CameraState.h:2343
static constexpr const char * path
The full path for this value.
Definition CameraState.h:392
std::string toString() const
Get the value as string.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:389
friend std::ostream & operator<<(std::ostream &stream, const Network &value)
Operator to send the value as string to a stream.
Definition CameraState.h:2623
Network & set(const Ethernet &value)
Set Ethernet.
Definition CameraState.h:2478
const Ethernet & ethernet() const
Get Ethernet.
Definition CameraState.h:2466
const CameraState::Network::Ethernet & get() const
Definition CameraState.h:2539
const CameraState::Network::LocalInterfaces & get() const
Definition CameraState.h:2572
const CameraState::Network::Ethernet::LinkSpeed & get() const
Definition CameraState.h:2548
Ethernet & ethernet()
Get Ethernet.
Definition CameraState.h:2472
bool operator==(const Network &other) const
Equality operator.
LocalInterfaces & localInterfaces()
Get LocalInterfaces.
Definition CameraState.h:2524
static constexpr const char * description
The description for this value.
Definition CameraState.h:398
Network()
Default constructor.
Network & set(const IPV4 &value)
Set IPV4.
Definition CameraState.h:2504
Network copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition CameraState.h:2446
const CameraState::Network::IPV4::Address & get() const
Definition CameraState.h:2564
Network & set(const LocalInterfaces &value)
Set LocalInterfaces.
Definition CameraState.h:2530
const CameraState::Network::IPV4 & get() const
Definition CameraState.h:2556
Network & set(const IPV4::Address &value)
Set IPV4::Address.
Definition CameraState.h:2511
static constexpr const char * name
The name of this value.
Definition CameraState.h:395
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:2606
IPV4 & ipv4()
Get IPV4.
Definition CameraState.h:2498
bool operator!=(const Network &other) const
Inequality operator.
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:2597
const IPV4 & ipv4() const
Get IPV4.
Definition CameraState.h:2492
This enum describes the current status of this camera. The enum can have the following values:
Definition CameraState.h:2679
constexpr Status(ValueType value)
Constructor.
Definition CameraState.h:2772
static std::set< ValueType > validValues()
All valid values of Status.
Definition CameraState.h:2754
static const Status connected
connected
Definition CameraState.h:2749
static const Status disconnecting
disconnecting
Definition CameraState.h:2750
static const Status inaccessible
inaccessible
Definition CameraState.h:2742
std::string toString() const
Get the value as string.
ValueType
The type of the underlying value.
Definition CameraState.h:2730
@ connected
Definition CameraState.h:2738
@ disconnecting
Definition CameraState.h:2739
@ firmwareUpdateRequired
Definition CameraState.h:2734
@ updatingFirmware
Definition CameraState.h:2735
@ inaccessible
Definition CameraState.h:2731
@ busy
Definition CameraState.h:2732
@ connecting
Definition CameraState.h:2737
@ disappeared
Definition CameraState.h:2740
@ available
Definition CameraState.h:2736
@ applyingNetworkConfiguration
Definition CameraState.h:2733
static const Status applyingNetworkConfiguration
applyingNetworkConfiguration
Definition CameraState.h:2744
friend std::ostream & operator<<(std::ostream &stream, const Status &value)
Operator to serialize the value to a stream.
Definition CameraState.h:2801
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:2682
static const Status firmwareUpdateRequired
firmwareUpdateRequired
Definition CameraState.h:2745
ValueType value() const
Get the value.
bool operator!=(const Status &other) const
Comparison operator.
Definition CameraState.h:2795
static const Status connecting
connecting
Definition CameraState.h:2748
bool operator==(const Status &other) const
Comparison operator.
Definition CameraState.h:2789
static const Status busy
busy
Definition CameraState.h:2743
Status()=default
Default constructor.
static const Status available
available
Definition CameraState.h:2747
static const Status updatingFirmware
updatingFirmware
Definition CameraState.h:2746
static constexpr const char * description
The description for this value.
Definition CameraState.h:2691
static const Status disappeared
disappeared
Definition CameraState.h:2751
static constexpr const char * path
The full path for this value.
Definition CameraState.h:2685
static constexpr const char * name
The name of this value.
Definition CameraState.h:2688
friend std::ostream & operator<<(std::ostream &stream, const Status::ValueType &value)
Operator to serialize ValueType to a stream.
Definition CameraState.h:2783
DMD temperature.
Definition CameraState.h:2851
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:2854
bool operator>(const DMD &other) const
Comparison operator.
Definition CameraState.h:2907
std::string toString() const
Get the value as string.
static constexpr const char * description
The description for this value.
Definition CameraState.h:2863
double value() const
Get the value.
bool operator!=(const DMD &other) const
Comparison operator.
Definition CameraState.h:2895
bool operator<(const DMD &other) const
Comparison operator.
Definition CameraState.h:2901
static constexpr const char * path
The full path for this value.
Definition CameraState.h:2857
bool operator>=(const DMD &other) const
Comparison operator.
Definition CameraState.h:2919
double ValueType
The type of the underlying value.
Definition CameraState.h:2866
bool operator<=(const DMD &other) const
Comparison operator.
Definition CameraState.h:2913
friend std::ostream & operator<<(std::ostream &stream, const DMD &value)
Operator to serialize the value to a stream.
Definition CameraState.h:2925
constexpr DMD(double value)
Constructor.
Definition CameraState.h:2878
bool operator==(const DMD &other) const
Comparison operator.
Definition CameraState.h:2889
static constexpr const char * name
The name of this value.
Definition CameraState.h:2860
static constexpr Range< double > validRange()
The range of valid values for DMD.
Definition CameraState.h:2869
DMD()=default
Default constructor.
General temperature.
Definition CameraState.h:2942
double ValueType
The type of the underlying value.
Definition CameraState.h:2957
static constexpr const char * name
The name of this value.
Definition CameraState.h:2951
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:2945
std::string toString() const
Get the value as string.
double value() const
Get the value.
bool operator<(const General &other) const
Comparison operator.
Definition CameraState.h:2992
constexpr General(double value)
Constructor.
Definition CameraState.h:2969
static constexpr Range< double > validRange()
The range of valid values for General.
Definition CameraState.h:2960
bool operator==(const General &other) const
Comparison operator.
Definition CameraState.h:2980
General()=default
Default constructor.
bool operator<=(const General &other) const
Comparison operator.
Definition CameraState.h:3004
bool operator!=(const General &other) const
Comparison operator.
Definition CameraState.h:2986
bool operator>(const General &other) const
Comparison operator.
Definition CameraState.h:2998
static constexpr const char * description
The description for this value.
Definition CameraState.h:2954
static constexpr const char * path
The full path for this value.
Definition CameraState.h:2948
friend std::ostream & operator<<(std::ostream &stream, const General &value)
Operator to serialize the value to a stream.
Definition CameraState.h:3016
bool operator>=(const General &other) const
Comparison operator.
Definition CameraState.h:3010
LED temperature.
Definition CameraState.h:3033
bool operator<=(const LED &other) const
Comparison operator.
Definition CameraState.h:3095
std::string toString() const
Get the value as string.
bool operator<(const LED &other) const
Comparison operator.
Definition CameraState.h:3083
double value() const
Get the value.
LED()=default
Default constructor.
static constexpr const char * path
The full path for this value.
Definition CameraState.h:3039
constexpr LED(double value)
Constructor.
Definition CameraState.h:3060
friend std::ostream & operator<<(std::ostream &stream, const LED &value)
Operator to serialize the value to a stream.
Definition CameraState.h:3107
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:3036
static constexpr const char * name
The name of this value.
Definition CameraState.h:3042
bool operator!=(const LED &other) const
Comparison operator.
Definition CameraState.h:3077
bool operator==(const LED &other) const
Comparison operator.
Definition CameraState.h:3071
bool operator>=(const LED &other) const
Comparison operator.
Definition CameraState.h:3101
bool operator>(const LED &other) const
Comparison operator.
Definition CameraState.h:3089
static constexpr const char * description
The description for this value.
Definition CameraState.h:3045
static constexpr Range< double > validRange()
The range of valid values for LED.
Definition CameraState.h:3051
double ValueType
The type of the underlying value.
Definition CameraState.h:3048
Lens temperature.
Definition CameraState.h:3124
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:3127
double ValueType
The type of the underlying value.
Definition CameraState.h:3139
static constexpr const char * name
The name of this value.
Definition CameraState.h:3133
bool operator==(const Lens &other) const
Comparison operator.
Definition CameraState.h:3162
Lens()=default
Default constructor.
bool operator<=(const Lens &other) const
Comparison operator.
Definition CameraState.h:3186
double value() const
Get the value.
bool operator>(const Lens &other) const
Comparison operator.
Definition CameraState.h:3180
bool operator!=(const Lens &other) const
Comparison operator.
Definition CameraState.h:3168
static constexpr const char * path
The full path for this value.
Definition CameraState.h:3130
bool operator>=(const Lens &other) const
Comparison operator.
Definition CameraState.h:3192
static constexpr const char * description
The description for this value.
Definition CameraState.h:3136
std::string toString() const
Get the value as string.
constexpr Lens(double value)
Constructor.
Definition CameraState.h:3151
static constexpr Range< double > validRange()
The range of valid values for Lens.
Definition CameraState.h:3142
bool operator<(const Lens &other) const
Comparison operator.
Definition CameraState.h:3174
friend std::ostream & operator<<(std::ostream &stream, const Lens &value)
Operator to serialize the value to a stream.
Definition CameraState.h:3198
PCB temperature.
Definition CameraState.h:3215
bool operator!=(const PCB &other) const
Comparison operator.
Definition CameraState.h:3259
constexpr PCB(double value)
Constructor.
Definition CameraState.h:3242
static constexpr Range< double > validRange()
The range of valid values for PCB.
Definition CameraState.h:3233
bool operator>=(const PCB &other) const
Comparison operator.
Definition CameraState.h:3283
PCB()=default
Default constructor.
bool operator<=(const PCB &other) const
Comparison operator.
Definition CameraState.h:3277
friend std::ostream & operator<<(std::ostream &stream, const PCB &value)
Operator to serialize the value to a stream.
Definition CameraState.h:3289
static constexpr const char * name
The name of this value.
Definition CameraState.h:3224
bool operator==(const PCB &other) const
Comparison operator.
Definition CameraState.h:3253
static constexpr const char * description
The description for this value.
Definition CameraState.h:3227
static constexpr const char * path
The full path for this value.
Definition CameraState.h:3221
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:3218
double value() const
Get the value.
bool operator>(const PCB &other) const
Comparison operator.
Definition CameraState.h:3271
double ValueType
The type of the underlying value.
Definition CameraState.h:3230
std::string toString() const
Get the value as string.
bool operator<(const PCB &other) const
Comparison operator.
Definition CameraState.h:3265
Current temperature(s)
Definition CameraState.h:2833
DMD & dmd()
Get DMD.
Definition CameraState.h:3431
Temperature & set(const General &value)
Set General.
Definition CameraState.h:3456
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:2836
const PCB & pcb() const
Get PCB.
Definition CameraState.h:3501
const CameraState::Temperature::Lens & get() const
Definition CameraState.h:3546
static constexpr const char * name
The name of this value.
Definition CameraState.h:2842
Temperature & set(const Lens &value)
Set Lens.
Definition CameraState.h:3494
const CameraState::Temperature::DMD & get() const
Definition CameraState.h:3522
static constexpr const char * path
The full path for this value.
Definition CameraState.h:2839
const CameraState::Temperature::PCB & get() const
Definition CameraState.h:3554
const CameraState::Temperature::General & get() const
Definition CameraState.h:3530
Temperature & set(const PCB &value)
Set PCB.
Definition CameraState.h:3513
const General & general() const
Get General.
Definition CameraState.h:3444
bool operator!=(const Temperature &other) const
Inequality operator.
const LED & led() const
Get LED.
Definition CameraState.h:3463
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:3591
friend std::ostream & operator<<(std::ostream &stream, const Temperature &value)
Operator to send the value as string to a stream.
Definition CameraState.h:3621
Temperature & set(const LED &value)
Set LED.
Definition CameraState.h:3475
std::string toString() const
Get the value as string.
LED & led()
Get LED.
Definition CameraState.h:3469
bool operator==(const Temperature &other) const
Equality operator.
const Lens & lens() const
Get Lens.
Definition CameraState.h:3482
Temperature copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition CameraState.h:3405
General & general()
Get General.
Definition CameraState.h:3450
std::tuple< CameraState::Temperature::DMD, CameraState::Temperature::General, CameraState::Temperature::LED, CameraState::Temperature::Lens, CameraState::Temperature::PCB > Descendants
Definition CameraState.h:3302
void set(Args &&...args)
Set multiple arguments.
Definition CameraState.h:3369
const DMD & dmd() const
Get DMD.
Definition CameraState.h:3425
static constexpr const char * description
The description for this value.
Definition CameraState.h:2845
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:3602
const CameraState::Temperature::LED & get() const
Definition CameraState.h:3538
Lens & lens()
Get Lens.
Definition CameraState.h:3488
Temperature()
Default constructor.
Temperature & set(const DMD &value)
Set DMD.
Definition CameraState.h:3437
PCB & pcb()
Get PCB.
Definition CameraState.h:3507
Information about camera connection state, temperatures, etc.
Definition CameraState.h:79
CameraState & set(const Network::Ethernet::LinkSpeed &value)
Set Network::Ethernet::LinkSpeed.
Definition CameraState.h:3907
const Temperature & temperature() const
Get Temperature.
Definition CameraState.h:3954
CameraState copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition CameraState.h:3805
const CameraState::Network::IPV4 & get() const
Definition CameraState.h:4050
const CameraState::Temperature::Lens & get() const
Definition CameraState.h:4110
void load(const std::string &fileName)
Load from the given file.
CameraState(const std::string &fileName)
Construct CameraState by loading from file.
std::string serialize() const
Serialize to a string.
CameraState & set(const Temperature &value)
Set Temperature.
Definition CameraState.h:3966
static constexpr const char * description
The description for this value.
Definition CameraState.h:91
const CameraState::Connected & get() const
Definition CameraState.h:4014
Temperature & temperature()
Get Temperature.
Definition CameraState.h:3960
const CameraState::Temperature::General & get() const
Definition CameraState.h:4094
std::string toString() const
Get the value as string.
CameraState & set(const Network &value)
Set Network.
Definition CameraState.h:3893
const CameraState::Status & get() const
Definition CameraState.h:4072
const CameraState::InaccessibleReason & get() const
Definition CameraState.h:4022
const CameraState::Available & get() const
Definition CameraState.h:4008
const CameraState::Network::Ethernet::LinkSpeed & get() const
Definition CameraState.h:4044
const CameraState::Network::IPV4::Address & get() const
Definition CameraState.h:4058
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:4173
void save(const std::string &fileName) const
Save to the given file.
const CameraState::Network & get() const
Definition CameraState.h:4028
const CameraState::Temperature::PCB & get() const
Definition CameraState.h:4118
CameraState & set(const Temperature::PCB &value)
Set Temperature::PCB.
Definition CameraState.h:4001
const InaccessibleReason & inaccessibleReason() const
Get InaccessibleReason.
Definition CameraState.h:3862
const CameraState::Temperature::LED & get() const
Definition CameraState.h:4102
std::tuple< CameraState::Available, CameraState::Connected, CameraState::InaccessibleReason, CameraState::Network, CameraState::Network::Ethernet, CameraState::Network::Ethernet::LinkSpeed, CameraState::Network::IPV4, CameraState::Network::IPV4::Address, CameraState::Network::LocalInterfaces, CameraState::Status, CameraState::Temperature, CameraState::Temperature::DMD, CameraState::Temperature::General, CameraState::Temperature::LED, CameraState::Temperature::Lens, CameraState::Temperature::PCB > Descendants
Definition CameraState.h:3642
static constexpr size_t version
Definition CameraState.h:95
CameraState & set(const Temperature::General &value)
Set Temperature::General.
Definition CameraState.h:3980
friend std::ostream & operator<<(std::ostream &stream, const CameraState &value)
Operator to send the value as string to a stream.
Definition CameraState.h:4193
bool operator!=(const CameraState &other) const
Inequality operator.
CameraState & set(const Network::IPV4 &value)
Set Network::IPV4.
Definition CameraState.h:3914
CameraState & set(const Network::IPV4::Address &value)
Set Network::IPV4::Address.
Definition CameraState.h:3921
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition CameraState.h:82
Status & status()
Get Status.
Definition CameraState.h:3941
const Available & isAvailable() const
Get Available.
Definition CameraState.h:3824
const Status & status() const
Get Status.
Definition CameraState.h:3935
const CameraState::Network::LocalInterfaces & get() const
Definition CameraState.h:4066
Connected & isConnected()
Get Connected.
Definition CameraState.h:3849
CameraState & set(const Temperature::Lens &value)
Set Temperature::Lens.
Definition CameraState.h:3994
CameraState & set(const Available &value)
Set Available.
Definition CameraState.h:3836
CameraState & set(const Temperature::DMD &value)
Set Temperature::DMD.
Definition CameraState.h:3973
static constexpr const char * path
The full path for this value.
Definition CameraState.h:85
bool operator==(const CameraState &other) const
Equality operator.
CameraState()
Default constructor.
CameraState & set(const Status &value)
Set Status.
Definition CameraState.h:3947
CameraState & set(const InaccessibleReason &value)
Set InaccessibleReason.
Definition CameraState.h:3874
CameraState & set(const Connected &value)
Set Connected.
Definition CameraState.h:3855
Network & network()
Get Network.
Definition CameraState.h:3887
static constexpr const char * name
The name of this value.
Definition CameraState.h:88
CameraState(Args &&...args)
Constructor taking variadic number of arguments.
Definition CameraState.h:3716
const CameraState::Temperature & get() const
Definition CameraState.h:4078
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition CameraState.h:4161
static CameraState fromSerialized(const std::string &value)
Construct a new CameraState instance from a previously serialized string.
void set(Args &&...args)
Set multiple arguments.
Definition CameraState.h:3758
const CameraState::Network::Ethernet & get() const
Definition CameraState.h:4036
InaccessibleReason & inaccessibleReason()
Get InaccessibleReason.
Definition CameraState.h:3868
CameraState & set(const Network::Ethernet &value)
Set Network::Ethernet.
Definition CameraState.h:3900
CameraState & set(const Temperature::LED &value)
Set Temperature::LED.
Definition CameraState.h:3987
const CameraState::Temperature::DMD & get() const
Definition CameraState.h:4086
const Network & network() const
Get Network.
Definition CameraState.h:3881
const Connected & isConnected() const
Get Connected.
Definition CameraState.h:3843
Available & isAvailable()
Get Available.
Definition CameraState.h:3830
CameraState & set(const Network::LocalInterfaces &value)
Set Network::LocalInterfaces.
Definition CameraState.h:3928
Class describing a range of values for a given type T.
Definition Range.h:75
NodeType
Definition NodeType.h:49
@ leafDataModelList
Definition NodeType.h:51
@ leafValue
Definition NodeType.h:52
@ group
Definition NodeType.h:50
Definition EnvironmentInfo.h:74
Get version information for the library.
Definition Version.h:58
The main Zivid namespace. All Zivid code is found here.
Definition Application.h:84