library for omnidirectional planar positioning system

Dependents:   measuring_wheel 2018NHK_gakugaku_robo 2018NHK_gaku_ver2

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