Brian Silverman | 0aa48a9 | 2014-01-25 17:10:17 -0800 | [diff] [blame] | 1 | #include "bbb/gpo.h" |
Daniel Petti | d6ff3d5 | 2014-01-02 11:24:39 -0800 | [diff] [blame] | 2 | |
| 3 | #include <stdio.h> |
Brian Silverman | 0aa48a9 | 2014-01-25 17:10:17 -0800 | [diff] [blame] | 4 | #include <string.h> |
Brian Silverman | e364e38 | 2014-02-08 21:51:33 -0800 | [diff] [blame] | 5 | #include <unistd.h> |
Daniel Petti | d6ff3d5 | 2014-01-02 11:24:39 -0800 | [diff] [blame] | 6 | |
| 7 | #include "aos/common/logging/logging.h" |
| 8 | |
| 9 | namespace bbb { |
| 10 | |
Brian Silverman | 0aa48a9 | 2014-01-25 17:10:17 -0800 | [diff] [blame] | 11 | Gpo::Gpo(int bank, int pin, bool initial_value) |
| 12 | : GpioPin(bank, pin, false, initial_value) {} |
| 13 | |
| 14 | void Gpo::Set(bool high) { |
Brian Silverman | 8dc9fd4 | 2014-02-10 13:35:43 -0800 | [diff] [blame] | 15 | rewind(value_handle_); |
Brian Silverman | e364e38 | 2014-02-08 21:51:33 -0800 | [diff] [blame] | 16 | if (fputc(high ? '1' : '0', value_handle_) == EOF) { |
Brian Silverman | d784488 | 2014-05-10 23:35:39 -0700 | [diff] [blame] | 17 | PLOG(FATAL, "fputc(%c, %p) for pin (%d,%d) failed", |
| 18 | high ? '1': '0', value_handle_, bank_, pin_); |
Daniel Petti | d6ff3d5 | 2014-01-02 11:24:39 -0800 | [diff] [blame] | 19 | } |
Brian Silverman | 8dc9fd4 | 2014-02-10 13:35:43 -0800 | [diff] [blame] | 20 | if (fflush(value_handle_) == EOF) { |
Brian Silverman | d784488 | 2014-05-10 23:35:39 -0700 | [diff] [blame] | 21 | PLOG(FATAL, "fflush(%p) for pin (%d,%d) failed", |
| 22 | value_handle_, bank_, pin_); |
Brian Silverman | 8dc9fd4 | 2014-02-10 13:35:43 -0800 | [diff] [blame] | 23 | } |
Daniel Petti | d6ff3d5 | 2014-01-02 11:24:39 -0800 | [diff] [blame] | 24 | } |
| 25 | |
Daniel Petti | fe47525 | 2014-01-05 14:15:16 -0800 | [diff] [blame] | 26 | } // namespace bbb |