xstimeinfo.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 XSTIMEINFO_H
66 #define XSTIMEINFO_H
67 
68 #include "xstypesconfig.h"
69 #include "pstdint.h"
70 
71 #ifdef __cplusplus
72 #include <memory>
73 extern "C" {
74 #endif
75 #define XSTIMEINFO_INITIALIZER { 0, 0 ,0, 0, 0, 0, 0, 0, 0}
76 struct XsTimeInfo;
77 
80 XSTYPES_DLL_API void XsTimeInfo_makeUtc(struct XsTimeInfo* thisPtr);
81 
82 #ifdef __cplusplus
83 } // extern "C"
84 #endif
85 
87 struct XsTimeInfo
88 {
90  uint16_t m_year;
91  uint8_t m_month;
92  uint8_t m_day;
93  uint8_t m_hour;
94  uint8_t m_minute;
95  uint8_t m_second;
96  uint8_t m_valid;
97  int16_t m_utcOffset;
98 
99 #ifdef __cplusplus
100 
101  void clear()
102  {
103  memset(this, 0, sizeof(XsTimeInfo));
104  }
105 
109  inline static XsTimeInfo currentTime()
110  {
111  XsTimeInfo tmp;
113  return tmp;
114  }
115 
119  inline static XsTimeInfo currentLocalTime()
120  {
121  XsTimeInfo tmp;
123  return tmp;
124  }
125 
127  inline bool operator == (const XsTimeInfo& other) const
128  {
129  return m_nano == other.m_nano &&
130  m_year == other.m_year &&
131  m_month == other.m_month &&
132  m_day == other.m_day &&
133  m_hour == other.m_hour &&
134  m_minute == other.m_minute &&
135  m_second == other.m_second &&
136  m_valid == other.m_valid &&
137  m_utcOffset == other.m_utcOffset;
138  }
139 
141  void makeUtc()
142  {
143  if (m_utcOffset)
144  XsTimeInfo_makeUtc(this);
145  }
146 #endif
147 };
148 typedef struct XsTimeInfo XsTimeInfo;
149 
150 #endif
XsTimeInfo::XsTimeInfo_currentLocalTime
void XsTimeInfo_currentLocalTime(struct XsTimeInfo *thisPtr)
Returns the current local time.
Definition: xstimeinfo.c:93
XsTimeInfo::m_hour
uint8_t m_hour
The hour (if time is valid)
Definition: xstimeinfo.h:93
XsTimeInfo::m_utcOffset
int16_t m_utcOffset
Offset to UTC time in minutes. This value can be added to the stored time to get UTC time.
Definition: xstimeinfo.h:97
XsTimeInfo::m_valid
uint8_t m_valid
Validity indicator.
Definition: xstimeinfo.h:96
XsTimeInfo::m_second
uint8_t m_second
The second (if time is valid)
Definition: xstimeinfo.h:95
XsTimeInfo::m_day
uint8_t m_day
The day of the month (if date is valid)
Definition: xstimeinfo.h:92
operator==
bool operator==(const XsFilterProfile &lhs, const XsFilterProfile &rhs)
Returns true if lhs has the same type as rhs.
Definition: scenariomatchpred.h:81
uint32_t
unsigned int uint32_t
Definition: pstdint.h:485
XsTimeInfo::XsTimeInfo_makeUtc
void XsTimeInfo_makeUtc(struct XsTimeInfo *thisPtr)
Removes the local time information, making the object pure UTC.
Definition: xstimeinfo.c:108
XsTimeInfo::XsTimeInfo_currentTime
void XsTimeInfo_currentTime(struct XsTimeInfo *thisPtr)
Returns the current UTC time.
Definition: xstimeinfo.c:79
XsTimeInfo::m_nano
uint32_t m_nano
Nanosecond part of the time.
Definition: xstimeinfo.h:89
xstypesconfig.h
XsTimeInfo::m_month
uint8_t m_month
The month (if date is valid)
Definition: xstimeinfo.h:91
pstdint.h
XsTimeInfo::m_year
uint16_t m_year
The year (if date is valid)
Definition: xstimeinfo.h:90
XsTimeInfo::m_minute
uint8_t m_minute
The minute (if time is valid)
Definition: xstimeinfo.h:94
XSTYPES_DLL_API
#define XSTYPES_DLL_API
Definition: xstypesconfig.h:65
XsTimeInfo
A structure for storing Time values.
Definition: xstimeinfo.h:87


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