X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=server%2Factuator.c;h=4df06bc828a02047674c358fe9277c057e5d36a2;hb=466cbf5433adfc4fef7065164918201039159aff;hp=9d2ad131111cbd4fdbbeea146e2d6820b00b75d8;hpb=270dc6627ca3a8417d50195da96a8acc859d9e7b;p=matches%2FMCTX3420.git diff --git a/server/actuator.c b/server/actuator.c index 9d2ad13..4df06bc 100644 --- a/server/actuator.c +++ b/server/actuator.c @@ -5,13 +5,16 @@ #include "actuator.h" #include "options.h" +// Files containing GPIO and PWM definitions +#include "gpio.h" + /** Array of Actuators (global to this file) initialised by Actuator_Init **/ static Actuator g_actuators[NUMACTUATORS]; /** Human readable names for the Actuators **/ const char * g_actuator_names[NUMACTUATORS] = { - "actuator_test0", "actuator_test1" + "actuator_test0", "actuator_test1", "actuator_test2" }; /** @@ -166,6 +169,7 @@ void Actuator_SetValue(Actuator * a, double value) { case ACTUATOR_TEST0: { + // Onboard LEDs test actuator FILE *led_handle = NULL; //code reference: http://learnbuildshare.wordpress.com/2013/05/19/beaglebone-black-controlling-user-leds-using-c/ const char *led_format = "/sys/class/leds/beaglebone:green:usr%d/brightness"; char buf[50]; @@ -188,6 +192,34 @@ void Actuator_SetValue(Actuator * a, double value) } break; case ACTUATOR_TEST1: + // GPIO pin digital actuator + { + // Quick actuator function for testing pins + // GPIOPin can be passed as argument, but is just defined here for testing purposes + // Modify this to only export on first run, only unexport on shutdown + pinExport(60); + pinDirection(60, 1); + pinSet(value, 60); + pinUnexport(60); + } + break; + case ACTUATOR_TEST2: + // PWM analogue actuator (currently generates one PWM signal with first PWM module) + /* + { + if (pwminit == 0) { // If inactive, start the pwm module + pwm_init(); + } + if (pwmstart == 0) { + pwm_start(); + pwm_set_period(FREQ); // Frequency is 50Hz defined in pwm header file + } + if(value >= 0 && value <= 1000) { + double duty = value/1000 * 100; // Convert pressure to duty percentage + pwm_set_duty((int)duty); // Set duty percentage for actuator (0-100%) + } + } + */ break; }