2.74

Fork of ExperimentServer by Patrick Wensing

ExperimentServer.h

Committer:
pwensing
Date:
2015-08-13
Revision:
5:195f5f47b56f
Parent:
0:85e387719efd
Child:
7:405d66abdedf

File content as of revision 5:195f5f47b56f:

#include "EthernetInterface.h"
#include "mbed.h"

#define _MAX_BUFFER_SIZE 200

typedef void (*p_handler)(float[]);

class ExperimentServer
{
public:
     /**
     * Constructor.
     *
     * Constructs an empty experiment server. Server objects require further
     * initialization before use.
     */
    ExperimentServer();
    
     /**
     *
     * Links a serial terminal with the server for debugging.
     *
     * @param terminal Serial terminal to be used for debug messages
     */
    void attachTerminal( Serial & terminal); 
    
    void init(const char * addr, const char * subnet, const char * host, unsigned int port);
    
    int getParams(float params[], int num_params);
    void sendData(float data_output[], int data_size);
    void setExperimentComplete();
    
private:
    
    void flushBuffer();
    
    EthernetInterface _eth;
    Endpoint _client;
    UDPSocket _server;
    Serial * _terminal;
    
    float _buffer[_MAX_BUFFER_SIZE];
    int _data_cnt;
};