X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=server%2Fcontrol.c;h=4da1f7507718de6c90e7517efa1b9542a06a6f10;hb=a0c96fa8feb1938db84d95b14c320e6c7511c282;hp=12e340a649def53f63dac46432b40e292f7d6119;hpb=075b45a5a7c8bb6262521cd66900c9851e633743;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...