X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Fpin_test.c;h=77c0ef9a32064428e047e9368635581c2ffe6547;hb=15a32ab1123375e1a52c319fca71ab8d02c58261;hp=90ae6261be2d49ddaf902de88f9cf6f568203595;hpb=25ecb8cc15ad229de75d7bda20d7d36003544b77;p=matches%2FMCTX3420.git diff --git a/server/pin_test.c b/server/pin_test.c index 90ae626..77c0ef9 100644 --- a/server/pin_test.c +++ b/server/pin_test.c @@ -1,6 +1,6 @@ /** * @file pin_test.c - * @purpose Implementations to allow direct control over pins through FastCGI + * @brief Implementations to allow direct control over pins through FastCGI */ #include "pin_test.h" @@ -27,7 +27,7 @@ void Pin_Close() ADC_Unexport(i); for (int i = 0; i < PWM_NUM_PINS; ++i) - PWM_Unexport(g_pin_safe_pwm[i]); + PWM_Unexport(i); } bool Pin_Configure(const char *type, int pin_export, int num) @@ -36,9 +36,8 @@ bool Pin_Configure(const char *type, int pin_export, int num) if (strcmp(type, "gpo") == 0 || strcmp(type, "gpi") == 0) { - if (pin_export < 0) - GPIO_Unexport(num); - else + //Don't allow unexport of gpio + if (pin_export > 0) ret = GPIO_Export(num); } else if (strcmp(type, "pwm") == 0) @@ -50,9 +49,8 @@ bool Pin_Configure(const char *type, int pin_export, int num) } else if (strcmp(type, "adc") == 0) { - if (pin_export < 0) - ADC_Unexport(num); - else + //Don't allow unexport of adc + if (pin_export > 0) ret = ADC_Export(num); } return ret; @@ -120,7 +118,7 @@ void Pin_Handler(FCGIContext *context, char * params) if (strcmp(type, "gpo") == 0) { - if (num <= 0 || num > GPIO_NUM_PINS) + if (num <= 0 || num > GPIO_MAX_NUMBER) { FCGI_RejectJSON(context, "Invalid GPIO pin"); return; @@ -139,7 +137,7 @@ void Pin_Handler(FCGIContext *context, char * params) } else if (strcmp(type, "gpi") == 0) { - if (num < 0 || num >= GPIO_NUM_PINS) + if (num < 0 || num > GPIO_MAX_NUMBER) { FCGI_RejectJSON(context, "Invalid GPIO pin"); return; @@ -172,12 +170,12 @@ void Pin_Handler(FCGIContext *context, char * params) else { FCGI_PrintRaw("Content-type: text/plain\r\n\r\n"); - FCGI_PrintRaw("ADC%d reads %d\n", num, raw_adc); + FCGI_PrintRaw("%d\n", raw_adc); } } else if (strcmp(type, "pwm") == 0) { - if (num < 0 || num >= PWM_NUM_SAFE_PINS) + if (num < 0 || num >= PWM_NUM_PINS) { FCGI_RejectJSON(context, "Invalid PWM pin"); return; @@ -203,7 +201,7 @@ void Pin_Handler(FCGIContext *context, char * params) else { Log(LOGDEBUG, "Stopping PWM%d",num); - PWM_Stop(g_pin_safe_pwm[num]); + PWM_Stop(num); FCGI_PrintRaw("Content-type: text/plain\r\n\r\n"); FCGI_PrintRaw("PWM%d stopped",num); } @@ -214,4 +212,4 @@ void Pin_Handler(FCGIContext *context, char * params) FCGI_RejectJSON(context, "Invalid pin type"); } -} \ No newline at end of file +}