|
2 | 2 | # |
3 | 3 | # io test code for pcDuino ( http://www.pcduino.com ) |
4 | 4 | # |
| 5 | +from exceptions import InvalidChannelException |
5 | 6 | __all__ = ['HIGH', 'LOW', 'INPUT', 'OUTPUT','digitalWrite', 'digitalRead', "pinMode"] |
6 | 7 |
|
7 | | -_GPIO_PINS = ('gpio0','gpio1','gpio2','gpio3','gpio4','gpio5','gpio6','gpio7', |
8 | | - 'gpio8', 'gpio9', 'gpio10', 'gpio11', 'gpio12', 'gpio13', |
9 | | - 'gpio14', 'gpio15', 'gpio16', 'gpio17', 'gpio18', 'gpio19') |
| 8 | +_GPIO_PINS = set(('gpio%s' % i for i in xrange(20))) |
10 | 9 |
|
11 | 10 | _PIN_FD_PATH = '/sys/devices/virtual/misc/gpio/pin/%s' |
12 | 11 | _MODE_FD_PATH = '/sys/devices/virtual/misc/gpio/mode/%s' |
|
15 | 14 | INPUT = 0 |
16 | 15 | OUTPUT = 1 |
17 | 16 |
|
18 | | -class InvalidChannelException(Exception): |
19 | | - """The channel sent is invalid on pcDuino board """ |
20 | | - pass |
21 | | - |
22 | | -def _GetValidId(channel): |
| 17 | +def _get_valid_id(channel): |
23 | 18 | if channel in _GPIO_PINS: |
24 | 19 | return channel |
25 | 20 | else: |
26 | 21 | raise InvalidChannelException |
27 | 22 |
|
28 | | -def digitalWrite(channel, value): |
| 23 | +def digital_write(channel, value): |
29 | 24 | """Write to a GPIO channel""" |
30 | | - id = _GetValidId(channel) |
| 25 | + id = _get_valid_id(channel) |
31 | 26 | with open(_PIN_FD_PATH % id, 'w') as f: |
32 | 27 | f.write('1' if value == HIGH else '0') |
33 | 28 |
|
34 | | -def digitalRead(channel): |
| 29 | +def digital_read(channel): |
35 | 30 | """Read from a GPIO channel""" |
36 | | - id = _GetValidId(channel) |
| 31 | + id = _get_valid_id(channel) |
37 | 32 | with open(_PIN_FD_PATH % id, 'r') as f: |
38 | 33 | return f.read(1) == '1' |
39 | 34 |
|
40 | | -def pinMode(channel, mode): |
| 35 | +def pin_mode(channel, mode): |
41 | 36 | """ Set Mode of a GPIO channel """ |
42 | | - id = _GetValidId(channel) |
| 37 | + id = _get_valid_id(channel) |
43 | 38 | with open(_MODE_FD_PATH % id, 'w') as f: |
44 | 39 | f.write('0' if mode == INPUT else '1') |
0 commit comments