X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Fmain.c;h=c032eb10739f046fdf4489fdd77a9acd41fb8739;hb=5d57467589ecefdf5bb5985005705a1c8460c623;hp=ec21a25e8c1af0581fe987420fa8476588cd2f76;hpb=519940987ceb9e379c91645daba84dc87680ffb8;p=matches%2FMCTX3420.git diff --git a/server/main.c b/server/main.c index ec21a25..c032eb1 100644 --- a/server/main.c +++ b/server/main.c @@ -1,14 +1,17 @@ /** * @file main.c - * @purpose main and its helper functions, signal handling and cleanup functions + * @brief main and its helper functions, signal handling and cleanup functions */ // --- Custom headers --- // #include "common.h" #include "options.h" #include "sensor.h" +#include "actuator.h" +#include "control.h" // --- Standard headers --- // +#include // for system logging #include // for signal handling // --- Variable definitions --- // @@ -41,7 +44,7 @@ void SignalHandler(int signal) // At the moment just always exit. // Call `exit` so that Cleanup will be called to... clean up. Log(LOGWARN, "Got signal %d (%s). Exiting.", signal, strsignal(signal)); - Thread_QuitProgram(false); + //exit(signal); } @@ -66,6 +69,9 @@ int main(int argc, char ** argv) { ParseArguments(argc, argv); + //Open the system log + openlog("mctxserv", LOG_PID | LOG_PERROR, LOG_USER); + Log(LOGINFO, "Server started"); // signal handler //TODO: Make this work /* @@ -75,15 +81,22 @@ int main(int argc, char ** argv) signal(signals[i], SignalHandler); } */ - Sensor_Spawn(); + Sensor_Init(); + Actuator_Init(); + //Sensor_StartAll("test"); + //Actuator_StartAll("test"); + const char *ret; + if ((ret = Control_SetMode(CONTROL_START, "test")) != NULL) + Fatal("Control_SetMode failed with '%s'", ret); // run request thread in the main thread FCGI_RequestLoop(NULL); - // Join the dark side, Luke - // *cough* - // Join the sensor threads - Sensor_Join(); + if ((ret = Control_SetMode(CONTROL_STOP, "test")) != NULL) + Fatal("Control_SetMode failed with '%s'", ret); + //Sensor_StopAll(); + //Actuator_StopAll(); + Cleanup(); return 0; }