Basic_Frame_TypeC_2023_Omni
Loading...
Searching...
No Matches
uarm_types.hpp
1#ifndef __UARM_TYPES_HPP
2#define __UARM_TYPES_HPP
3
4#include <utility>
5#include "stddef.h"
6#include "stdint.h"
7#include "stdlib.h"
8
9#include "uarm_defines.hpp"
10
11/* =========================================================================
12 * UARM MATH TYPES
13 * ====================================================================== */
14typedef struct {
15 float cur_data;
16 float output_data;
17 float last_output_data;
18
19 float a; //filter parameter
21
22typedef struct {
23 float input_data;
24 float output_data;
25 float last_input_data;
26 float last_output_data;
27
28 float a; //filter parameter
30
31typedef struct {
32 float output_data;
33 float last_output_data;
34
35 float a; //filter parameter
37
38typedef struct {
39 float window[MAX_WINDOW_SIZE]; // buffer to the data window
40 size_t window_size; // size of the window
41 size_t current_index; // current position in the window
42 float sum; // sum of the window's elements
44
45/* =========================================================================
46 * UARM STRONG TYPES
47 * ====================================================================== */
48template <typename T, typename Parameter>
49class NamedType {
50 public:
51 constexpr explicit NamedType(T const& value) : value_(value) {}
52 explicit NamedType(T&& value) : value_(std::move(value)) {}
53 T& get() { return value_; }
54 T const& get() const { return value_; }
55
56 private:
57 T value_;
58};
59
62
64using MetersPerSecond = NamedType<float, MetersPerSecondParameter>;
65
67using MetersPerSecondSecond = NamedType<float, MetersPerSecondSecondParameter>;
68
71
73using RadiansPerSecond = NamedType<float, RadiansPerSecondParameter>;
74
76using RadiansPerSecondSecond =
78
81
84
87
90
91#endif
Definition uarm_types.hpp:49
Definition uarm_types.hpp:88
Definition uarm_types.hpp:82
Definition uarm_types.hpp:85
Definition uarm_types.hpp:60
Definition uarm_types.hpp:63
Definition uarm_types.hpp:66
Definition uarm_types.hpp:69
Definition uarm_types.hpp:72
Definition uarm_types.hpp:75
Definition uarm_types.hpp:79
Definition uarm_types.hpp:31
Definition uarm_types.hpp:22
Definition uarm_types.hpp:14
Definition uarm_types.hpp:38