summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorkutayboz <kutayboz@gmail.com>2023-08-01 04:59:34 +0300
committerkutayboz <kutayboz@gmail.com>2023-08-01 04:59:34 +0300
commitac5fcc1e3a873e61dba138e5b632479141433614 (patch)
tree7dde6438be4ad95ba924d14b82c63b874221f82c /src/main.c
parenta29985e3dc53f832511ef7eadb0bcb64afd8520d (diff)
downloadcelnetmon-ac5fcc1e3a873e61dba138e5b632479141433614.tar.gz
Primitive config file implementation
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c66
1 files changed, 42 insertions, 24 deletions
diff --git a/src/main.c b/src/main.c
index dbe85d4..13b0b3f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;
}
}