- //TODO: Set actuator
- switch (a->id)
- {
- 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];
- bool turn_on = value;
-
- for (int i = 0; i < 4; i++)
- {
- snprintf(buf, 50, led_format, i);
- if ((led_handle = fopen(buf, "w")) != NULL)
- {
- if (turn_on)
- fwrite("1", sizeof(char), 1, led_handle);
- else
- fwrite("0", sizeof(char), 1, led_handle);
- fclose(led_handle);
- }
- else
- Log(LOGDEBUG, "LED fopen failed: %s", strerror(errno));
- }
- }
- break;
- case ACTUATOR_TEST1:
- GPIO_Set(GPIO1_16, (bool)(value));
- break;
- case ACTUATOR_TEST2:
- {
- // PWM analogue actuator (currently generates one PWM signal with first PWM module)
- static long freq = 16666666; // This is 60Hz
- PWM_Set(EHRPWM0A, true, freq, value * freq); // Set the duty cycle
- break;
- }
- }
-
- Log(LOGDEBUG, "Actuator %s set to %f", g_actuator_names[a->id], value);
-
- // Record the value