HFCC-01 Low-Level Software (LLSW) Rel_6802_HFCC-01-RP-CSAR-CB
Loading...
Searching...
No Matches
utilHelper.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025, TUSAS Malaysia
3 * All rights reserved.
4 * This file contains proprietary information. This
5 * file shall not be duplicated, used, modified,
6 * or disclosed in whole or in part without
7 * the express written consent of TUSAS.
8 */
9
16
17#ifndef INCLUDED_UTIL_HELPER_H
18#define INCLUDED_UTIL_HELPER_H
19
20#include <INTEGRITY.h>
21
22#ifndef M_PI
23#define M_PI (3.14159265358979323846)
24#endif
25
26#ifndef UINT8_MAX
27#define UINT8_MAX (255U)
28#endif
29
30#ifndef UINT16_MAX
31#define UINT16_MAX (65535U)
32#endif
33
34#ifndef UINT32_MAX
35#define UINT32_MAX (4294967295U)
36#endif
37
38#ifndef FLOAT_TOLERANCE
39#define FLOAT_TOLERANCE 1E-6
40#endif
41
42#define NSEC_(x) (x) // Specify period in nanoseconds. (Output in nanoseconds)
43#define USEC_(x) (NSEC_(x) * 1000UL) // Specify period in microseconds. (Output in nanoseconds)
44#define MSEC_(x) (USEC_(x) * 1000UL) // Specify period in milliseconds. (Output in nanoseconds)
45#define SEC_(x) (MSEC_(x) * 1000UL) // Specify period in seconds. (Output in nanoseconds)
46#define HZ_(x) (SEC_(1UL) / (x)) // Specify frequency in hertz. (Output in nanoseconds)
47#define KHZ_(x) (HZ_((x) * 1000UL)) // Specify frequency in kilohertz. (Output in nanoseconds)
48
49#ifndef RANGE_CHECK
57#define RANGE_CHECK(val, lo, hi) ((lo) <= (val) && (val) <= (hi))
58#endif
59
60#ifndef RANGE_CHECK_FLOAT
69#define RANGE_CHECK_FLOAT(val, lo, hi) (((val) - (lo) > -FLOAT_TOLERANCE) && ((hi) - (val) > -FLOAT_TOLERANCE))
70#endif
71
72#ifndef ENDIAN_16
76#define ENDIAN_16(data) ((((data) >> 8) & 0x00FF) | (((data) << 8) & 0xFF00))
77#endif
78
79#ifndef ENDIAN_32
83#define ENDIAN_32(data) ((((data) >> 24) & 0x000000FF) | (((data) >> 8) & 0x0000FF00) | (((data) << 8) & 0x00FF0000) | (((data) << 24) & 0xFF000000))
84#endif
85
86#ifndef BIT_POS
91#define BIT_POS(n) (1UL << (n))
92#endif
93
94#ifndef READ_BIT
104#define READ_BIT(var, bit) (((var) & BIT_POS(bit)) >> bit)
105#endif
106
107#ifndef READ_MASK_VALUE
117#define READ_MASK_VALUE(var, mask) ((var) & (mask))
118#endif
119
120#ifndef WRITE_SET_BIT
130#define WRITE_SET_BIT(var, bit) ((var) = ((var) | BIT_POS(bit)))
131#endif
132
133#ifndef WRITE_CLEAR_BIT
143#define WRITE_CLEAR_BIT(var, bit) ((var) = ((var) & ~BIT_POS(bit)))
144#endif
145
146#ifndef WRITE_MASK_VALUE
156#define WRITE_MASK_VALUE(var, mask) ((var) = ((var) | (mask)))
157#endif
158
159#ifndef TOGGLE_BIT
169#define TOGGLE_BIT(var, bit) ((var) = ((var) ^ BIT_POS(bit)))
170#endif
171
172#endif // INCLUDED_UTIL_HELPER_H