xsdeviceparameter.h
Go to the documentation of this file.
1 
2 // Copyright (c) 2003-2021 Xsens Technologies B.V. or subsidiaries worldwide.
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without modification,
6 // are permitted provided that the following conditions are met:
7 //
8 // 1. Redistributions of source code must retain the above copyright notice,
9 // this list of conditions, and the following disclaimer.
10 //
11 // 2. Redistributions in binary form must reproduce the above copyright notice,
12 // this list of conditions, and the following disclaimer in the documentation
13 // and/or other materials provided with the distribution.
14 //
15 // 3. Neither the names of the copyright holders nor the names of their contributors
16 // may be used to endorse or promote products derived from this software without
17 // specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22 // THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 // SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
24 // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR
26 // TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.THE LAWS OF THE NETHERLANDS
28 // SHALL BE EXCLUSIVELY APPLICABLE AND ANY DISPUTES SHALL BE FINALLY SETTLED UNDER THE RULES
29 // OF ARBITRATION OF THE INTERNATIONAL CHAMBER OF COMMERCE IN THE HAGUE BY ONE OR MORE
30 // ARBITRATORS APPOINTED IN ACCORDANCE WITH SAID RULES.
31 //
32 
33 
34 // Copyright (c) 2003-2021 Xsens Technologies B.V. or subsidiaries worldwide.
35 // All rights reserved.
36 //
37 // Redistribution and use in source and binary forms, with or without modification,
38 // are permitted provided that the following conditions are met:
39 //
40 // 1. Redistributions of source code must retain the above copyright notice,
41 // this list of conditions, and the following disclaimer.
42 //
43 // 2. Redistributions in binary form must reproduce the above copyright notice,
44 // this list of conditions, and the following disclaimer in the documentation
45 // and/or other materials provided with the distribution.
46 //
47 // 3. Neither the names of the copyright holders nor the names of their contributors
48 // may be used to endorse or promote products derived from this software without
49 // specific prior written permission.
50 //
51 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
52 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
53 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
54 // THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
55 // SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
56 // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
57 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR
58 // TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
59 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.THE LAWS OF THE NETHERLANDS
60 // SHALL BE EXCLUSIVELY APPLICABLE AND ANY DISPUTES SHALL BE FINALLY SETTLED UNDER THE RULES
61 // OF ARBITRATION OF THE INTERNATIONAL CHAMBER OF COMMERCE IN THE HAGUE BY ONE OR MORE
62 // ARBITRATORS APPOINTED IN ACCORDANCE WITH SAID RULES.
63 //
64 
65 #ifndef XSDEVICEPARAMETER_H
66 #define XSDEVICEPARAMETER_H
67 
69 #include <xstypes/pstdint.h>
70 
71 #ifdef __cplusplus
72 extern "C" {
73 struct XsDeviceParameter;
74 } // extern "C"
75 #endif
76 
82 {
83 #ifdef __cplusplus
86  : m_id(id)
87  , m_value(0)
88  {
89  }
90 
92  explicit XsDeviceParameter(XsDeviceParameterIdentifier id, int value)
93  : m_id(id)
94  , m_value(static_cast<uint32_t>(value))
95  {
96  }
97 
100  {
101  return m_id;
102  }
103 
108  template<typename T>
109  T getValue() const;
110 
111 
116  template<typename T>
117  void setValue(T value);
118 
119 private:
120 #endif
122  int m_value;
123 };
124 
125 
126 #ifdef __cplusplus
127 template<>
129 inline bool XsDeviceParameter::getValue<bool>() const
130 {
131  return m_value > 0;
132 }
133 
135 template<>
136 inline uint8_t XsDeviceParameter::getValue<uint8_t>() const
137 {
138  return static_cast<uint8_t>(m_value);
139 }
140 
142 template<>
143 inline uint16_t XsDeviceParameter::getValue<uint16_t>() const
144 {
145  return static_cast<uint16_t>(m_value);
146 }
147 
149 template<>
150 inline uint32_t XsDeviceParameter::getValue<uint32_t>() const
151 {
152  return static_cast<uint32_t>(m_value);
153 }
154 
156 template<>
157 inline int XsDeviceParameter::getValue<int>() const
158 {
159  return m_value;
160 }
161 
163 template<>
164 inline void XsDeviceParameter::setValue<bool>(bool value)
165 {
166  m_value = value ? 1 : 0;
167 }
168 
170 template<>
171 inline void XsDeviceParameter::setValue<uint8_t>(uint8_t value)
172 {
173  m_value = static_cast<int>(value);
174 }
175 
177 template<>
178 inline void XsDeviceParameter::setValue<uint16_t>(uint16_t value)
179 {
180  m_value = static_cast<int>(value);
181 }
182 
184 template<>
185 inline void XsDeviceParameter::setValue<uint32_t>(uint32_t value)
186 {
187  m_value = static_cast<int>(value);
188 }
189 
191 template<>
192 inline void XsDeviceParameter::setValue<int>(int value)
193 {
194  m_value = value;
195 }
196 #endif
197 
199 
200 #endif
XsDeviceParameter
struct XsDeviceParameter XsDeviceParameter
Definition: xsdeviceparameter.h:198
XsDeviceParameter::m_value
int m_value
Definition: xsdeviceparameter.h:122
uint32_t
unsigned int uint32_t
Definition: pstdint.h:485
XsDeviceParameter
Class to set and retrieve parameters from a XsDevice object.
Definition: xsdeviceparameter.h:81
XsDeviceParameter::m_id
XsDeviceParameterIdentifier m_id
Definition: xsdeviceparameter.h:121
pstdint.h
xsdeviceparameteridentifier.h
XsDeviceParameterIdentifier
XsDeviceParameterIdentifier
Defines the device parameter identifiers.
Definition: xsdeviceparameteridentifier.h:77


xsens_mti_driver
Author(s):
autogenerated on Sun Sep 3 2023 02:43:20