made it actually work on real hardware
diff --git a/bbb_cape/src/bbb/gpo.cc b/bbb_cape/src/bbb/gpo.cc
index f02ded3..d17abe7 100644
--- a/bbb_cape/src/bbb/gpo.cc
+++ b/bbb_cape/src/bbb/gpo.cc
@@ -3,6 +3,7 @@
#include <stdio.h>
#include <errno.h>
#include <string.h>
+#include <unistd.h>
#include "aos/common/logging/logging.h"
@@ -12,11 +13,13 @@
: GpioPin(bank, pin, false, initial_value) {}
void Gpo::Set(bool high) {
- rewind(value_handle_);
- if (fputc(high ? '1' : '0', value_handle_) < 0) {
+ // TODO(brians): Figure out why this breaks it.
+ //rewind(value_handle_);
+ if (fputc(high ? '1' : '0', value_handle_) == EOF) {
LOG(FATAL, "fputc(%c, %p) for pin (%d,%d) failed with %d: %s\n",
high ? '1': '0', value_handle_, bank_, pin_, errno, strerror(errno));
}
+ sync();
}
} // namespace bbb