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
|
#ifndef __INCLUDE_UTILS__
#define __INCLUDE_UTILS__
enum {
/* Mandatory */
PATH_TO_SERIAL_PORT_POS,
PATH_TO_GPIO_CHIP_POS,
MQTT_URL_POS,
NETWORK_APN_POS,
/* Optional */
MQTT_USERNAME_POS,
MQTT_PASSWORD_POS,
MQTT_ROOT_TOPIC_POS,
NETWORK_USERNAME_POS,
NETWORK_PASSWORD_POS,
NETWORK_AUTH_POS,
STR_LIST_LENGTH
};
enum { /*Mandatory */
PIN_PWR_KEY_POS,
PIN_STATUS_POS,
MQTT_PORT_POS,
/* Optional */
NETWORK_OPERATOR_POS,
INT_LIST_LENGTH
};
typedef struct {
char *name;
char *value;
} strData;
typedef struct {
char *name;
int value;
} intData;
/* Initialize this with NULL and 0 values. */
typedef struct {
strData *strDataList;
intData *intDataList;
} listCfgData;
int checkPinVal(char *pathToChip, int pinNum);
/* Example config file:
path_to_serial_port = "/dev/serial0"
path_to_gpio_chip = "/dev/gpiochip0"
pin_pwr_key = "17"
pin_status = "27"
Below are optional:
network_username = "something something"
network_password = "something something"
network_auth = "something something"
*/
int readCfg(listCfgData *cfgData, const char *pathExe);
int freeCfgData(listCfgData *cfgData);
#endif
|