LSH-Core
Deterministic firmware core for Controllino-based Labo Smart Home nodes
 
Loading...
Searching...
No Matches
timing.hpp
Go to the documentation of this file.
1
21#ifndef LSH_CORE_UTIL_CONSTANTS_TIMING_HPP
22#define LSH_CORE_UTIL_CONSTANTS_TIMING_HPP
23
24#include <stdint.h>
25
26namespace constants::timings
27{
28#ifndef CONFIG_ACTUATOR_DEBOUNCE_TIME_MS
29#define LSH_EFFECTIVE_ACTUATOR_DEBOUNCE_TIME_MS 100U
30#else
31#define LSH_EFFECTIVE_ACTUATOR_DEBOUNCE_TIME_MS CONFIG_ACTUATOR_DEBOUNCE_TIME_MS
32static_assert(CONFIG_ACTUATOR_DEBOUNCE_TIME_MS >= 0, "CONFIG_ACTUATOR_DEBOUNCE_TIME_MS must be non-negative.");
33static_assert(CONFIG_ACTUATOR_DEBOUNCE_TIME_MS <= UINT8_MAX, "CONFIG_ACTUATOR_DEBOUNCE_TIME_MS must fit in uint8_t.");
34#endif // CONFIG_ACTUATOR_DEBOUNCE_TIME_MS
35static constexpr const uint8_t ACTUATOR_DEBOUNCE_TIME_MS =
36 LSH_EFFECTIVE_ACTUATOR_DEBOUNCE_TIME_MS;
37
38#ifndef CONFIG_CLICKABLE_DEBOUNCE_TIME_MS
39static constexpr const uint8_t CLICKABLE_DEBOUNCE_TIME_MS = 20U;
40#else
41static_assert(CONFIG_CLICKABLE_DEBOUNCE_TIME_MS >= 0, "CONFIG_CLICKABLE_DEBOUNCE_TIME_MS must be non-negative.");
42static_assert(CONFIG_CLICKABLE_DEBOUNCE_TIME_MS <= UINT8_MAX, "CONFIG_CLICKABLE_DEBOUNCE_TIME_MS must fit in uint8_t.");
43static constexpr const uint8_t CLICKABLE_DEBOUNCE_TIME_MS = CONFIG_CLICKABLE_DEBOUNCE_TIME_MS;
44#endif // CONFIG_CLICKABLE_DEBOUNCE_TIME_MS
45
46#ifndef CONFIG_CLICKABLE_SCAN_INTERVAL_MS
47static constexpr const uint16_t CLICKABLE_SCAN_INTERVAL_MS =
48 1U;
49#else
50static_assert(CONFIG_CLICKABLE_SCAN_INTERVAL_MS > 0, "CONFIG_CLICKABLE_SCAN_INTERVAL_MS must be greater than zero.");
51static_assert(CONFIG_CLICKABLE_SCAN_INTERVAL_MS <= UINT16_MAX, "CONFIG_CLICKABLE_SCAN_INTERVAL_MS must fit in uint16_t.");
52static constexpr const uint16_t CLICKABLE_SCAN_INTERVAL_MS =
53 CONFIG_CLICKABLE_SCAN_INTERVAL_MS;
54#endif // CONFIG_CLICKABLE_SCAN_INTERVAL_MS
55static_assert(CLICKABLE_SCAN_INTERVAL_MS > 0U, "CONFIG_CLICKABLE_SCAN_INTERVAL_MS must be greater than zero.");
56
57#ifndef CONFIG_CLICKABLE_LONG_CLICK_TIME_MS
58static constexpr const uint16_t CLICKABLE_LONG_CLICK_TIME_MS = 400U;
59#else
60static_assert(CONFIG_CLICKABLE_LONG_CLICK_TIME_MS >= 0, "CONFIG_CLICKABLE_LONG_CLICK_TIME_MS must be non-negative.");
61static_assert(CONFIG_CLICKABLE_LONG_CLICK_TIME_MS <= UINT16_MAX, "CONFIG_CLICKABLE_LONG_CLICK_TIME_MS must fit in uint16_t.");
62static constexpr const uint16_t CLICKABLE_LONG_CLICK_TIME_MS = CONFIG_CLICKABLE_LONG_CLICK_TIME_MS;
63#endif // CONFIG_CLICKABLE_LONG_CLICK_TIME_MS
64
65#ifndef CONFIG_CLICKABLE_SUPER_LONG_CLICK_TIME_MS
66static constexpr const uint16_t CLICKABLE_SUPER_LONG_CLICK_TIME_MS = 1000U;
67#else
68static_assert(CONFIG_CLICKABLE_SUPER_LONG_CLICK_TIME_MS >= 0, "CONFIG_CLICKABLE_SUPER_LONG_CLICK_TIME_MS must be non-negative.");
69static_assert(CONFIG_CLICKABLE_SUPER_LONG_CLICK_TIME_MS <= UINT16_MAX, "CONFIG_CLICKABLE_SUPER_LONG_CLICK_TIME_MS must fit in uint16_t.");
70static constexpr const uint16_t CLICKABLE_SUPER_LONG_CLICK_TIME_MS =
71 CONFIG_CLICKABLE_SUPER_LONG_CLICK_TIME_MS;
72#endif // CONFIG_CLICKABLE_SUPER_LONG_CLICK_TIME_MS
73
80#ifndef CONFIG_DELAY_AFTER_RECEIVE_MS
81static constexpr const uint8_t DELAY_AFTER_RECEIVE_MS = 50U;
82#else
83static_assert(CONFIG_DELAY_AFTER_RECEIVE_MS >= 0, "CONFIG_DELAY_AFTER_RECEIVE_MS must be non-negative.");
84static_assert(CONFIG_DELAY_AFTER_RECEIVE_MS <= UINT8_MAX, "CONFIG_DELAY_AFTER_RECEIVE_MS must fit in uint8_t.");
85static constexpr const uint8_t DELAY_AFTER_RECEIVE_MS = CONFIG_DELAY_AFTER_RECEIVE_MS;
86#endif // CONFIG_DELAY_AFTER_RECEIVE_MS
87
88#ifndef CONFIG_NETWORK_CLICK_CHECK_INTERVAL_MS
89static constexpr const uint8_t NETWORK_CLICK_CHECK_INTERVAL_MS = 50U;
90#else
91static_assert(CONFIG_NETWORK_CLICK_CHECK_INTERVAL_MS >= 0, "CONFIG_NETWORK_CLICK_CHECK_INTERVAL_MS must be non-negative.");
92static_assert(CONFIG_NETWORK_CLICK_CHECK_INTERVAL_MS <= UINT8_MAX, "CONFIG_NETWORK_CLICK_CHECK_INTERVAL_MS must fit in uint8_t.");
93static constexpr const uint8_t NETWORK_CLICK_CHECK_INTERVAL_MS =
94 CONFIG_NETWORK_CLICK_CHECK_INTERVAL_MS;
95#endif // CONFIG_NETWORK_CLICK_CHECK_INTERVAL_MS
96
97#ifndef CONFIG_ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS
98static constexpr const uint16_t ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS = 1000U;
99#else
100static_assert(CONFIG_ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS > 0, "CONFIG_ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS must be greater than zero.");
101static_assert(CONFIG_ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS <= UINT16_MAX,
102 "CONFIG_ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS must fit in uint16_t.");
103static constexpr const uint16_t ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS =
104 CONFIG_ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS;
105#endif // CONFIG_ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS
106
107#ifndef CONFIG_LCNB_TIMEOUT_MS
108static constexpr const uint16_t LCNB_TIMEOUT_MS = 1000U;
109#else
110static_assert(CONFIG_LCNB_TIMEOUT_MS > 0, "CONFIG_LCNB_TIMEOUT_MS must be greater than zero.");
111static_assert(CONFIG_LCNB_TIMEOUT_MS <= UINT16_MAX, "CONFIG_LCNB_TIMEOUT_MS must fit in uint16_t.");
112static constexpr const uint16_t LCNB_TIMEOUT_MS = CONFIG_LCNB_TIMEOUT_MS;
113#endif // CONFIG_LCNB_TIMEOUT_MS
114
115#ifdef CONFIG_LSH_BENCH
116#ifndef CONFIG_BENCH_ITERATIONS
117static constexpr const uint32_t BENCH_ITERATIONS = 1000000U;
118#else
119static constexpr const uint32_t BENCH_ITERATIONS = CONFIG_BENCH_ITERATIONS;
120#endif // CONFIG_BENCH_ITERATIONS
121#endif // CONFIG_LSH_BENCH
122} // namespace constants::timings
123
124#endif // LSH_CORE_UTIL_CONSTANTS_TIMING_HPP