183 lines
3.6 KiB
C++
183 lines
3.6 KiB
C++
/*
|
|
* clientMessage.h
|
|
*
|
|
* Created on: Jan 16, 2019
|
|
* Author: emanuele
|
|
*/
|
|
|
|
#ifndef CLIENTMESSAGE_H_
|
|
#define CLIENTMESSAGE_H_
|
|
|
|
#include "packagetypes.h"
|
|
#include <string>
|
|
#include <arpa/inet.h>
|
|
#include <boost/endian/conversion.hpp>
|
|
|
|
namespace subpackage {
|
|
|
|
class clientSubpackage {
|
|
public:
|
|
clientSubpackage();
|
|
virtual ~clientSubpackage();
|
|
|
|
unsigned char* dataIn;
|
|
clientData_t* dataOut;
|
|
|
|
virtual uint32_t parse();
|
|
|
|
void copyString(std::string** out, unsigned char** in, char len);
|
|
uint32_t getUInt32(unsigned char** dataPointer);
|
|
uint64_t getUInt64(unsigned char** dataPointer);
|
|
int32_t getInt32(unsigned char** dataPointer);
|
|
double getDouble(unsigned char** dataPointer);
|
|
float getFloat(unsigned char** dataPointer);
|
|
char getChar(unsigned char** dataPointer);
|
|
unsigned char getUChar(unsigned char** dataPointer);
|
|
};
|
|
|
|
class robotModeSub: public clientSubpackage {
|
|
public:
|
|
robotModeSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~robotModeSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class jointDataSub: public clientSubpackage {
|
|
public:
|
|
jointDataSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~jointDataSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class cartesianInfoSub: public clientSubpackage {
|
|
public:
|
|
cartesianInfoSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~cartesianInfoSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class masterBoardSub: public clientSubpackage {
|
|
public:
|
|
masterBoardSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~masterBoardSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class toolDataSub: public clientSubpackage {
|
|
public:
|
|
toolDataSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~toolDataSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class kineInfoSub: public clientSubpackage {
|
|
public:
|
|
kineInfoSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~kineInfoSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class configurationSub: public clientSubpackage {
|
|
public:
|
|
configurationSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~configurationSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class forceModeSub: public clientSubpackage {
|
|
public:
|
|
forceModeSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~forceModeSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class additionalInfoSub: public clientSubpackage {
|
|
public:
|
|
additionalInfoSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~additionalInfoSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class calibrationSub: public clientSubpackage {
|
|
public:
|
|
calibrationSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~calibrationSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class toolComSub: public clientSubpackage {
|
|
public:
|
|
toolComSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~toolComSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class toolModeSub: public clientSubpackage {
|
|
public:
|
|
toolModeSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout;
|
|
};
|
|
virtual ~toolModeSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
class versionSub: public clientSubpackage {
|
|
public:
|
|
versionSub(unsigned char* din, clientData_t* dout) {
|
|
dataIn=din;
|
|
dataOut=dout; };
|
|
virtual ~versionSub();
|
|
|
|
uint32_t parse();
|
|
};
|
|
|
|
} /* namespace clientmessage */
|
|
|
|
#endif /* CLIENTMESSAGE_H_ */
|