3-phase PV router
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1
11
12#ifndef TYPES_H
13#define TYPES_H
14
15#include <Arduino.h>
16
17#include "type_traits.hpp"
18
19#include "constants.h"
20
21// -------------------------------
22// definitions of enumerated types
23
24//--------------------------------------------------------------------------------------------------
32
34enum class Polarities : uint8_t
35{
38};
39
41enum class OutputModes : uint8_t
42{
45};
46
48enum class LoadStates : uint8_t
49{
52};
53// enum loadStates {LOAD_ON, LOAD_OFF}; /**< for use if loads are active low (original PCB) */
54
55inline constexpr uint8_t loadStateMask{ 0x7FU };
56inline constexpr uint8_t loadStateOnBit{ (uint8_t)(~loadStateMask) };
57
59enum class RotationModes : uint8_t
60{
64};
65
72template< uint8_t N = 3, uint8_t S = 0 > class PayloadTx_struct
73{
74public:
75 int16_t power{ 0 };
76 int16_t power_L[N]{};
77 uint16_t Vrms_L_x100[N]{};
78 int16_t temperature_x100[S]{};
79};
80
87template< typename _Tp, size_t _Nm > constexpr size_t size(const _Tp (& /*__array*/)[_Nm]) noexcept
88{
89 return _Nm;
90}
91
97template< typename _Tp > constexpr size_t size(const _Tp (& /*__array*/)[0]) noexcept
98{
99 return 0;
100}
101
102template< class... Ts >
103constexpr uint8_t ival(Ts... Vs)
104{
105 char vals[sizeof...(Vs)] = { Vs... };
106 uint8_t result = 0;
107 for (uint8_t i = 0; i < sizeof...(Vs); i++)
108 {
109 result *= 10;
110 result += vals[i] - '0';
111 }
112 return result;
113}
114
115template< char... Vs >
116constexpr integral_constant< uint8_t, ival(Vs...) > operator""_i()
117{
118 return {};
119}
120
121#endif // TYPES_H
container for datalogging
Definition types.h:73
int16_t power_L[N]
Definition types.h:76
int16_t temperature_x100[S]
Definition types.h:78
uint16_t Vrms_L_x100[N]
Definition types.h:77
int16_t power
Definition types.h:75
Some constants.
uint8_t i
Some useful but missing stl functions templates.
RotationModes
Definition types.h:60
constexpr uint8_t ival(Ts... Vs)
Definition types.h:103
Polarities
Definition types.h:35
@ NEGATIVE
Definition types.h:36
@ POSITIVE
Definition types.h:37
constexpr size_t size(const _Tp(&)[_Nm]) noexcept
Helper function to retrieve the dimension of a C-array.
Definition types.h:87
SerialOutputType
Definition types.h:27
constexpr uint8_t loadStateMask
Definition types.h:55
constexpr uint8_t loadStateOnBit
Definition types.h:56
LoadStates
Definition types.h:49
@ LOAD_OFF
Definition types.h:50
@ LOAD_ON
Definition types.h:51
OutputModes
Definition types.h:42
@ ANTI_FLICKER
Definition types.h:43