1 /***************************************************************************
2 * File Name : ledctrl.c
6 * This application control the led action by calling sysLedCtrl.
7 * smaple calls: sysLedCtrl(kLedAdsl, kLedStateBlinkOnce); // kLedxxx defines in board_api.h
9 * Created on : 11/01/2002 seanl
11 ***************************************************************************/
16 #include <sys/ioctl.h> /* ioctl */
22 static int boardIoctl(int boardFd, int board_ioctl, BOARD_IOCTL_ACTION action, char *string, int strLen, int offset)
24 BOARD_IOCTL_PARMS IoctlParms;
26 IoctlParms.string = string;
27 IoctlParms.strLen = strLen;
28 IoctlParms.offset = offset;
29 IoctlParms.action = action;
31 ioctl(boardFd, board_ioctl, &IoctlParms);
33 return (IoctlParms.result);
36 static void sysLedCtrl(BOARD_LED_NAME ledName, BOARD_LED_STATE ledState)
40 if ((boardFd = open("/dev/brcmboard", O_RDWR)) == -1)
41 printf("Unable to open device /dev/brcmboard.\n");
43 boardIoctl(boardFd, BOARD_IOCTL_LED_CTRL, 0, "", (int)ledName, (int)ledState);
48 // ******* end board_api.c/h
53 BOARD_LED_NAME ledName;
54 } LED_NAME_MAP, *PLED_NAME_MAP;
57 // LED name as the first param
58 const LED_NAME_MAP ledNameMap[] =
61 {"Wireless", kLedWireless},
64 {"WanData", kLedWanData},
74 BOARD_LED_STATE ledState;
75 } LED_STATE_MAP, *PLED_STATE_MAP;
77 const LED_STATE_MAP ledStateMap[] =
79 {"Off", kLedStateOff},
81 {"BlinkOnce", kLedStateBlinkOnce},
82 {"SlowBlinkContinues", kLedStateSlowBlinkContinues},
83 {"FastBlinkContinues", kLedStateFastBlinkContinues},
89 PLED_NAME_MAP namePtr = ledNameMap;
90 PLED_STATE_MAP statePtr = ledStateMap;
92 printf("\nUsage: ledctrl led_name led_state\n\n");
93 printf("Supported led names:\n");
94 while (namePtr->validLedName)
95 printf("%s\n", namePtr++->validLedName);
97 printf("\nSupported led states:\n");
98 while (statePtr->validLedState)
99 printf("%s\n", statePtr++->validLedState);
104 int ledctrl_main(int argc, char **argv)
106 PLED_NAME_MAP namePtr = ledNameMap;
107 PLED_STATE_MAP statePtr = ledStateMap;
112 while (namePtr->validLedName)
113 if (strcmp(namePtr->validLedName, argv[1]) == 0)
117 if (!namePtr->validLedName)
120 while (statePtr->validLedState)
121 if (strcmp(statePtr->validLedState, argv[2]) == 0)
126 if (!statePtr->validLedState)
129 sysLedCtrl(namePtr->ledName, statePtr->ledState);