Reiko Randoja
/
ut_bbr
Basketball robot mainboard firmware
RFManager/RFManager.h@0:88887cfb2b04, 2018-09-10 (annotated)
- Committer:
- Reiko
- Date:
- Mon Sep 10 15:24:08 2018 +0000
- Revision:
- 0:88887cfb2b04
Mainboard firmware for basketball robot
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Reiko | 0:88887cfb2b04 | 1 | #ifndef RFMANAGER_H |
Reiko | 0:88887cfb2b04 | 2 | #define RFMANAGER_H |
Reiko | 0:88887cfb2b04 | 3 | |
Reiko | 0:88887cfb2b04 | 4 | #include "mbed.h" |
Reiko | 0:88887cfb2b04 | 5 | #include "CircularBuffer2.h" |
Reiko | 0:88887cfb2b04 | 6 | |
Reiko | 0:88887cfb2b04 | 7 | class RFManager { |
Reiko | 0:88887cfb2b04 | 8 | protected: |
Reiko | 0:88887cfb2b04 | 9 | FunctionPointer _callback; |
Reiko | 0:88887cfb2b04 | 10 | |
Reiko | 0:88887cfb2b04 | 11 | public: |
Reiko | 0:88887cfb2b04 | 12 | RFManager(PinName txPinName, PinName rxPinName); |
Reiko | 0:88887cfb2b04 | 13 | |
Reiko | 0:88887cfb2b04 | 14 | void baud(int baudrate); |
Reiko | 0:88887cfb2b04 | 15 | |
Reiko | 0:88887cfb2b04 | 16 | char *read(); |
Reiko | 0:88887cfb2b04 | 17 | |
Reiko | 0:88887cfb2b04 | 18 | void send(char *sendData); |
Reiko | 0:88887cfb2b04 | 19 | |
Reiko | 0:88887cfb2b04 | 20 | void send(char *sendData, int length); |
Reiko | 0:88887cfb2b04 | 21 | |
Reiko | 0:88887cfb2b04 | 22 | void update(); |
Reiko | 0:88887cfb2b04 | 23 | |
Reiko | 0:88887cfb2b04 | 24 | void handleMessage(); |
Reiko | 0:88887cfb2b04 | 25 | |
Reiko | 0:88887cfb2b04 | 26 | void setShortCommandMode(bool isEnabled); |
Reiko | 0:88887cfb2b04 | 27 | |
Reiko | 0:88887cfb2b04 | 28 | bool readable(); |
Reiko | 0:88887cfb2b04 | 29 | |
Reiko | 0:88887cfb2b04 | 30 | void attach(void (*function)(void)) { |
Reiko | 0:88887cfb2b04 | 31 | _callback.attach(function); |
Reiko | 0:88887cfb2b04 | 32 | } |
Reiko | 0:88887cfb2b04 | 33 | |
Reiko | 0:88887cfb2b04 | 34 | template<typename T> |
Reiko | 0:88887cfb2b04 | 35 | void attach(T *object, void (T::*member)(void)) { |
Reiko | 0:88887cfb2b04 | 36 | _callback.attach( object, member ); |
Reiko | 0:88887cfb2b04 | 37 | } |
Reiko | 0:88887cfb2b04 | 38 | |
Reiko | 0:88887cfb2b04 | 39 | private: |
Reiko | 0:88887cfb2b04 | 40 | Serial serial; |
Reiko | 0:88887cfb2b04 | 41 | |
Reiko | 0:88887cfb2b04 | 42 | int serialId; |
Reiko | 0:88887cfb2b04 | 43 | |
Reiko | 0:88887cfb2b04 | 44 | void rxHandler(void); |
Reiko | 0:88887cfb2b04 | 45 | |
Reiko | 0:88887cfb2b04 | 46 | bool messageAvailable; |
Reiko | 0:88887cfb2b04 | 47 | |
Reiko | 0:88887cfb2b04 | 48 | void serialWrite(char *sendData, int length); |
Reiko | 0:88887cfb2b04 | 49 | char serialReadChar(); |
Reiko | 0:88887cfb2b04 | 50 | |
Reiko | 0:88887cfb2b04 | 51 | CircularBuffer2<char> buf; |
Reiko | 0:88887cfb2b04 | 52 | |
Reiko | 0:88887cfb2b04 | 53 | unsigned int receiveCounter; |
Reiko | 0:88887cfb2b04 | 54 | char receiveBuffer[16]; |
Reiko | 0:88887cfb2b04 | 55 | |
Reiko | 0:88887cfb2b04 | 56 | char receivedMessage[16]; |
Reiko | 0:88887cfb2b04 | 57 | |
Reiko | 0:88887cfb2b04 | 58 | bool shortCommandsEnabled; |
Reiko | 0:88887cfb2b04 | 59 | unsigned int commandLength; |
Reiko | 0:88887cfb2b04 | 60 | unsigned int shortCommandLength; |
Reiko | 0:88887cfb2b04 | 61 | unsigned int longCommandLength; |
Reiko | 0:88887cfb2b04 | 62 | }; |
Reiko | 0:88887cfb2b04 | 63 | |
Reiko | 0:88887cfb2b04 | 64 | |
Reiko | 0:88887cfb2b04 | 65 | #endif //RFManager_H |