NagaokaRoboticsClub_mbedTeam / SerialMultiByte

Dependents:   Nucleo_NHK_2018_syudo_wheel a_team_R1370 Nucleo_NHK_2018_syudo_wheel 2018NHK_gaku_ver2 ... more

Committer:
UCHITAKE
Date:
Wed Aug 29 04:39:35 2018 +0000
Revision:
1:a28d64ee7a79
Parent:
0:a6b2ad4005b0
Child:
2:a14ba6b3f198
Child:
3:dd947d95765a
fixed BUG

Who changed what in which revision?

UserRevisionLine numberNew contents of line
UCHITAKE 0:a6b2ad4005b0 1 #ifndef SERIAL_MULTI_BYTE_H
UCHITAKE 0:a6b2ad4005b0 2 #define SERIAL_MULTI_BYTE_H
UCHITAKE 0:a6b2ad4005b0 3
UCHITAKE 0:a6b2ad4005b0 4 #define DEFAULT_BAUD 115200
UCHITAKE 0:a6b2ad4005b0 5 #define DEFAULT_FIRST_HEADER 0xAA
UCHITAKE 0:a6b2ad4005b0 6 #define DEFAULT_SECOND_HEADER 0xBB
UCHITAKE 0:a6b2ad4005b0 7 #define DEFAULT_DATA_SIZE 4
UCHITAKE 0:a6b2ad4005b0 8
UCHITAKE 0:a6b2ad4005b0 9 #include "mbed.h"
UCHITAKE 0:a6b2ad4005b0 10 #include <vector>
UCHITAKE 0:a6b2ad4005b0 11
UCHITAKE 0:a6b2ad4005b0 12 class SerialMultiByte : public RawSerial {
UCHITAKE 0:a6b2ad4005b0 13 public :
UCHITAKE 0:a6b2ad4005b0 14 SerialMultiByte(PinName tx, PinName rx);
UCHITAKE 0:a6b2ad4005b0 15 void setHeaders(uint8_t firstHeader, uint8_t secondHeader);
UCHITAKE 0:a6b2ad4005b0 16 void setHeaders(uint8_t headers[]);
UCHITAKE 0:a6b2ad4005b0 17
UCHITAKE 0:a6b2ad4005b0 18 void startReceive(uint16_t dataSize);
UCHITAKE 0:a6b2ad4005b0 19 void getData(uint8_t data_[]);
UCHITAKE 0:a6b2ad4005b0 20 void sendData(uint8_t data_[], uint16_t length);
UCHITAKE 0:a6b2ad4005b0 21
UCHITAKE 0:a6b2ad4005b0 22 private :
UCHITAKE 1:a28d64ee7a79 23 DigitalOut myled;
UCHITAKE 0:a6b2ad4005b0 24 void receiveLoop();
UCHITAKE 0:a6b2ad4005b0 25 void receiveByte();
UCHITAKE 0:a6b2ad4005b0 26 void checkData();
UCHITAKE 0:a6b2ad4005b0 27
UCHITAKE 0:a6b2ad4005b0 28 Thread thread;
UCHITAKE 0:a6b2ad4005b0 29
UCHITAKE 0:a6b2ad4005b0 30 uint8_t header[2];
UCHITAKE 0:a6b2ad4005b0 31 std::vector<uint8_t> buffer;
UCHITAKE 0:a6b2ad4005b0 32 uint16_t bufferSize;
UCHITAKE 0:a6b2ad4005b0 33 uint8_t* data;
UCHITAKE 0:a6b2ad4005b0 34
UCHITAKE 0:a6b2ad4005b0 35
UCHITAKE 0:a6b2ad4005b0 36 };
UCHITAKE 0:a6b2ad4005b0 37
UCHITAKE 0:a6b2ad4005b0 38 #endif