Myriota Flex SDK 2.5.0
Loading...
Searching...
No Matches
flex_diag_conf.h
1
2// Copyright (c) 2025, Myriota Pty Ltd, All Rights Reserved
3// SPDX-License-Identifier: BSD-3-Clause-Attribution
4//
5// This file is licensed under the BSD with attribution (the "License"); you
6// may not use these files except in compliance with the License.
7//
8// You may obtain a copy of the License here:
9// LICENSE-BSD-3-Clause-Attribution.txt and at
10// https://spdx.org/licenses/BSD-3-Clause-Attribution.html
11//
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#ifndef FLEX_DIAG_CONF_H
16#define FLEX_DIAG_CONF_H
17
18#include <stdbool.h>
19#include <stdint.h>
20
24
25// clang-format off
29#define FLEX_DIAG_CONF_TABLE_BEGIN() \
30 FLEX_DiagConfTableItem *diag_conf_table_get_(void) { \
31 static FLEX_DiagConfTableItem table[] = {
32
34#define FLEX_DIAG_CONF_TABLE_END() \
35 {0}}; \
36 return table; \
37 }
38// clang-format on
39
46#define FLEX_DIAG_CONF_TABLE_BOOL_ADD(id, name, default_value, type) \
47 { id, FLEX_DIAG_CONF_VALUE_TAG_B8, type, 0, name, (void *)default_value }
48
55#define FLEX_DIAG_CONF_TABLE_FLOAT_ADD(id, name, default_value, type) \
56 { id, FLEX_DIAG_CONF_VALUE_TAG_F32, type, 0, name, (void *)default_value }
57
64#define FLEX_DIAG_CONF_TABLE_I32_ADD(id, name, default_value, type) \
65 { id, FLEX_DIAG_CONF_VALUE_TAG_I32, type, 0, name, (void *)default_value }
66
74#define FLEX_DIAG_CONF_TABLE_STR_ADD(id, name, default_value, max_len, type) \
75 { id, FLEX_DIAG_CONF_VALUE_TAG_STR, type, max_len, name, (void *)default_value }
76
83#define FLEX_DIAG_CONF_TABLE_TIME_ADD(id, name, default_value, type) \
84 { id, FLEX_DIAG_CONF_VALUE_TAG_T32, type, 0, name, (void *)default_value }
85
92#define FLEX_DIAG_CONF_TABLE_U32_ADD(id, name, default_value, type) \
93 { id, FLEX_DIAG_CONF_VALUE_TAG_U32, type, 0, name, (void *)default_value }
94
115
124
127typedef void (*FLEX_DiagConfValueNotifyHandler)(const void *const value);
128
130
131typedef enum {
132 FLEX_DIAG_CONF_VALUE_TAG_B8,
133 FLEX_DIAG_CONF_VALUE_TAG_F32,
134 FLEX_DIAG_CONF_VALUE_TAG_I32,
135 FLEX_DIAG_CONF_VALUE_TAG_T32,
136 FLEX_DIAG_CONF_VALUE_TAG_U32,
137 FLEX_DIAG_CONF_VALUE_TAG_STR,
138} FLEX_DiagConfValueTag;
139
140typedef struct {
141 const uint8_t id;
142 const uint8_t tag;
143 const uint8_t flags;
144 const uint8_t max_len;
145 const char *const name;
146 void *value;
147} FLEX_DiagConfTableItem;
148
150
160int FLEX_DiagConfValueWrite(const FLEX_DiagConfID id, const void *const value);
161
171int FLEX_DiagConfValueRead(const FLEX_DiagConfID id, void *const value);
172
183 const FLEX_DiagConfValueNotifyHandler handler);
184
186
187#endif /* FLEX_DIAG_CONF_H */
void(* FLEX_DiagConfValueNotifyHandler)(const void *const value)
Definition flex_diag_conf.h:127
FLEX_DiagConfID
Diagnostics and Configurations IDs.
Definition flex_diag_conf.h:96
int FLEX_DiagConfValueWrite(const FLEX_DiagConfID id, const void *const value)
int FLEX_DiagConfValueRead(const FLEX_DiagConfID id, void *const value)
int FLEX_DiagConfValueNotifyHandlerSet(const FLEX_DiagConfID id, const FLEX_DiagConfValueNotifyHandler handler)
FLEX_DiagConfType
The type of diagnostic or configuration item.
Definition flex_diag_conf.h:117
@ FLEX_DIAG_CONF_ID_USER_1
Diagnostics or Configuration ID 1.
Definition flex_diag_conf.h:98
@ FLEX_DIAG_CONF_ID_USER_10
Diagnostics or Configuration ID 10.
Definition flex_diag_conf.h:107
@ FLEX_DIAG_CONF_ID_USER_0
Diagnostics or Configuration ID 0.
Definition flex_diag_conf.h:97
@ FLEX_DIAG_CONF_ID_USER_11
Diagnostics or Configuration ID 11.
Definition flex_diag_conf.h:108
@ FLEX_DIAG_CONF_ID_USER_7
Diagnostics or Configuration ID 7.
Definition flex_diag_conf.h:104
@ FLEX_DIAG_CONF_ID_USER_8
Diagnostics or Configuration ID 8.
Definition flex_diag_conf.h:105
@ FLEX_DIAG_CONF_ID_USER_3
Diagnostics or Configuration ID 3.
Definition flex_diag_conf.h:100
@ FLEX_DIAG_CONF_ID_USER_2
Diagnostics or Configuration ID 2.
Definition flex_diag_conf.h:99
@ FLEX_DIAG_CONF_ID_USER_5
Diagnostics or Configuration ID 5.
Definition flex_diag_conf.h:102
@ FLEX_DIAG_CONF_ID_USER_4
Diagnostics or Configuration ID 4.
Definition flex_diag_conf.h:101
@ FLEX_DIAG_CONF_ID_USER_MAX
Diagnostics or Configuration MAX ID.
Definition flex_diag_conf.h:113
@ FLEX_DIAG_CONF_ID_USER_15
Diagnostics or Configuration ID 15.
Definition flex_diag_conf.h:112
@ FLEX_DIAG_CONF_ID_USER_13
Diagnostics or Configuration ID 13.
Definition flex_diag_conf.h:110
@ FLEX_DIAG_CONF_ID_USER_6
Diagnostics or Configuration ID 6.
Definition flex_diag_conf.h:103
@ FLEX_DIAG_CONF_ID_USER_9
Diagnostics or Configuration ID 9.
Definition flex_diag_conf.h:106
@ FLEX_DIAG_CONF_ID_USER_12
Diagnostics or Configuration ID 12.
Definition flex_diag_conf.h:109
@ FLEX_DIAG_CONF_ID_USER_14
Diagnostics or Configuration ID 14.
Definition flex_diag_conf.h:111
@ FLEX_DIAG_CONF_TYPE_CONF
Definition flex_diag_conf.h:118
@ FLEX_DIAG_CONF_TYPE_DIAG
Diagnostic Type - Read only value that is cleared on reset.
Definition flex_diag_conf.h:120
@ FLEX_DIAG_CONF_TYPE_PERSIST_DIAG
Definition flex_diag_conf.h:121