Masterctrl/Sources/NetworkProtocol.h
Jean-François Martel a955ae9ea8 Dev...
2015-08-14 07:50:51 -04:00

59 lines
1.2 KiB
C++

#ifndef NETWORKPROTOCOL_H
#define NETWORKPROTOCOL_H
#include "GlobalDefine.h"
#include "ProtocolDefs.h"
#include "AbstractNetworkInterface.h"
class CNetworkProtocol
{
public:
CNetworkProtocol(CAbstractNetworkCommIF *Parent);
~CNetworkProtocol();
CAbstractNetworkCommIF *mParentHandle;
QByteArray GetTxPacket(unsigned char MessageID,unsigned char Flags,unsigned char *Data,int Size, unsigned char Address,unsigned char ID);
private:
void ResetRxStateMachine();
unsigned char CalcCRC(char *Buffer, int Size);
// int TxData(unsigned char MessageID,unsigned char Flags,unsigned char *Data,int Size, unsigned char Address,unsigned char ID);
void RxStateMachine(unsigned char Data);
//State Machine states
enum States
{
Initialization,
RxHeader,
RxID,
RxAdd,
RxMyID,
RxMyAddress,
RxFlags,
RxCMD,
RxSize1,
RxSize2,
RxData,
RxCRC
};
char *RxBuff;
char mRxData[MAX_MESSAGE_SIZE+10];
int RxState;
int RxSize;
char SenderID;
char SenderAddress;
int RxCmd;
int DataCnt;
int BufPtr;
unsigned char CRC;
unsigned char Flags;
unsigned char State;
};
#endif // NETWORKPROTOCOL_H