Firmware for an Android accessory electric bicycle. See http://www.danielcasner.org/tag/ebike/ for some more information on my build.
Dependencies: AndroidAccessory mbed
main.cpp@1:be88f22fc412, 2012-08-11 (annotated)
- Committer:
- DanielC
- Date:
- Sat Aug 11 21:20:13 2012 +0000
- Revision:
- 1:be88f22fc412
- Parent:
- 0:220280db0a7b
- Child:
- 2:e2c3c7340fb3
And it compiles now.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DanielC | 0:220280db0a7b | 1 | #include "mbed.h" |
DanielC | 0:220280db0a7b | 2 | #include "AndroidAccessory.h" |
DanielC | 0:220280db0a7b | 3 | |
DanielC | 0:220280db0a7b | 4 | DigitalOut led1(LED1); |
DanielC | 0:220280db0a7b | 5 | DigitalOut led2(LED2); |
DanielC | 0:220280db0a7b | 6 | DigitalOut led3(LED3); |
DanielC | 0:220280db0a7b | 7 | DigitalOut led4(LED4); |
DanielC | 0:220280db0a7b | 8 | |
DanielC | 0:220280db0a7b | 9 | static const size_t OUTL=61; |
DanielC | 0:220280db0a7b | 10 | static const size_t INBL=61; |
DanielC | 0:220280db0a7b | 11 | |
DanielC | 0:220280db0a7b | 12 | class DroidCycleMbed : public AndroidAccessory { |
DanielC | 0:220280db0a7b | 13 | public: |
DanielC | 1:be88f22fc412 | 14 | DroidCycleMbed(); |
DanielC | 0:220280db0a7b | 15 | |
DanielC | 1:be88f22fc412 | 16 | virtual void setupDevice(); |
DanielC | 0:220280db0a7b | 17 | virtual void resetDevice(); |
DanielC | 0:220280db0a7b | 18 | virtual int callbackRead(u8 *buff, int len); |
DanielC | 0:220280db0a7b | 19 | virtual int callbackWrite(); |
DanielC | 0:220280db0a7b | 20 | |
DanielC | 0:220280db0a7b | 21 | private: |
DanielC | 0:220280db0a7b | 22 | void onTick(); |
DanielC | 0:220280db0a7b | 23 | char buffer[OUTL]; |
DanielC | 0:220280db0a7b | 24 | int bcount; |
DanielC | 0:220280db0a7b | 25 | Ticker tick; |
DanielC | 0:220280db0a7b | 26 | Timeout n; |
DanielC | 0:220280db0a7b | 27 | }; |
DanielC | 0:220280db0a7b | 28 | |
DanielC | 1:be88f22fc412 | 29 | DroidCycleMbed::DroidCycleMbed() : AndroidAccessory(INBL, OUTL, |
DanielC | 1:be88f22fc412 | 30 | "DC Labs", |
DanielC | 1:be88f22fc412 | 31 | "DroidCycle", |
DanielC | 1:be88f22fc412 | 32 | "Android E-Bike controller interface", |
DanielC | 1:be88f22fc412 | 33 | "0.1", |
DanielC | 1:be88f22fc412 | 34 | "http://www.danielcasner.org", |
DanielC | 1:be88f22fc412 | 35 | "0000000123456789") { |
DanielC | 1:be88f22fc412 | 36 | tick.attach(this, &DroidCycleMbed::onTick, 0.010); |
DanielC | 1:be88f22fc412 | 37 | } |
DanielC | 1:be88f22fc412 | 38 | |
DanielC | 0:220280db0a7b | 39 | void DroidCycleMbed::setupDevice() { |
DanielC | 0:220280db0a7b | 40 | for (int i=0; i<OUTL; i++) buffer[i] = 0; |
DanielC | 0:220280db0a7b | 41 | bcount = 0; |
DanielC | 0:220280db0a7b | 42 | } |
DanielC | 0:220280db0a7b | 43 | |
DanielC | 0:220280db0a7b | 44 | void DroidCycleMbed::resetDevice() { |
DanielC | 0:220280db0a7b | 45 | setupDevice(); |
DanielC | 0:220280db0a7b | 46 | } |
DanielC | 0:220280db0a7b | 47 | |
DanielC | 0:220280db0a7b | 48 | int DroidCycleMbed::callbackRead(u8 *buf, int len) { |
DanielC | 0:220280db0a7b | 49 | for (int i=0; i<INBL; i++) buf[i] = 0; |
DanielC | 0:220280db0a7b | 50 | |
DanielC | 0:220280db0a7b | 51 | return 0; |
DanielC | 0:220280db0a7b | 52 | } |
DanielC | 0:220280db0a7b | 53 | |
DanielC | 0:220280db0a7b | 54 | int DroidCycleMbed::callbackWrite() { |
DanielC | 0:220280db0a7b | 55 | return false; |
DanielC | 0:220280db0a7b | 56 | } |
DanielC | 0:220280db0a7b | 57 | |
DanielC | 0:220280db0a7b | 58 | |
DanielC | 0:220280db0a7b | 59 | void DroidCycleMbed::onTick() { |
DanielC | 0:220280db0a7b | 60 | |
DanielC | 0:220280db0a7b | 61 | } |
DanielC | 0:220280db0a7b | 62 | |
DanielC | 0:220280db0a7b | 63 | int main() { |
DanielC | 0:220280db0a7b | 64 | while(1) { |
DanielC | 1:be88f22fc412 | 65 | led1 = 1; |
DanielC | 0:220280db0a7b | 66 | wait(0.2); |
DanielC | 1:be88f22fc412 | 67 | led1 = 0; |
DanielC | 0:220280db0a7b | 68 | wait(0.2); |
DanielC | 0:220280db0a7b | 69 | } |
DanielC | 0:220280db0a7b | 70 | } |