Masterctrl/Sources/NetworkProtocol.h

60 lines
1.2 KiB
C++

#ifndef NETWORKPROTOCOL_H
#define NETWORKPROTOCOL_H
#include "GlobalDefine.h"
#include "ProtocolDefs.h"
#include "AbstractNetworkInterface.h"
class CNetworkProtocol
{
public:
CNetworkProtocol();
~CNetworkProtocol();
QByteArray GetTxPacket(unsigned char MessageID,unsigned char Flags,unsigned char *Data,int Size, unsigned char Address,unsigned char ID);
virtual int NewFrameReceived(QByteArray Frame) = 0;
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