Microduino的cube小车。

Dependencies:   mbed-rtos mbed

Committer:
lixianyu
Date:
Fri May 27 01:44:31 2016 +0000
Revision:
3:e4ac7c1a14de
Child:
4:0670023d3f36
???????????

Who changed what in which revision?

UserRevisionLine numberNew 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 3:e4ac7c1a14de 25 Protocol(PRO_PORT *ser , uint8_t _channel) : _timer(),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 3:e4ac7c1a14de 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 3:e4ac7c1a14de 49 Timer _timer;
lixianyu 3:e4ac7c1a14de 50 };
lixianyu 3:e4ac7c1a14de 51
lixianyu 3:e4ac7c1a14de 52
lixianyu 3:e4ac7c1a14de 53 #endif