Skip to content

Commit 2cb8376

Browse files
authored
Merge pull request #163 from MarkAYoder/master
Added BAT25, BAT50, BAT75, BAT100 and WIFI LEDs
2 parents 41094a2 + cc96193 commit 2cb8376

File tree

6 files changed

+114
-20
lines changed

6 files changed

+114
-20
lines changed

source/common.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,11 @@ pins_t table[] = {
177177
{ "GP1_4", "GP1_4", 97, -1, -1},
178178
{ "RED_LED", "RED", 66, -1, -1}, // LEDs
179179
{ "GREEN_LED", "GREEN", 67, -1, -1},
180+
{ "BAT25", "BAT25", 27, -1, -1},
181+
{ "BAT50", "BAT50", 11, -1, -1},
182+
{ "BAT75", "BAT75", 61, -1, -1},
183+
{ "BAT100", "BAT100", 10000, -1, -1}, // Placeholder
184+
{ "WIFI", "WIFI", 10001, -1, -1}, // Placeholder
180185

181186
{ "PAUSE", "P8_9", 69, 1, -1},
182187
{ "MODE", "P8_10", 68, 1, -1},

source/event_gpio.c

Lines changed: 72 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ BBIO_err gpio_export(unsigned int gpio)
125125
gpio, gpio_export, errno, strerror(errno));
126126
ret = BBIO_SYSFS;
127127
}
128-
usleep(100000); // Hack to wait for newly exported pins to get correct ownership
128+
usleep(200000); // Hack to wait for newly exported pins to get correct ownership
129129
return ret;
130130
}
131131

@@ -195,13 +195,40 @@ int open_value_file(unsigned int gpio)
195195
// create file descriptor of value file
196196
if ((gpio >= USR_LED_GPIO_MIN) && (gpio <= USR_LED_GPIO_MAX)) {
197197
snprintf(filename, sizeof(filename), "/sys/class/leds/beaglebone:green:usr%d/brightness", gpio - USR_LED_GPIO_MIN);
198-
} else if(gpio == USR_LED_RED) { // red LED
199-
snprintf(filename, sizeof(filename), "/sys/class/leds/red/brightness");
200-
} else if(gpio == USR_LED_GREEN) { // green LED
201-
snprintf(filename, sizeof(filename), "/sys/class/leds/green/brightness");
202-
} else {
203-
snprintf(filename, sizeof(filename), "/sys/class/gpio/gpio%d/value", gpio);
198+
} else switch(gpio) {
199+
case USR_LED_RED:
200+
snprintf(filename, sizeof(filename), "/sys/class/leds/red/brightness");
201+
break;
202+
case USR_LED_GREEN:
203+
snprintf(filename, sizeof(filename), "/sys/class/leds/green/brightness");
204+
break;
205+
case BAT25:
206+
snprintf(filename, sizeof(filename), "/sys/class/leds/bat25/brightness");
207+
break;
208+
case BAT50:
209+
snprintf(filename, sizeof(filename), "/sys/class/leds/bat50/brightness");
210+
break;
211+
case BAT75:
212+
snprintf(filename, sizeof(filename), "/sys/class/leds/bat75/brightness");
213+
break;
214+
case BAT100:
215+
snprintf(filename, sizeof(filename), "/sys/class/leds/bat100/brightness");
216+
break;
217+
case WIFI:
218+
snprintf(filename, sizeof(filename), "/sys/class/leds/wifi/brightness");
219+
break;
220+
default:
221+
snprintf(filename, sizeof(filename), "/sys/class/gpio/gpio%d/value", gpio);
222+
break;
204223
}
224+
225+
// if(gpio == USR_LED_RED) { // red LED
226+
// snprintf(filename, sizeof(filename), "/sys/class/leds/red/brightness");
227+
// } else if(gpio == USR_LED_GREEN) { // green LED
228+
// snprintf(filename, sizeof(filename), "/sys/class/leds/green/brightness");
229+
// } else {
230+
// snprintf(filename, sizeof(filename), "/sys/class/gpio/gpio%d/value", gpio);
231+
// }
205232

206233
if ((fd = open(filename, O_RDONLY | O_NONBLOCK)) < 0) {
207234
syslog(LOG_ERR, "gpio open_value_file: %u couldn't open '%s': %i-%s",
@@ -253,7 +280,10 @@ BBIO_err gpio_set_direction(unsigned int gpio, unsigned int in_flag)
253280
char direction[10] = { 0 };
254281

255282
if (((gpio >= USR_LED_GPIO_MIN) && (gpio <= USR_LED_GPIO_MAX)) ||
256-
(gpio == USR_LED_RED) || (gpio == USR_LED_GREEN)) {
283+
(gpio == USR_LED_RED) || (gpio == USR_LED_GREEN)
284+
|| (gpio == BAT25) || (gpio == BAT50)
285+
|| (gpio == BAT75) || (gpio == BAT100)
286+
|| (gpio == WIFI)) {
257287
syslog(LOG_DEBUG, "gpio_set_direction: %u not applicable to the USR LED", gpio);
258288
return BBIO_OK; // direction is not applicable to the USR LED pins
259289
}
@@ -331,13 +361,40 @@ BBIO_err gpio_set_value(unsigned int gpio, unsigned int value)
331361
snprintf(filename, sizeof(filename), "/sys/class/leds/beaglebone:green:%s/brightness", usr_led_trigger[led]);
332362
}
333363

334-
} else if(gpio == USR_LED_RED) {
335-
snprintf(filename, sizeof(filename), "/sys/class/leds/red/brightness");
336-
} else if(gpio == USR_LED_GREEN) {
337-
snprintf(filename, sizeof(filename), "/sys/class/leds/green/brightness");
338-
} else {
339-
snprintf(filename, sizeof(filename), "/sys/class/gpio/gpio%d/value", gpio);
340-
}
364+
} else switch(gpio) {
365+
case USR_LED_RED:
366+
snprintf(filename, sizeof(filename), "/sys/class/leds/red/brightness");
367+
break;
368+
case USR_LED_GREEN:
369+
snprintf(filename, sizeof(filename), "/sys/class/leds/green/brightness");
370+
break;
371+
case BAT25:
372+
snprintf(filename, sizeof(filename), "/sys/class/leds/bat25/brightness");
373+
break;
374+
case BAT50:
375+
snprintf(filename, sizeof(filename), "/sys/class/leds/bat50/brightness");
376+
break;
377+
case BAT75:
378+
snprintf(filename, sizeof(filename), "/sys/class/leds/bat75/brightness");
379+
break;
380+
case BAT100:
381+
snprintf(filename, sizeof(filename), "/sys/class/leds/bat100/brightness");
382+
break;
383+
case WIFI:
384+
snprintf(filename, sizeof(filename), "/sys/class/leds/wifi/brightness");
385+
break;
386+
default:
387+
snprintf(filename, sizeof(filename), "/sys/class/gpio/gpio%d/value", gpio);
388+
break;
389+
}
390+
391+
// if(gpio == USR_LED_RED) {
392+
// snprintf(filename, sizeof(filename), "/sys/class/leds/red/brightness");
393+
// } else if(gpio == USR_LED_GREEN) {
394+
// snprintf(filename, sizeof(filename), "/sys/class/leds/green/brightness");
395+
// } else {
396+
// snprintf(filename, sizeof(filename), "/sys/class/gpio/gpio%d/value", gpio);
397+
// }
341398

342399
fd = open(filename, O_WRONLY);
343400
if (fd < 0) {

source/event_gpio.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ SOFTWARE.
5050
#define USR_LED_GPIO_MAX 56
5151
#define USR_LED_RED 66
5252
#define USR_LED_GREEN 67
53+
#define BAT25 27
54+
#define BAT50 11
55+
#define BAT75 61
56+
#define BAT100 10000 // Placeholder until I find the real number
57+
#define WIFI 10001 // Ditto
5358

5459
#define PUD_OFF 0
5560
#define PUD_DOWN 1
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env python3
2+
import Adafruit_BBIO.GPIO as GPIO
3+
import time
4+
5+
LEDs = ["USR0", "USR1", "USR2", "USR3",
6+
"GP0_3", "GP0_5", "GP0_6",
7+
"GP1_3", "GP1_4",
8+
"RED", "GREEN",
9+
"BAT25", "BAT50", "BAT75", "BAT100",
10+
"WIFI"
11+
]
12+
delay = 0.25
13+
14+
for LED in LEDs:
15+
print(LED)
16+
GPIO.setup(LED, GPIO.OUT)
17+
18+
while True:
19+
for LED in LEDs:
20+
GPIO.output(LED, 1)
21+
time.sleep(delay)
22+
for LED in LEDs:
23+
GPIO.output(LED, 0)
24+
time.sleep(delay)

source/examples/python/button.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,21 @@
66
import Adafruit_BBIO.GPIO as GPIO
77
import time
88

9-
button="PAUSE" # PAUSE=P8_9, MODE=P8_10
10-
LED ="RED_LED"
9+
button= "PAUSE" # PAUSE=P8_9, MODE=P8_10
10+
LED1 = "RED"
11+
LED2 = "WIFI"
1112

1213
# Set the GPIO pins:
13-
GPIO.setup(LED, GPIO.OUT)
14+
GPIO.setup(LED1, GPIO.OUT)
15+
GPIO.setup(LED2, GPIO.OUT)
1416
GPIO.setup(button, GPIO.IN)
1517

1618
print("Running...")
1719

1820
while True:
1921
state = GPIO.input(button)
20-
GPIO.output(LED, state)
22+
GPIO.output(LED1, state)
23+
GPIO.output(LED2, state)
2124

2225
GPIO.wait_for_edge(button, GPIO.BOTH)
2326
print("Pressed")

source/examples/python/leds.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import Adafruit_BBIO.GPIO as GPIO
44
import time
55

6-
LEDs = ["RED_LED", "GREEN_LED"]
6+
LEDs = ["RED", "GREEN"]
77

88
for LED in LEDs:
99
GPIO.setup(LED, GPIO.OUT)

0 commit comments

Comments
 (0)