UvA NetCentric Computing listener

Dependencies:   AndroidAccessory Controls HBridge MotorController mbed

Fork of uva_nc by Jurgen Baas

NetCentricApp.h

Committer:
diepvriezer
Date:
2014-05-22
Revision:
0:0f9ceecf1db8
Child:
1:3cde55629b1d

File content as of revision 0:0f9ceecf1db8:

#ifndef __NETCENTRICAPP_H__
#define __NETCENTRICAPP_H__

#include "AndroidAccessory.h"
#include "mbed.h"
#include "MbedCommand.h"

#define READ_BUFF   2048
#define WRITE_BUFF  2048

#define NO_ERROR                    0
#define ERR_COMMAND_NOT_FOUND       1

#define COMMAND_SUM                 1
#define COMMAND_AVG                 2
#define COMMAND_LED                 3

class NetCentricApp : private AndroidAccessory {
    public:
        NetCentricApp():
            AndroidAccessory(READ_BUFF, WRITE_BUFF,
                                "ARM",
                                "mbed",
                                "mbed - NetCentric",
                                "0.2",
                                "http://www.uva.nl",
                                "0000000012345678")
            {};
        
    protected:
        virtual void setupDevice();
        virtual void resetDevice();
        virtual int callbackRead(u8 *buffer, int len);
        virtual int callbackWrite();
        
        MbedResponse *getResponse(MbedRequest *request);
    
    private:
        static float getFloat(u8 *buffer, int offset, int bufferLen);
        static int getInt(u8 *buffer, int offset, int bufferLen);
        static u8 getUByte(u8 *buffer, int offset, int bufferLen);
        
        MbedResponse *sumCommand(MbedRequest *request);
        MbedResponse *avgCommand(MbedRequest *request);
        MbedResponse *ledCommand(MbedRequest *request);
};

#endif