Golioth Firmware SDK
Loading...
Searching...
No Matches
settings.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Golioth, Inc.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6#pragma once
7
9#include <golioth/client.h>
10#include <golioth/config.h>
11#include <stdint.h>
12#include <stdbool.h>
13
40
42struct golioth_settings;
43
62
72
80typedef enum golioth_settings_status (*golioth_int_setting_cb)(int32_t new_value, void *arg);
81typedef enum golioth_settings_status (*golioth_bool_setting_cb)(bool new_value, void *arg);
82typedef enum golioth_settings_status (*golioth_float_setting_cb)(float new_value, void *arg);
83typedef enum golioth_settings_status (*golioth_string_setting_cb)(const char *new_value,
84 size_t new_value_len,
85 void *arg);
86
93struct golioth_settings *golioth_settings_init(struct golioth_client *client);
94
109enum golioth_status golioth_settings_register_int(struct golioth_settings *settings,
110 const char *setting_name,
111 golioth_int_setting_cb callback,
112 void *callback_arg);
113
116enum golioth_status golioth_settings_register_int_with_range(struct golioth_settings *settings,
117 const char *setting_name,
118 int32_t min_val,
119 int32_t max_val,
120 golioth_int_setting_cb callback,
121 void *callback_arg);
122
124enum golioth_status golioth_settings_register_bool(struct golioth_settings *settings,
125 const char *setting_name,
127 void *callback_arg);
128
130enum golioth_status golioth_settings_register_float(struct golioth_settings *settings,
131 const char *setting_name,
133 void *callback_arg);
134
136enum golioth_status golioth_settings_register_string(struct golioth_settings *settings,
137 const char *setting_name,
139 void *callback_arg);
golioth_status
enum golioth_status golioth_settings_register_string(struct golioth_settings *settings, const char *setting_name, golioth_string_setting_cb callback, void *callback_arg)
Same as golioth_settings_register_int, but for type string.
enum golioth_status golioth_settings_register_bool(struct golioth_settings *settings, const char *setting_name, golioth_bool_setting_cb callback, void *callback_arg)
Same as golioth_settings_register_int, but for type bool.
enum golioth_status golioth_settings_register_float(struct golioth_settings *settings, const char *setting_name, golioth_float_setting_cb callback, void *callback_arg)
Same as golioth_settings_register_int, but for type float.
struct golioth_settings * golioth_settings_init(struct golioth_client *client)
enum golioth_settings_status(* golioth_string_setting_cb)(const char *new_value, size_t new_value_len, void *arg)
Definition settings.h:83
enum golioth_settings_status(* golioth_int_setting_cb)(int32_t new_value, void *arg)
Definition settings.h:80
enum golioth_settings_status(* golioth_bool_setting_cb)(bool new_value, void *arg)
Definition settings.h:81
enum golioth_settings_status(* golioth_float_setting_cb)(float new_value, void *arg)
Definition settings.h:82
golioth_settings_status
Enumeration of Settings status codes.
Definition settings.h:46
golioth_settings_value_type
Different types of setting values.
Definition settings.h:65
enum golioth_status golioth_settings_register_int_with_range(struct golioth_settings *settings, const char *setting_name, int32_t min_val, int32_t max_val, golioth_int_setting_cb callback, void *callback_arg)
enum golioth_status golioth_settings_register_int(struct golioth_settings *settings, const char *setting_name, golioth_int_setting_cb callback, void *callback_arg)
@ GOLIOTH_SETTINGS_GENERAL_ERROR
Other general error (e.g. I/O error)
Definition settings.h:60
@ GOLIOTH_SETTINGS_VALUE_OUTSIDE_RANGE
The setting value is outside of allowed range.
Definition settings.h:56
@ GOLIOTH_SETTINGS_VALUE_STRING_TOO_LONG
The setting value string is too long, exceeds max length.
Definition settings.h:58
@ GOLIOTH_SETTINGS_KEY_NOT_VALID
The setting key is too long, ill-formatted.
Definition settings.h:52
@ GOLIOTH_SETTINGS_KEY_NOT_RECOGNIZED
The setting key is not recognized, this setting is unknown.
Definition settings.h:50
@ GOLIOTH_SETTINGS_SUCCESS
Setting applied successfully to the device, stored in NVS.
Definition settings.h:48
@ GOLIOTH_SETTINGS_VALUE_FORMAT_NOT_VALID
The setting value is improperly formatted.
Definition settings.h:54
@ GOLIOTH_SETTINGS_VALUE_TYPE_STRING
Definition settings.h:70
@ GOLIOTH_SETTINGS_VALUE_TYPE_UNKNOWN
Definition settings.h:66
@ GOLIOTH_SETTINGS_VALUE_TYPE_INT
Definition settings.h:67
@ GOLIOTH_SETTINGS_VALUE_TYPE_BOOL
Definition settings.h:68
@ GOLIOTH_SETTINGS_VALUE_TYPE_FLOAT
Definition settings.h:69