Change actuator code to turn on/off all leds
authorJeremy Tan <[email protected]>
Wed, 18 Sep 2013 01:04:17 +0000 (09:04 +0800)
committerJeremy Tan <[email protected]>
Wed, 18 Sep 2013 01:04:17 +0000 (09:04 +0800)
server/actuator.c

index af69c7f..9d2ad13 100644 (file)
@@ -164,7 +164,28 @@ void Actuator_SetValue(Actuator * a, double value)
        //TODO: Set actuator
        switch (a->id)
        {
-               case ACTUATOR_TEST0:
+               case ACTUATOR_TEST0: 
+                       {
+                               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:
                        break;

UCC git Repository :: git.ucc.asn.au