diff options
| author | kutayboz <kutayboz@gmail.com> | 2023-08-01 04:59:34 +0300 |
|---|---|---|
| committer | kutayboz <kutayboz@gmail.com> | 2023-08-01 04:59:34 +0300 |
| commit | ac5fcc1e3a873e61dba138e5b632479141433614 (patch) | |
| tree | 7dde6438be4ad95ba924d14b82c63b874221f82c /src/main.c | |
| parent | a29985e3dc53f832511ef7eadb0bcb64afd8520d (diff) | |
| download | celnetmon-ac5fcc1e3a873e61dba138e5b632479141433614.tar.gz | |
Primitive config file implementation
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 66 |
1 files changed, 42 insertions, 24 deletions
@@ -5,100 +5,115 @@ #include <unistd.h> #include "bg96.h" +#include "utils.h" -#define PATH_TO_SERIAL_PORT "/dev/serial0" -#define PATH_TO_GPIO_CHIP "/dev/gpiochip0" -#define PIN_NUM_PWR_KEY 17 -#define PIN_NUM_STATUS 27 +struct structCfg dataCfg = {NULL, NULL, -1, -1}; int main(int argc, char **argv) { if (argc == 1) { - printf("No arguments provided\n"); + printf("No arguments provided.\n"); return 1; } - else if (0 == strcmp(argv[1], "--initpublic")) { + if (readCfg(&dataCfg, argv[0]) != 0) { + printf("Error reading the config file.\n"); + return 1; + } + + if (0 == strcmp(argv[1], "--initpublic")) { printf("Powering on\n"); - if (0 != powerOn(PATH_TO_SERIAL_PORT, PATH_TO_GPIO_CHIP, PIN_NUM_STATUS, - PIN_NUM_PWR_KEY)) { + if (0 != powerOn(dataCfg.pathSerialPort, dataCfg.pathGpioChip, + dataCfg.pinStatus, dataCfg.pinPwrKey)) { printf("Error powering the module on\n"); + freeCfgData(&dataCfg); return 1; } printf("Initiating GNSS\n"); - if (0 != initGNSS(PATH_TO_SERIAL_PORT)) { + if (0 != initGNSS(dataCfg.pathSerialPort)) { printf("Error initiating GNSS\n"); + freeCfgData(&dataCfg); return 1; } printf("Configuring the network settings for DNA public network\n"); - if (0 != cfgPublicNetwork(PATH_TO_SERIAL_PORT)) { + if (0 != cfgPublicNetwork(dataCfg.pathSerialPort)) { printf("Error setting public network configuration\n"); + freeCfgData(&dataCfg); return 1; } printf("Waiting for establishing network connection\n"); - if (0 != waitForNetwork(PATH_TO_SERIAL_PORT, 120)) { + if (0 != waitForNetwork(dataCfg.pathSerialPort, 120)) { printf("Error while waiting for network\n"); + freeCfgData(&dataCfg); return 1; } printf("Initialization complete\n"); + freeCfgData(&dataCfg); return 0; } else if (0 == strcmp(argv[1], "--init6GTN")) { printf("Powering on\n"); - if (0 != powerOn(PATH_TO_SERIAL_PORT, PATH_TO_GPIO_CHIP, PIN_NUM_STATUS, - PIN_NUM_PWR_KEY)) { + if (0 != powerOn(dataCfg.pathSerialPort, dataCfg.pathGpioChip, + dataCfg.pinStatus, dataCfg.pinPwrKey)) { printf("Error powering the module on\n"); + freeCfgData(&dataCfg); return 1; } printf("Initiating GNSS\n"); - if (0 != initGNSS(PATH_TO_SERIAL_PORT)) { + if (0 != initGNSS(dataCfg.pathSerialPort)) { printf("Error initiating GNSS\n"); + freeCfgData(&dataCfg); return 1; } printf("Configuring the network settings for 6GTN\n"); - if (0 != cfg6GTN(PATH_TO_SERIAL_PORT)) { + if (0 != cfg6GTN(dataCfg.pathSerialPort)) { printf("Error setting 6GTN network configuration\n"); + freeCfgData(&dataCfg); return 1; } printf("Waiting for establishing network connection\n"); - if (0 != connect6GTN(PATH_TO_SERIAL_PORT, 120)) { + if (0 != connect6GTN(dataCfg.pathSerialPort, 120)) { printf("Error while connecting to 6GTN\n"); + freeCfgData(&dataCfg); return 1; } printf("Initialization complete\n"); + freeCfgData(&dataCfg); return 0; } else if (0 == strcmp(argv[1], "--stop")) { printf("Stopping GNSS\n"); - if (0 != stopGNSS(PATH_TO_SERIAL_PORT)) { + if (0 != stopGNSS(dataCfg.pathSerialPort)) { printf("Error stopping GNSS\n"); } printf("Disconnecting MQTT\n"); - if (0 != mqttDisc(PATH_TO_SERIAL_PORT)) { + if (0 != mqttDisc(dataCfg.pathSerialPort)) { printf("Could not disconnect MQTT\n"); } printf("Powering off\n"); - if (0 != powerOff(PATH_TO_SERIAL_PORT, PATH_TO_GPIO_CHIP, PIN_NUM_STATUS, - PIN_NUM_PWR_KEY)) { + if (0 != powerOff(dataCfg.pathSerialPort, dataCfg.pathGpioChip, + dataCfg.pinStatus, dataCfg.pinPwrKey)) { printf("Error powering the module off\n"); + freeCfgData(&dataCfg); return 1; } printf("Power off complete\n"); + freeCfgData(&dataCfg); return 0; } @@ -107,26 +122,26 @@ int main(int argc, char **argv) { printf("Obtaining network info\n"); initNetworkData(nD); - if (gatherData(nD, PATH_TO_SERIAL_PORT) != 0) { + if (gatherData(nD, dataCfg.pathSerialPort) != 0) { printf("Failed to gather network info\n"); goto netinfopubFail; } printf("Connecting to the MQTT broker\n"); - if (0 != mqttConn(PATH_TO_SERIAL_PORT, "io.adafruit.com", 8883, "kboz", + if (0 != mqttConn(dataCfg.pathSerialPort, "io.adafruit.com", 8883, "kboz", "aio_lvhz87FJ0rIlidH8g30V5mQ7FK7s")) { printf("Error connecting MQTT\n"); goto netinfopubFail; } printf("Publishing network information\n"); - if (0 != mqttPubNetData(PATH_TO_SERIAL_PORT, *nD)) { + if (0 != mqttPubNetData(dataCfg.pathSerialPort, *nD)) { printf("Error publishing to MQTT server\n"); goto netinfopubFail; } printf("Disconnecting from the MQTT broker\n"); - if (0 != mqttDisc(PATH_TO_SERIAL_PORT)) { + if (0 != mqttDisc(dataCfg.pathSerialPort)) { printf("Could not disconnect MQTT\n"); goto netinfopubFail; } @@ -134,16 +149,19 @@ int main(int argc, char **argv) { printf("Network info publish complete\n"); freeNetworkData(nD); free(nD); + freeCfgData(&dataCfg); return 0; netinfopubFail: freeNetworkData(nD); free(nD); + freeCfgData(&dataCfg); return 1; } else { printf("Unknown arguments\n"); + freeCfgData(&dataCfg); return 1; } } |
