This repository was archived by the owner on Apr 28, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathread_conf_file.h
More file actions
executable file
·74 lines (58 loc) · 1.92 KB
/
read_conf_file.h
File metadata and controls
executable file
·74 lines (58 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#ifndef _READ_CONF_FILE_H_
#define _READ_CONF_FILE_H_
/****************************************************************
* Includes
****************************************************************/
#include <stdbool.h>
/****************************************************************
* Defines
****************************************************************/
#define MAX_NUM_GPIO 32
#define MAX_SIMULTANEOUS_GPIO 12
#define MAX_LENGTH_STR_PINS 48
#define MAX_LENGTH_STR_TYPE 16
#define MAX_LENGTH_STR_VALUE 256
#define MAX_LENGTH_STR_HELP_PIN_NAME 48
#define MAX_LENGTH_STR_HELP_PIN_FCT 256
#define MAX_LN_LENGTH (MAX_LENGTH_STR_PINS+\
MAX_LENGTH_STR_TYPE+\
MAX_LENGTH_STR_VALUE+\
MAX_LENGTH_STR_HELP_PIN_NAME+\
MAX_LENGTH_STR_HELP_PIN_FCT)
typedef enum{
TYPE_MAPPING_KEYBOARD,
TYPE_MAPPING_SHELL_COMMAND,
NB_TYPE_MAPPING,
} ENUM_TYPE_MAPPING;
typedef enum{
MAPPING_ARG_PINS = 0,
MAPPING_ARG_TYPE,
MAPPING_ARG_VALUE,
MAPPING_ARG_STR_HELP_PIN_NAME,
MAPPING_ARG_STR_HELP_PIN_FCT,
NB_MAPPING_ARG_NAMES,
} ENUM_MAPPING_ARGS_NAMES;
typedef struct{
char name[32];
int code;
}key_names_s;
typedef struct gpio_mapping_s{
int pins_idx[MAX_SIMULTANEOUS_GPIO];
int nb_simultaneous_pins;
ENUM_TYPE_MAPPING type_mapping;
int key_value;
char *shell_command;
char *pin_help_str;
char *fct_help_str;
struct gpio_mapping_s * next_mapped_gpio;
bool activated;
}STRUCT_MAPPED_GPIO;
/****************************************************************
* Public functions
****************************************************************/
void get_mapping_from_conf_file(STRUCT_MAPPED_GPIO ** chained_list_mapping,
int* nb_valid_gpios, int ** valid_gpio_pins, bool ** gpio_pins_active_high);
void print_all_chained_list(STRUCT_MAPPED_GPIO * head);
void print_chained_list_node(STRUCT_MAPPED_GPIO * node);
void print_gpios(int * valid_gpio_pins, int nb_valid_gpios);
#endif //_READ_CONF_FILE_H_