Li Weiyi
/
Cube
Microduino的cube小车。
Microduino_Protocol_HardSer.h@4:0670023d3f36, 2016-05-28 (annotated)
- Committer:
- lixianyu
- Date:
- Sat May 28 05:09:18 2016 +0000
- Revision:
- 4:0670023d3f36
- Parent:
- 3:e4ac7c1a14de
??work????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lixianyu | 3:e4ac7c1a14de | 1 | #ifndef _MICRODUINO_PROTOCOL_HARDSER_H |
lixianyu | 3:e4ac7c1a14de | 2 | #define _MICRODUINO_PROTOCOL_HARDSER_H |
lixianyu | 3:e4ac7c1a14de | 3 | |
lixianyu | 3:e4ac7c1a14de | 4 | #include "mbed.h" |
lixianyu | 3:e4ac7c1a14de | 5 | |
lixianyu | 3:e4ac7c1a14de | 6 | #define PRO_PORT Serial |
lixianyu | 3:e4ac7c1a14de | 7 | |
lixianyu | 3:e4ac7c1a14de | 8 | enum p_sta { |
lixianyu | 3:e4ac7c1a14de | 9 | P_ERROR, |
lixianyu | 3:e4ac7c1a14de | 10 | P_BUSY, |
lixianyu | 3:e4ac7c1a14de | 11 | P_NONE, |
lixianyu | 3:e4ac7c1a14de | 12 | P_FINE, |
lixianyu | 3:e4ac7c1a14de | 13 | P_TIMEOUT, |
lixianyu | 3:e4ac7c1a14de | 14 | }; |
lixianyu | 3:e4ac7c1a14de | 15 | |
lixianyu | 3:e4ac7c1a14de | 16 | #define MODE_WHILE 1 |
lixianyu | 3:e4ac7c1a14de | 17 | #define MODE_LOOP 0 |
lixianyu | 3:e4ac7c1a14de | 18 | |
lixianyu | 3:e4ac7c1a14de | 19 | #define BUFFER_MAX 256 |
lixianyu | 3:e4ac7c1a14de | 20 | #define CHANNEL_NUM 8 |
lixianyu | 3:e4ac7c1a14de | 21 | #define TYPE_NUM 0xC8 |
lixianyu | 3:e4ac7c1a14de | 22 | |
lixianyu | 3:e4ac7c1a14de | 23 | class Protocol { |
lixianyu | 3:e4ac7c1a14de | 24 | public: |
lixianyu | 4:0670023d3f36 | 25 | Protocol(PRO_PORT *ser , uint8_t _channel) : num(0),time(0),sta(false),error(false){ // Constructor when using HardwareSerial |
lixianyu | 3:e4ac7c1a14de | 26 | // common_init(); // Set everything to common state, then... |
lixianyu | 3:e4ac7c1a14de | 27 | channel = _channel; |
lixianyu | 3:e4ac7c1a14de | 28 | num = 0; |
lixianyu | 3:e4ac7c1a14de | 29 | sta = false; |
lixianyu | 3:e4ac7c1a14de | 30 | error = false; |
lixianyu | 3:e4ac7c1a14de | 31 | P_Serial = ser; // ...override P_Serial with value passed. |
lixianyu | 4:0670023d3f36 | 32 | //_timer.start(); |
lixianyu | 3:e4ac7c1a14de | 33 | } |
lixianyu | 3:e4ac7c1a14de | 34 | void begin(uint16_t _baud); |
lixianyu | 3:e4ac7c1a14de | 35 | uint8_t parse(uint16_t* _data, bool _mod); |
lixianyu | 3:e4ac7c1a14de | 36 | |
lixianyu | 3:e4ac7c1a14de | 37 | private: |
lixianyu | 3:e4ac7c1a14de | 38 | uint8_t inChar, inCache; |
lixianyu | 3:e4ac7c1a14de | 39 | uint8_t buffer[BUFFER_MAX]; |
lixianyu | 3:e4ac7c1a14de | 40 | uint8_t channel; |
lixianyu | 3:e4ac7c1a14de | 41 | uint32_t num ; |
lixianyu | 3:e4ac7c1a14de | 42 | uint32_t time; |
lixianyu | 3:e4ac7c1a14de | 43 | bool sta; |
lixianyu | 3:e4ac7c1a14de | 44 | bool error; |
lixianyu | 3:e4ac7c1a14de | 45 | |
lixianyu | 3:e4ac7c1a14de | 46 | bool available(bool _sta); |
lixianyu | 3:e4ac7c1a14de | 47 | PRO_PORT *P_Serial; |
lixianyu | 3:e4ac7c1a14de | 48 | |
lixianyu | 4:0670023d3f36 | 49 | |
lixianyu | 3:e4ac7c1a14de | 50 | }; |
lixianyu | 3:e4ac7c1a14de | 51 | |
lixianyu | 3:e4ac7c1a14de | 52 | |
lixianyu | 3:e4ac7c1a14de | 53 | #endif |