blob: 64e01983489dea48bd18f2652e9f3a11113d333a [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 <string.h>
Daniel Pettid6ff3d52014-01-02 11:24:39 -08005
6#include "aos/common/logging/logging.h"
7
8namespace bbb {
9
Brian Silverman0aa48a92014-01-25 17:10:17 -080010Gpi::Gpi(int bank, int pin) : GpioPin(bank, pin, true) {
Daniel Pettid6ff3d52014-01-02 11:24:39 -080011}
12
Brian Silverman0aa48a92014-01-25 17:10:17 -080013bool Gpi::Read() {
Brian Silverman04fac622014-01-26 18:32:15 -080014 rewind(value_handle_);
Brian Silverman0aa48a92014-01-25 17:10:17 -080015 int value = fgetc(value_handle_);
16 if (value < 0) {
Brian Silvermand7844882014-05-10 23:35:39 -070017 PLOG(FATAL, "fgetc(%p) for pin (%d,%d) failed", value_handle_, bank_, pin_);
Daniel Pettid6ff3d52014-01-02 11:24:39 -080018 }
Brian Silverman0aa48a92014-01-25 17:10:17 -080019 switch (value - '0') {
20 case 0: return false;
21 case 1: return true;
22 default:
23 LOG(FATAL, "unknown pin value %c\n", value);
Daniel Pettid6ff3d52014-01-02 11:24:39 -080024 }
Daniel Pettid6ff3d52014-01-02 11:24:39 -080025}
26
Daniel Pettife475252014-01-05 14:15:16 -080027} // namespace bbb