Initial move to common config code directory
[tpg/opendispense2.git] / src / server / main.c
index b8fe7e1..c8be473 100644 (file)
@@ -9,6 +9,7 @@
  */
 #include <stdlib.h>
 #include <stdio.h>
+#include <stdbool.h>
 #include <string.h>
 #include <signal.h>
 #include "common.h"
@@ -20,6 +21,7 @@
 #include <syslog.h>
 #include <pthread.h>
 #include "../cokebank.h"
+#include "../common/config.h"
 
 // === IMPORTS ===
 extern void    Init_Handlers(void);
@@ -30,6 +32,7 @@ extern int    giServer_Port;
 extern const char      *gsItemListFile;
 extern const char      *gsCoke_ModbusAddress;
 extern const char      *gsDoor_SerialPort;
+extern bool    gbSyslogEnabled;
 
 // === PROTOTYPES ===
 void   *Periodic_Thread(void *Unused);
@@ -54,6 +57,8 @@ void sigint_handler()
 void PrintUsage(const char *progname)
 {
        fprintf(stderr, "Usage: %s\n", progname);
+       fprintf(stderr, "  -f,--configfile\n");
+       fprintf(stderr, "        Set the config file path (default `dispsrv.conf')\n");
        fprintf(stderr, "  -d    Set debug level (0 - 2, default 0)\n");
        fprintf(stderr, "  --[dont-]daemonise\n");
        fprintf(stderr, "        Run (or explicitly don't run) the server disconnected from the terminal\n");
@@ -83,6 +88,7 @@ int main(int argc, char *argv[])
                                break;
                        default:
                                // Usage Error
+                               fprintf(stderr, "Unknown option '-%c'\n", arg[1]);
                                PrintUsage(argv[0]);
                                return -1;
                        }
@@ -101,6 +107,7 @@ int main(int argc, char *argv[])
                        }
                        else {
                                // Usage error
+                               fprintf(stderr, "Unknown option '%s'\n", arg);
                                PrintUsage(argv[0]);
                                return -1;
                        }
@@ -124,6 +131,7 @@ int main(int argc, char *argv[])
        gsItemListFile       = Config_GetValue("items_file", 0);
 
        gbNoCostMode         = (Config_GetValue_Bool("test_mode", 0) == 1);
+       gbSyslogEnabled      = (Config_GetValue_Bool("disable_syslog", 0) == 0);
 
        signal(SIGINT, sigint_handler);
        signal(SIGTERM, sigint_handler);
@@ -226,7 +234,10 @@ int InitSerial(const char *File, int BaudRate)
        {
        case 1200:      baud = B1200;   break;
        case 9600:      baud = B9600;   break;
-       default:        close(fd);      return -1;
+       case 115200:    baud = B115200; break;
+       default:
+               fprintf(stderr, "ERROR: Invalid baud rate to InitSerial (%i)\n", BaudRate);
+               exit(1);
        }
        
        info.c_lflag = 0;       // Non-Canoical, No Echo

UCC git Repository :: git.ucc.asn.au