diff options
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -1,6 +1,8 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <time.h> +#include <unistd.h> #include <gpio.h> #include <serial.h> @@ -8,7 +10,7 @@ int main() { char *commandList[] = {"AT", "ATI", "AT+COPS?", "AT+COPS=?"}, - serialFilePath[] = "/dev/serial0", *output = malloc(1); + serialFilePath[] = "/dev/serial0", *output; int serialPort, moduleStatus; unsigned long idx; @@ -17,14 +19,11 @@ int main() { moduleStatus = checkPinVal(27); if (0 > moduleStatus) { printf("Error checkPinVal()\n"); - close(serialPort); - free(output); return 1; } else if (moduleStatus == 0) { printf("Module is off\nPowering on\n"); if (0 != modemPowerToggle(17)) { printf("Error toggling modem power\n"); - free(output); return 1; } pwrKeyTime = time(NULL); @@ -32,7 +31,6 @@ int main() { sleep(1); if (time(NULL) - pwrKeyTime > 10) { printf("Modem power on takes longer than 10s\nAborting\n"); - free(output); return 1; } } @@ -41,10 +39,10 @@ int main() { serialPort = openSerialPort(serialFilePath); if (serialPort < 0) { printf("Error openSerialPort()\n"); - free(output); return 1; } + output = malloc(1); for (idx = 0; idx < sizeof(commandList) / sizeof(*commandList); idx++) { if (0 != querySerialPort(&output, serialPort, commandList[idx])) { printf("Error querySerialPort()\n"); |
