21#ifndef LSH_CORE_UTIL_CONSTANTS_TIMING_HPP
22#define LSH_CORE_UTIL_CONSTANTS_TIMING_HPP
26namespace constants::timings
28#ifndef CONFIG_ACTUATOR_DEBOUNCE_TIME_MS
29#define LSH_EFFECTIVE_ACTUATOR_DEBOUNCE_TIME_MS 100U
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.");
35static constexpr const uint8_t ACTUATOR_DEBOUNCE_TIME_MS =
36 LSH_EFFECTIVE_ACTUATOR_DEBOUNCE_TIME_MS;
38#ifndef CONFIG_CLICKABLE_DEBOUNCE_TIME_MS
39static constexpr const uint8_t CLICKABLE_DEBOUNCE_TIME_MS = 20U;
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;
46#ifndef CONFIG_CLICKABLE_SCAN_INTERVAL_MS
47static constexpr const uint16_t CLICKABLE_SCAN_INTERVAL_MS =
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;
55static_assert(CLICKABLE_SCAN_INTERVAL_MS > 0U,
"CONFIG_CLICKABLE_SCAN_INTERVAL_MS must be greater than zero.");
57#ifndef CONFIG_CLICKABLE_LONG_CLICK_TIME_MS
58static constexpr const uint16_t CLICKABLE_LONG_CLICK_TIME_MS = 400U;
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;
65#ifndef CONFIG_CLICKABLE_SUPER_LONG_CLICK_TIME_MS
66static constexpr const uint16_t CLICKABLE_SUPER_LONG_CLICK_TIME_MS = 1000U;
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;
80#ifndef CONFIG_DELAY_AFTER_RECEIVE_MS
81static constexpr const uint8_t DELAY_AFTER_RECEIVE_MS = 50U;
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;
88#ifndef CONFIG_NETWORK_CLICK_CHECK_INTERVAL_MS
89static constexpr const uint8_t NETWORK_CLICK_CHECK_INTERVAL_MS = 50U;
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;
97#ifndef CONFIG_ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS
98static constexpr const uint16_t ACTUATORS_AUTO_OFF_CHECK_INTERVAL_MS = 1000U;
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;
107#ifndef CONFIG_LCNB_TIMEOUT_MS
108static constexpr const uint16_t LCNB_TIMEOUT_MS = 1000U;
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;
115#ifdef CONFIG_LSH_BENCH
116#ifndef CONFIG_BENCH_ITERATIONS
117static constexpr const uint32_t BENCH_ITERATIONS = 1000000U;
119static constexpr const uint32_t BENCH_ITERATIONS = CONFIG_BENCH_ITERATIONS;