2019

Dependents:   wheel_test6 wheel_test7 2019NHK_A_manual_red 2019NHK_A_manual_red

OmniPosition.h

Committer:
takeuchi
Date:
2018-08-24
Revision:
8:930369f241fb
Parent:
7:73e542a88106

File content as of revision 8:930369f241fb:

#ifndef OMNI_POSITION_H
#define OMNI_POSITION_H

#include "mbed.h"
#include <vector>

#define OP_SERIAL_BUFFER_SIZE 9
#define OP_HEADER_FIRST_BYTE 72
#define OP_HEADER_SECOND_BYTE 42
#define OP_DEFAULT_BAUD 115200

class OmniPosition : public RawSerial {
    public :
        OmniPosition(PinName serialTX, PinName serialRX);

        int16_t getX();
        int16_t getY();
        float getTheta();

        void reset();

    private :
        void receiveByte();
        void assembleLoop();
        void assemble();

        Thread thread;
        std::vector<unsigned char> buf;

        int16_t X;
        int16_t Y;
        int16_t theta;

        bool resetSend;
};

#endif