Zürcher Eliteeinheit / Mbed 2 deprecated ROME2_P4

Dependencies:   ROME2_P2 mbed

Fork of ROME2_P3 by Zürcher Eliteeinheit

SerialServer.h

Committer:
matajarb
Date:
2018-04-26
Revision:
6:67263dc2c2cf

File content as of revision 6:67263dc2c2cf:

/*
 * SerialServer.h
 * Copyright (c) 2018, ZHAW
 * All rights reserved.
 */

#ifndef SERIAL_SERVER_H_
#define SERIAL_SERVER_H_

#include <cstdlib>
#include <string>
#include <mbed.h>
#include "IMU.h"
#include "Controller.h"

using namespace std;

/**
 * This class implements a communication server using a serial interface.
 */
class SerialServer {
    
    public:
        
                        SerialServer(Serial& serial, IMU& imu, Controller& controller);
        virtual         ~SerialServer();
        
    private:
        
        static const float  PERIOD;
        static const int    BUFFER_SIZE = 64;
        
        Serial&         serial;
        IMU&            imu;
        Controller&     controller;
        string          input;
        string          output;
        Ticker          ticker;
        
        void            receive();
        void            transmit();
};

#endif /* SERIAL_SERVER_H_ */