ESPectre SDK
2.8.0-280-gac7af68
Wi-Fi CSI motion sensing for ESP32 firmware
Toggle main menu visibility
Loading...
Searching...
No Matches
runtime_config_utils.h
Go to the documentation of this file.
1
/*
2
* ESPectre - Runtime Config Utils
3
*
4
* Helpers for normalizing and applying runtime configuration.
5
*
6
* Author: Francesco Pace <francesco.pace@gmail.com>
7
* SPDX-License-Identifier: GPL-3.0-only
8
* Commercial licensing available under separate agreement; see LICENSING.md.
9
*/
10
#pragma once
11
12
#include "
runtime_interface.h
"
13
14
namespace
espectre
{
15
16
/** Machine-readable reason a `RuntimeConfig` cannot be applied. */
17
enum class
RuntimeConfigError
: uint8_t {
18
NONE
= 0,
19
RUNTIME_PROFILE
,
20
WIFI_BAND_POLICY
,
21
DETECTION_ALGORITHM
,
22
SEGMENTATION_THRESHOLD
,
23
SEGMENTATION_WINDOW_SIZE_MS
,
24
CSI_TARGET_PPS
,
25
TRAFFIC_GENERATOR_MODE
,
26
CSI_TRAFFIC_MODE
,
27
CSI_TRAFFIC_UDP_PORT
,
28
CSI_TRAFFIC_MULTICAST_GROUP
,
29
CSI_TRAFFIC_EXPECTED_PAYLOAD
,
30
STREAM_COLLECTOR_PORT
,
31
STREAM_LOG_INTERVAL_MS
,
32
STREAM_TX_BATCH_RECORDS
,
33
PUBLISH_INTERVAL_MS
,
34
EVALUATION_INTERVAL_MS
,
35
MOTION_HITS
,
36
LOWPASS_CUTOFF
,
37
HAMPEL_WINDOW
,
38
HAMPEL_THRESHOLD
,
39
};
40
41
bool
validate_runtime_threshold
(
float
threshold);
42
bool
validate_runtime_threshold_for_algorithm
(
float
threshold,
DetectionAlgorithm
algorithm);
43
bool
validate_runtime_float
(
float
value,
float
min_value,
float
max_value);
44
bool
validate_runtime_uint32
(uint32_t value, uint32_t min_value, uint32_t max_value);
45
bool
validate_runtime_uint8
(uint8_t value, uint8_t min_value, uint8_t max_value);
46
47
/** Validate the complete configuration before creating runtime state. */
48
RuntimeConfigError
validate_runtime_config
(
const
RuntimeConfig
&config);
49
/** Stable diagnostic label for a configuration error. Never returns `nullptr`. */
50
const
char
*
runtime_config_error_message
(
RuntimeConfigError
error);
51
52
const
char
*
runtime_profile_name
(
RuntimeProfile
profile);
53
const
char
*
wifi_band_policy_name
(
WifiBandPolicy
policy);
54
55
const
char
*
traffic_mode_name
(
RuntimeTrafficMode
mode);
56
const
char
*
csi_traffic_mode_name
(
CsiTrafficMode
mode);
57
bool
csi_traffic_mode_is_sensing_control
(
CsiTrafficMode
mode);
58
CsiTrafficMode
normalize_sensing_csi_traffic_mode
(
CsiTrafficMode
mode);
59
const
char
*
detection_algorithm_name
(
DetectionAlgorithm
algorithm);
60
const
char
*
subcarrier_source_name
(
RuntimeSubcarrierSource
source);
61
62
RuntimeTrafficMode
parse_traffic_mode
(
const
char
*mode);
63
CsiTrafficMode
parse_csi_traffic_mode
(
const
char
*mode);
64
DetectionAlgorithm
parse_detection_algorithm
(
const
char
*algorithm);
65
WifiBandPolicy
parse_wifi_band_policy
(
const
char
*policy);
66
67
RuntimeConfig
make_runtime_sensing_config
();
68
69
}
// namespace espectre
espectre
Definition
espectre_sdk_version.h:62
espectre::detection_algorithm_name
const char * detection_algorithm_name(DetectionAlgorithm algorithm)
espectre::traffic_mode_name
const char * traffic_mode_name(RuntimeTrafficMode mode)
espectre::parse_wifi_band_policy
WifiBandPolicy parse_wifi_band_policy(const char *policy)
espectre::validate_runtime_config
RuntimeConfigError validate_runtime_config(const RuntimeConfig &config)
Validate the complete configuration before creating runtime state.
espectre::parse_csi_traffic_mode
CsiTrafficMode parse_csi_traffic_mode(const char *mode)
espectre::runtime_config_error_message
const char * runtime_config_error_message(RuntimeConfigError error)
Stable diagnostic label for a configuration error.
espectre::RuntimeProfile
RuntimeProfile
Which runtime backend the controller builds.
Definition
runtime_sensing_schema.h:46
espectre::RuntimeTrafficMode
RuntimeTrafficMode
Which packet the internal generator sends to solicit CSI from the AP.
Definition
runtime_sensing_schema.h:59
espectre::parse_detection_algorithm
DetectionAlgorithm parse_detection_algorithm(const char *algorithm)
espectre::validate_runtime_uint32
bool validate_runtime_uint32(uint32_t value, uint32_t min_value, uint32_t max_value)
espectre::validate_runtime_threshold_for_algorithm
bool validate_runtime_threshold_for_algorithm(float threshold, DetectionAlgorithm algorithm)
espectre::CsiTrafficMode
CsiTrafficMode
Where the CSI-bearing traffic comes from.
Definition
csi_traffic_types.h:21
espectre::validate_runtime_float
bool validate_runtime_float(float value, float min_value, float max_value)
espectre::runtime_profile_name
const char * runtime_profile_name(RuntimeProfile profile)
espectre::wifi_band_policy_name
const char * wifi_band_policy_name(WifiBandPolicy policy)
espectre::validate_runtime_uint8
bool validate_runtime_uint8(uint8_t value, uint8_t min_value, uint8_t max_value)
espectre::subcarrier_source_name
const char * subcarrier_source_name(RuntimeSubcarrierSource source)
espectre::make_runtime_sensing_config
RuntimeConfig make_runtime_sensing_config()
espectre::csi_traffic_mode_is_sensing_control
bool csi_traffic_mode_is_sensing_control(CsiTrafficMode mode)
espectre::WifiBandPolicy
WifiBandPolicy
Wi-Fi band selection requested by the embedding frontend.
Definition
runtime_interface.h:34
espectre::csi_traffic_mode_name
const char * csi_traffic_mode_name(CsiTrafficMode mode)
espectre::validate_runtime_threshold
bool validate_runtime_threshold(float threshold)
espectre::DetectionAlgorithm
DetectionAlgorithm
Which detector runs.
Definition
runtime_sensing_schema.h:38
espectre::normalize_sensing_csi_traffic_mode
CsiTrafficMode normalize_sensing_csi_traffic_mode(CsiTrafficMode mode)
espectre::parse_traffic_mode
RuntimeTrafficMode parse_traffic_mode(const char *mode)
espectre::RuntimeConfigError
RuntimeConfigError
Machine-readable reason a RuntimeConfig cannot be applied.
Definition
runtime_config_utils.h:17
espectre::RuntimeConfigError::LOWPASS_CUTOFF
@ LOWPASS_CUTOFF
Definition
runtime_config_utils.h:36
espectre::RuntimeConfigError::HAMPEL_WINDOW
@ HAMPEL_WINDOW
Definition
runtime_config_utils.h:37
espectre::RuntimeConfigError::SEGMENTATION_THRESHOLD
@ SEGMENTATION_THRESHOLD
Definition
runtime_config_utils.h:22
espectre::RuntimeConfigError::STREAM_COLLECTOR_PORT
@ STREAM_COLLECTOR_PORT
Definition
runtime_config_utils.h:30
espectre::RuntimeConfigError::CSI_TRAFFIC_MODE
@ CSI_TRAFFIC_MODE
Definition
runtime_config_utils.h:26
espectre::RuntimeConfigError::EVALUATION_INTERVAL_MS
@ EVALUATION_INTERVAL_MS
Definition
runtime_config_utils.h:34
espectre::RuntimeConfigError::CSI_TRAFFIC_MULTICAST_GROUP
@ CSI_TRAFFIC_MULTICAST_GROUP
Definition
runtime_config_utils.h:28
espectre::RuntimeConfigError::SEGMENTATION_WINDOW_SIZE_MS
@ SEGMENTATION_WINDOW_SIZE_MS
Definition
runtime_config_utils.h:23
espectre::RuntimeConfigError::STREAM_TX_BATCH_RECORDS
@ STREAM_TX_BATCH_RECORDS
Definition
runtime_config_utils.h:32
espectre::RuntimeConfigError::RUNTIME_PROFILE
@ RUNTIME_PROFILE
Definition
runtime_config_utils.h:19
espectre::RuntimeConfigError::NONE
@ NONE
Definition
runtime_config_utils.h:18
espectre::RuntimeConfigError::STREAM_LOG_INTERVAL_MS
@ STREAM_LOG_INTERVAL_MS
Definition
runtime_config_utils.h:31
espectre::RuntimeConfigError::CSI_TRAFFIC_EXPECTED_PAYLOAD
@ CSI_TRAFFIC_EXPECTED_PAYLOAD
Definition
runtime_config_utils.h:29
espectre::RuntimeConfigError::DETECTION_ALGORITHM
@ DETECTION_ALGORITHM
Definition
runtime_config_utils.h:21
espectre::RuntimeConfigError::CSI_TRAFFIC_UDP_PORT
@ CSI_TRAFFIC_UDP_PORT
Definition
runtime_config_utils.h:27
espectre::RuntimeConfigError::HAMPEL_THRESHOLD
@ HAMPEL_THRESHOLD
Definition
runtime_config_utils.h:38
espectre::RuntimeConfigError::WIFI_BAND_POLICY
@ WIFI_BAND_POLICY
Definition
runtime_config_utils.h:20
espectre::RuntimeConfigError::CSI_TARGET_PPS
@ CSI_TARGET_PPS
Definition
runtime_config_utils.h:24
espectre::RuntimeConfigError::MOTION_HITS
@ MOTION_HITS
Definition
runtime_config_utils.h:35
espectre::RuntimeConfigError::TRAFFIC_GENERATOR_MODE
@ TRAFFIC_GENERATOR_MODE
Definition
runtime_config_utils.h:25
espectre::RuntimeConfigError::PUBLISH_INTERVAL_MS
@ PUBLISH_INTERVAL_MS
Definition
runtime_config_utils.h:33
espectre::RuntimeSubcarrierSource
RuntimeSubcarrierSource
How the runtime chose the subcarriers it measures on.
Definition
runtime_snapshot.h:21
runtime_interface.h
Runtime configuration and the backend contract behind it.
espectre::RuntimeConfig
Everything the runtime needs to know before setup().
Definition
runtime_interface.h:59
src
cpp
runtime
runtime_config_utils.h
Generated by
1.17.0