library for omnidirectional planar positioning system
Dependents: measuring_wheel 2018NHK_gakugaku_robo 2018NHK_gaku_ver2
Diff: OmniPosition.h
- Revision:
- 9:222f7fcbd05a
- Parent:
- 7:73e542a88106
- Child:
- 10:a21aa2bd05c5
--- a/OmniPosition.h Fri Aug 24 14:48:35 2018 +0900 +++ b/OmniPosition.h Tue Sep 18 15:25:05 2018 +0000 @@ -2,39 +2,39 @@ #define OMNI_POSITION_H #include "mbed.h" -#include <vector> + +#include "SerialMultiByte.h" -#define OP_SERIAL_BUFFER_SIZE 8 -#define OP_HEADER_FIRST_BYTE 72 -#define OP_HEADER_SECOND_BYTE 42 -#define OP_RECEIVE_FREQ 0.05 -#define OP_SEND_FREQ 0.1 -#define OP_DEFAULT_BAUD 115200 +#define FIRST_HEDDER 0xEE +#define SECOND_HEDDER 0xFF +#define BUFFER_SIZE 6 +#define TWO_BYTE_DATA 3 +#define ONE_BYTE_DATA 0 -class OmniPosition : public RawSerial { - public : - OmniPosition(PinName serialTX, PinName serialRX); +class OmniPosition +{ +public : + OmniPosition(PinName serialTX, PinName serialRX); - int16_t getX(); - int16_t getY(); - float getTheta(); + int16_t getX(); + int16_t getY(); + float getTheta(); - void reset(); + void reset(); + +private : + void assembleLoop(); - private : - void receiveByte(); - void assembleLoop(); - void assemble(); + Thread thread; - Thread thread; - std::vector<unsigned char> buf; + int16_t X; + int16_t Y; + int16_t theta; - int16_t X; - int16_t Y; - int16_t theta; - - bool resetSend; + bool resetSend; + uint8_t rxdata[BUFFER_SIZE]; + int data[TWO_BYTE_DATA + ONE_BYTE_DATA]; + SerialMultiByte serial; }; -#endif - +#endif \ No newline at end of file