main_ubi_sdk v 0.1.3
This is UBI4 documentation
base_parameter.h
Go to the documentation of this file.
1/*
2 ******************************************************************************
3 * @file base_parameter.h
4 * @author A.Alborov
5 ******************************************************************************
6*/
7
8#ifndef DATA_BASE_PARAMETER_H_
9#define DATA_BASE_PARAMETER_H_
10
11#include "stdint.h"
12#include "stdbool.h"
13
15
16typedef void (*change_notification_callback_t)(void *param, uint8_t *newVal);
17typedef void (*tx_notificaion_callback_t)(void *param);
18typedef void (*pre_read_callback_t)(void *param);
19typedef void (*pre_read_data_transfer_callback_t)(void *param, uint8_t* args, uint16_t size);
20
34
40
42 uint16_t uuid16;
43 uint32_t uuid32;
44 uint8_t uuid128[16];
45} __attribute__((__packed__));
46
47typedef struct {
49 uint8_t uuid_len :2;
50 uint8_t read_per :1;
51 uint8_t write_per :1;
52 uint8_t notify :1;
53
54} __attribute__((__packed__)) param_addinfo_custom_ble_char_struct;
55
62
115
120
125
132
133/*
134 typedef enum {
135 PSDE_MASTER_TO_SLAVE = 0,
136 PSDE_SLAVE_TO_MASTER,
137 PSDE_BIDIRECTIONAL,
138 PSDE_BIDIRECTIONAL_TWO_PARAMETERS
139 }parameter_synchronization_direction_enum;
140 */
141
149
150
156
164
170
175
182typedef struct {
183 uint16_t info_type;
184 uint16_t info_size;
185 uint8_t *info;
186} __attribute__((__packed__))base_parameter_addinfoseg_struct;
187
223
224
225typedef struct {
226 uint8_t read_slot;
227} __attribute__((__packed__)) param_addinfo_read_data_table_struct;
228
229typedef struct {
230 uint16_t ArraySize;
231 uint16_t ItemSize;
232 uint8_t ArrayCRC;
233} __attribute__((__packed__)) StructArrayAddInfo_struct;
234
235typedef struct {
236 uint8_t write_type;
237 uint16_t Index;
238 uint8_t *Data;
239} __attribute__((__packed__)) StructArray_write_item_header_struct;
240
244
245/*
246typedef struct
247{
248
249 uint8_t* parameter_data_p;
250
251 void* related_parameter_p;
252
253 uint8_t* flag_buffer;
254
255 void (*change_notification)(void* param, uint8_t* newVal);
256
257 void* device_owner;
258
259 void** parameters_consumers;
260
261}array_parameter_atribute_struct;
262 */
263
264typedef struct {
265 uint8_t info_type;
267 uint16_t info_size;
268 void *info;
269} __attribute__((__packed__))dependence_info_struct;
270
271typedef struct {
274 uint8_t reserv: 6;
275
277
348
358
359
365
371
372
379
380
381
382typedef struct {
383 uint8_t Address;
384 uint8_t Command;
386
387
388
402
403
404
405void init_parameter_manager(parameter_manager_struct **param_manager, base_parameter_struct *parameters, uint8_t param_num);
406void parameter_write_data(parameter_manager_struct *param_manager, uint8_t data_code, uint8_t instance, void *data);
408void parameter_write_data_info(parameter_manager_struct *param_manager, base_parameter_info_struct *param_info, void *data);
409
411
413
414void parameter_write_master_to_slave_data_transfer(base_parameter_struct* param, uint8_t* Data, uint16_t size);
415
416void create_parameter_consumer_array(base_parameter_pointers_struct *param_pointers, uint8_t size);
417
419
420bool parameter_add_dependence(base_parameter_pointers_struct *param_pointers, uint8_t type, uint8_t instance, void* dependence_pointer, uint32_t dependence_size);
421
422
423//void parameter_write_data(base_parameter_struct* param, void* val, uint32_t size);
424//void* parameter_get_data_pointer(base_parameter_struct* param);
425
427
428
429
430#endif /* DATA_BASE_PARAMETER_H_ */
void(* tx_notificaion_callback_t)(void *param)
Definition base_parameter.h:17
ble_uuid_len_enum
Definition base_parameter.h:35
@ BULE_LEN_16
Definition base_parameter.h:36
@ BULE_LEN_32
Definition base_parameter.h:37
@ BULE_LEN_128
Definition base_parameter.h:38
parameter_addinfo_type_enum
Definition base_parameter.h:22
@ PAITE_ADD_PARAM_TO_WIDGET
Definition base_parameter.h:31
@ PAITE_WIDGET
Definition base_parameter.h:28
@ PAITE_BLE_CUSTOM_CHAR_STRUCT_ARRAY_ITEM
Definition base_parameter.h:26
@ PAITE_VALUE_LIMIT_MIN_MAX
Definition base_parameter.h:29
@ PAITE_UNKNOW
Definition base_parameter.h:23
@ PAITE_READ_DATA_TABLE_SLOT
Definition base_parameter.h:30
@ PAITE_BLE_AUTO_CHAR
Definition base_parameter.h:25
@ PAITE_BLE_CUSTOM_CHAR
Definition base_parameter.h:24
@ PAITE_BLE_AUTO_CHAR_STRUCT_ARRAY_ITEM
Definition base_parameter.h:27
void(* pre_read_callback_t)(void *param)
Definition base_parameter.h:18
void(* pre_read_data_transfer_callback_t)(void *param, uint8_t *args, uint16_t size)
Definition base_parameter.h:19
void(* change_notification_callback_t)(void *param, uint8_t *newVal)
Definition base_parameter.h:16
void parameter_write_data_info(parameter_manager_struct *param_manager, base_parameter_info_struct *param_info, void *data)
Definition base_parameter.c:332
parameter_limite_type_enum
Definition base_parameter.h:157
void parameter_write_data(parameter_manager_struct *param_manager, uint8_t data_code, uint8_t instance, void *data)
Definition base_parameter.c:40
parameter_synchronization_direction_enum
Definition base_parameter.h:126
void parameter_write_master_to_slave_simple(base_parameter_struct *param, uint8_t *Data)
Definition base_parameter.c:167
parameter_request_optimisation_enum
Режим стрима параметра
Definition base_parameter.h:166
parameter_link_type_enum
Definition base_parameter.h:151
parameter_dependence_type_enum
Definition base_parameter.h:116
parameter_enable_external_stream_enum
Definition base_parameter.h:171
bool parameter_add_dependence(base_parameter_pointers_struct *param_pointers, uint8_t type, uint8_t instance, void *dependence_pointer, uint32_t dependence_size)
Definition base_parameter.c:282
parameter_type_enum
Тип передаваемого параметра. Содержится в base_parameter_info_struct.type.
Definition base_parameter.h:66
parameter_save_setting_enum
Definition base_parameter.h:121
void parameter_write_master_to_slave_struct_array(base_parameter_struct *param, uint8_t *Data)
Definition base_parameter.c:191
void init_parameter_manager(parameter_manager_struct **param_manager, base_parameter_struct *parameters, uint8_t param_num)
Definition base_parameter.c:20
void parameter_write_data_obj(parameter_manager_struct *param_manager, base_parameter_struct *param, uint8_t *data)
void create_parameter_consumer_array(base_parameter_pointers_struct *param_pointers, uint8_t size)
Definition base_parameter.c:207
void parameter_add_consumer(base_parameter_pointers_struct *source_param_pointers, base_parameter_struct param)
Definition base_parameter.c:245
void parameter_write_master_to_slave_data_transfer(base_parameter_struct *param, uint8_t *Data, uint16_t size)
Definition base_parameter.c:179
StructArray_write_command_enum
Definition base_parameter.h:241
parameter_synchronization_type_enum
Definition base_parameter.h:142
@ PLTE_LIMIT_NUM
Definition base_parameter.h:162
@ PLTE_LIMIT_CUSTOM
Definition base_parameter.h:160
@ PLTE_LIMIT_NO_LIMIT
Definition base_parameter.h:158
@ PLTE_LIMIT_100
Definition base_parameter.h:161
@ PLTE_LIMIT_BY_TYPE
Definition base_parameter.h:159
@ PSDE_SLAVE_TO_MASTER
Definition base_parameter.h:128
@ PSDE_BIDIRECTIONAL_TWO_PARAMETERS
Definition base_parameter.h:130
@ PSDE_BIDIRECTIONAL
Definition base_parameter.h:129
@ PSDE_MASTER_TO_SLAVE
Definition base_parameter.h:127
@ PROE_REGULAR_STREAM
Definition base_parameter.h:167
@ PROE_ACTIVATED_STREAM
Definition base_parameter.h:168
@ PLTE_NO_LINK
Definition base_parameter.h:154
@ PLTE_AUTO
Definition base_parameter.h:152
@ PLTE_DYNAMIC
Definition base_parameter.h:153
@ PDTE_EXTERNAL_DEVICE_PARAMETER_STREAM
Definition base_parameter.h:118
@ PDTE_UNKNOW
Definition base_parameter.h:117
@ PEESE_DEFAULT_STREAM_MODE
Definition base_parameter.h:172
@ PEESE_ACTIVATED_STREAM
Definition base_parameter.h:173
@ PARTE_UINT32_MAP_TYPE
Definition base_parameter.h:88
@ PARTE_UINT8_MAP_TYPE
Definition base_parameter.h:96
@ PARTE_UINT8_ARRAY_TYPE
Definition base_parameter.h:95
@ PARTE_FIX_DATA_TRANSFER_TYPE
Definition base_parameter.h:111
@ PARTE_UINT32_ARRAY_TYPE
Definition base_parameter.h:87
@ PARTE_UINT8_TYPE
Definition base_parameter.h:94
@ PARTE_BOOL_MAP_TYPE
Definition base_parameter.h:70
@ PARTE_INT8_ARRAY_TYPE
Definition base_parameter.h:82
@ PARTE_VAR_LEN_CHAR_TYPE
Definition base_parameter.h:109
@ PARTE_UINT16_ARRAY_TYPE
Definition base_parameter.h:91
@ PARTE_BOOL_TYPE
Definition base_parameter.h:68
@ PARTE_INT32_MAP_TYPE
Definition base_parameter.h:75
@ PARTE_STRUCT_TYPE
Definition base_parameter.h:104
@ PARTE_FLOAT_ARRAY_TYPE
Definition base_parameter.h:100
@ PARTE_UINT16_TYPE
Definition base_parameter.h:90
@ PARTE_FLOAT_MAP_TYPE
Definition base_parameter.h:101
@ PARTE_STRUCT_ARRAY_TYPE
Definition base_parameter.h:105
@ PARTE_INT8_TYPE
Definition base_parameter.h:81
@ PARTE_UINT32_TYPE
Definition base_parameter.h:86
@ PARTE_INT16_ARRAY_TYPE
Definition base_parameter.h:78
@ PARTE_FLOAT_TYPE
Definition base_parameter.h:99
@ PARTE_NUM
Definition base_parameter.h:113
@ PARTE_INT32_ARRAY_TYPE
Definition base_parameter.h:74
@ PARTE_UNKNOW
Definition base_parameter.h:67
@ PARTE_BOOL_ARRAY_TYPE
Definition base_parameter.h:69
@ PARTE_STRUCT_MAP_TYPE
Definition base_parameter.h:106
@ PARTE_INT8_MAP_TYPE
Definition base_parameter.h:83
@ PARTE_INT16_MAP_TYPE
Definition base_parameter.h:79
@ PARTE_UINT16_MAP_TYPE
Definition base_parameter.h:92
@ PARTE_FIX_LEN_CHAR_TYPE
Definition base_parameter.h:108
@ PARTE_INT16_TYPE
Definition base_parameter.h:77
@ PARTE_INT32_TYPE
Definition base_parameter.h:73
@ PSSE_SAVE
Definition base_parameter.h:123
@ PSSE_DONT_SAVE
Definition base_parameter.h:122
@ SAWCE_ITEM_WRITE
Definition base_parameter.h:242
@ SAWCE_ERROR
Definition base_parameter.h:242
@ PSTE_WRITE_ONLY
Definition base_parameter.h:144
@ PSTE_READ_WRITE
Definition base_parameter.h:147
@ PSTE_NOTIFICATION
Definition base_parameter.h:146
@ PSTE_READ_ONLY
Definition base_parameter.h:143
@ PSTE_STREAMING
Definition base_parameter.h:145
Definition base_parameter.h:235
uint8_t write_type
Definition base_parameter.h:236
uint8_t * Data
Definition base_parameter.h:238
uint16_t Index
Definition base_parameter.h:237
Definition base_parameter.h:229
uint16_t ArraySize
Definition base_parameter.h:230
uint16_t ItemSize
Definition base_parameter.h:231
uint8_t ArrayCRC
Definition base_parameter.h:232
Верхнеуровневая структура addinfo (в основном виджета, но не только)
Definition base_parameter.h:182
uint16_t info_size
Definition base_parameter.h:184
uint8_t * info
Definition base_parameter.h:185
uint16_t info_type
Definition base_parameter.h:183
Дочерняя структура base_parameter_struct, содержит информацию о параметре
Definition base_parameter.h:191
uint8_t main_consumer
Definition base_parameter.h:216
parameter_request_optimisation_enum optimisation_transfer
Definition base_parameter.h:200
uint16_t parameter_size
Definition base_parameter.h:196
uint8_t init_write
Definition base_parameter.h:208
parameter_synchronization_type_enum synch_type
Definition base_parameter.h:209
parameter_save_setting_enum save_in_slave
Definition base_parameter.h:215
parameter_save_setting_enum save_in_master
Definition base_parameter.h:214
uint8_t additional_info_size
Definition base_parameter.h:218
uint8_t related_parameter_ID
Definition base_parameter.h:219
uint8_t DataCode
Definition base_parameter.h:194
parameter_type_enum type
Definition base_parameter.h:213
parameter_limite_type_enum value_limit
Definition base_parameter.h:206
parameter_synchronization_direction_enum synch_direction
Definition base_parameter.h:210
uint8_t synch_period
Definition base_parameter.h:211
uint8_t flag_shift
Definition base_parameter.h:199
uint8_t DataInstance
Definition base_parameter.h:195
uint8_t related_DataCode
Definition base_parameter.h:220
uint8_t BroadcastID
Definition base_parameter.h:193
uint8_t init_read
Definition base_parameter.h:207
parameter_link_type_enum link_type
Definition base_parameter.h:217
uint8_t optimisation_stream
Definition base_parameter.h:203
uint8_t ID
Definition base_parameter.h:192
uint8_t enable_external_stream
Definition base_parameter.h:204
Дочерняя структура base_parameter_struct, содержит указатели и колбеки
Definition base_parameter.h:329
struct parameter_consumer_array_struct * parameters_consumers
Definition base_parameter.h:341
uint8_t enable_transfer
Definition base_parameter.h:338
uint8_t * flag_buffer
Definition base_parameter.h:331
uint8_t * parameter_data_p
Definition base_parameter.h:330
enable_function_struct enable_function
Definition base_parameter.h:339
struct dependence_info_array_struct * dependence_info
Definition base_parameter.h:342
void * related_parameter_p
Definition base_parameter.h:334
void * device_owner
Definition base_parameter.h:333
void * source_parameter
Definition base_parameter.h:335
change_notification_callback_t change_notification
Definition base_parameter.h:344
tx_notificaion_callback_t tx_notification
Definition base_parameter.h:345
base_parameter_addinfoseg_struct * add_info_segments
Definition base_parameter.h:337
pre_read_callback_t pre_read_callback
Definition base_parameter.h:346
Верхнеуровневая струткура декларации параметра
Definition base_parameter.h:354
base_parameter_info_struct * info
Definition base_parameter.h:355
base_parameter_pointers_struct * pointers
Definition base_parameter.h:356
Definition base_parameter.h:366
uint8_t counter
Definition base_parameter.h:368
uint8_t size
Definition base_parameter.h:367
dependence_info_struct * array
Definition base_parameter.h:369
Definition base_parameter.h:264
uint8_t info_instance
Definition base_parameter.h:266
uint8_t info_type
Definition base_parameter.h:265
uint16_t info_size
Definition base_parameter.h:267
void * info
Definition base_parameter.h:268
Definition base_parameter.h:271
uint8_t update_external_source_param
Definition base_parameter.h:273
uint8_t reserv
Definition base_parameter.h:274
uint8_t smart_parameter_write
Definition base_parameter.h:272
Definition base_parameter.h:390
void * protocol
Definition base_parameter.h:400
uint8_t filter_array_counter
Definition base_parameter.h:398
void(* external_stream_add_param_callback)(base_parameter_struct *param, void *object)
Definition base_parameter.h:391
base_parameter_struct ** param_array
Definition base_parameter.h:392
uint16_t array_counter
Definition base_parameter.h:394
uint8_t filter_array_size
Definition base_parameter.h:397
parameter_stream_filter_struct * filter_array
Definition base_parameter.h:396
uint16_t array_size
Definition base_parameter.h:393
Definition base_parameter.h:47
union u_ble_uuid uuid
Definition base_parameter.h:48
uint8_t write_per
Definition base_parameter.h:51
uint8_t uuid_len
Definition base_parameter.h:49
uint8_t notify
Definition base_parameter.h:52
uint8_t read_per
Definition base_parameter.h:50
Definition base_parameter.h:225
uint8_t read_slot
Definition base_parameter.h:226
Definition base_parameter.h:360
uint8_t counter
Definition base_parameter.h:362
base_parameter_struct * array
Definition base_parameter.h:363
uint8_t size
Definition base_parameter.h:361
Definition base_parameter.h:373
base_parameter_struct * parameters
Definition base_parameter.h:375
static_conteiner_struct * change_parameter_conteiner
Definition base_parameter.h:374
uint8_t param_num
Definition base_parameter.h:376
void(* change_parameter_callback)(base_parameter_struct parameter, uint8_t newVal, uint16_t size)
Definition base_parameter.h:377
Definition base_parameter.h:382
uint8_t Command
Definition base_parameter.h:384
uint8_t Address
Definition base_parameter.h:383
Definition static_conteiner.h:26
Definition base_parameter.h:41
uint8_t uuid128[16]
Definition base_parameter.h:44
uint16_t uuid16
Definition base_parameter.h:42
uint32_t uuid32
Definition base_parameter.h:43