2019

Dependents:   wheel_test6 wheel_test7 2019NHK_A_manual_red 2019NHK_A_manual_red

OmniPosition.h

Committer:
takeuchi
Date:
2018-08-22
Revision:
5:f8c3aeb4e65f
Parent:
4:fc4c88fffef8
Child:
6:f8dbbe93bc7b

File content as of revision 5:f8c3aeb4e65f:

#ifndef OMNI_POSITION_H
#define OMNI_POSITION_H

#include "mbed.h"

#define OP_SERIAL_BUFFER_SIZE 9
#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

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

        int getX();
        int getY();
        double getTheta();

        void reset();

    private :
        void readData();
        void assemble();
        void send();

        int incrementCounter(int counter);

        int readCounter;
        int takeCounter;
        Ticker assembleTicker;
        Ticker sendTicker;

        int X, bfrX;
        int Y, bfrY;
        int thetaint;
        double theta, bfrTheta;

        char *buffer;
        char *data;

        bool headerCheck;
        int headerPoint;
        bool resetSend;

        uint8_t checksum;
};

#endif