1-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
31
33enum class Polarities : uint8_t
34{
37};
38
40enum class OutputModes : uint8_t
41{
44};
45
47enum class LoadStates : uint8_t
48{
51};
52// enum loadStates {LOAD_ON, LOAD_OFF}; /**< for use if loads are active low (original PCB) */
53
54inline constexpr uint8_t loadStateMask{ 0x7FU };
55inline constexpr uint8_t loadStateOnBit{ (uint8_t)(~loadStateMask) };
56
58enum class RotationModes : uint8_t
59{
63};
64
66enum class DisplayType : uint8_t
67{
72};
73
79template< uint8_t S = 0 > class PayloadTx_struct
80{
81public:
82 int16_t powerGrid;
83 int16_t powerDiverted;
84 int16_t Vrms_L_x100;
85 int16_t temperature_x100[S];
86};
87
94template< typename _Tp, size_t _Nm > constexpr size_t size(const _Tp (& /*__array*/)[_Nm]) noexcept
95{
96 return _Nm;
97}
98
104template< typename _Tp > constexpr size_t size(const _Tp (& /*__array*/)[0]) noexcept
105{
106 return 0;
107}
108
109template< class... Ts >
110constexpr uint8_t ival(Ts... Vs)
111{
112 char vals[sizeof...(Vs)] = { Vs... };
113 uint8_t result = 0;
114 for (uint8_t i = 0; i < sizeof...(Vs); i++)
115 {
116 result *= 10;
117 result += vals[i] - '0';
118 }
119 return result;
120}
121
122template< char... Vs >
123constexpr integral_constant< uint8_t, ival(Vs...) > operator""_i()
124{
125 return {};
126}
127
128#endif // TYPES_H
Container for datalogging.
Definition types.h:80
int16_t powerDiverted
Definition types.h:83
int16_t temperature_x100[S]
Definition types.h:85
int16_t Vrms_L_x100
Definition types.h:84
int16_t powerGrid
Definition types.h:82
Some constants.
uint8_t i
Some useful but missing stl functions templates.
RotationModes
Definition types.h:59
constexpr uint8_t ival(Ts... Vs)
Definition types.h:110
Polarities
Definition types.h:34
@ NEGATIVE
Definition types.h:35
@ POSITIVE
Definition types.h:36
constexpr size_t size(const _Tp(&)[_Nm]) noexcept
Helper function to retrieve the dimension of a C-array.
Definition types.h:94
SerialOutputType
Definition types.h:26
constexpr uint8_t loadStateMask
Definition types.h:54
constexpr uint8_t loadStateOnBit
Definition types.h:55
LoadStates
Definition types.h:48
@ LOAD_OFF
Definition types.h:49
@ LOAD_ON
Definition types.h:50
OutputModes
Definition types.h:41
@ ANTI_FLICKER
Definition types.h:42
DisplayType
Definition types.h:67
constexpr uint8_t OFF