blob: 5bb4902c4bef634501ff6f54f41ca58ef0f58a22 [file] [log] [blame]
Brian Silverman0aa48a92014-01-25 17:10:17 -08001#include "bbb/gpi.h"
Daniel Pettid6ff3d52014-01-02 11:24:39 -08002
3#include <stdio.h>
Brian Silverman0aa48a92014-01-25 17:10:17 -08004#include <errno.h>
5#include <string.h>
Daniel Pettid6ff3d52014-01-02 11:24:39 -08006
7#include "aos/common/logging/logging.h"
8
9namespace bbb {
10
Brian Silverman0aa48a92014-01-25 17:10:17 -080011Gpi::Gpi(int bank, int pin) : GpioPin(bank, pin, true) {
Daniel Pettid6ff3d52014-01-02 11:24:39 -080012}
13
Brian Silverman0aa48a92014-01-25 17:10:17 -080014bool Gpi::Read() {
15 int value = fgetc(value_handle_);
16 if (value < 0) {
17 LOG(FATAL, "fgetc(%p) for pin (%d,%d) failed with %d: %s\n",
18 value_handle_, bank_, pin_, errno, strerror(errno));
Daniel Pettid6ff3d52014-01-02 11:24:39 -080019 }
Brian Silverman0aa48a92014-01-25 17:10:17 -080020 switch (value - '0') {
21 case 0: return false;
22 case 1: return true;
23 default:
24 LOG(FATAL, "unknown pin value %c\n", value);
Daniel Pettid6ff3d52014-01-02 11:24:39 -080025 }
Daniel Pettid6ff3d52014-01-02 11:24:39 -080026}
27
Daniel Pettife475252014-01-05 14:15:16 -080028} // namespace bbb