summaryrefslogtreecommitdiff
path: root/include/utils.h
blob: 2a32a5469e69a4697da3303fbe2aa0e26beeb2da (plain)
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