X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Fcontrol.c;h=4da1f7507718de6c90e7517efa1b9542a06a6f10;hb=108a72d8b153864beb2079d54f36dfcaaad7aedf;hp=12e340a649def53f63dac46432b40e292f7d6119;hpb=a668061144aa18eb3f127d1b17518fd6ec0cce73;p=matches%2FMCTX3420.git diff --git a/server/control.c b/server/control.c index 12e340a..4da1f75 100644 --- a/server/control.c +++ b/server/control.c @@ -1,14 +1,22 @@ +/** + * @file control.c + * @brief Handles all client control requests (admin/actuator related) + */ #include "common.h" #include "control.h" +const char * g_actuator_names[NUMACTUATORS] = { + "Pressure regulator", "Solenoid 1" +}; + /** * Handles control of the actuators. */ -void ActuatorHandler(FCGIContext *context, int id, const char *set_value) { +void ActuatorHandler(FCGIContext *context, ActuatorId id, const char *set_value) { char *ptr; switch(id) { //Add new actuators here - case ACT_PREG: //Suppose is pressure regulator. 0-700 input (kPa) + case ACT_PRESSURE: //Suppose is pressure regulator. 0-700 input (kPa) { int value = strtol(set_value, &ptr, 10); if (*ptr == '\0' && value >= 0 && value <= 700) { @@ -33,7 +41,7 @@ void ActuatorHandler(FCGIContext *context, int id, const char *set_value) { FCGI_JSONValue("\"Solenoid 1 turned %s!\"", state); FCGI_EndJSON(); } else { - FCGI_RejectJSON(context); + FCGI_RejectJSON(context, "Invalid actuator value specified"); } } break; default: @@ -53,7 +61,7 @@ void Control_Handler(FCGIContext *context, char *params) { const char *action = NULL, *set_value = NULL; bool force = false; char *ptr; - int id = ACT_NONE; + int id = -1; while ((params = FCGI_KeyPair(params, &key, &value))) { if (!strcmp(key, "action")) @@ -73,7 +81,7 @@ void Control_Handler(FCGIContext *context, char *params) { } if (action == NULL) { //Must have an action - FCGI_RejectJSON(context); + FCGI_RejectJSON(context, "No action specified"); } else if (!strcmp(action, "start")) { FCGI_BeginControl(context, force); } else if (!strcmp(action, "stop")) { //Don't require control key to stop...