00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
#ifndef PUSMemoryDumpH
00011
#define PUSMemoryDumpH
00012
00013
#include "../GeneralInclude/ForwardDeclarations.h"
00014
#include "../GeneralInclude/BasicTypes.h"
00015
#include "PUSTelemetryPacket.h"
00016
00065 class PUSMemoryDump :
public PUSTelemetryPacket {
00066
00067
protected:
00068
00072 struct MemBlockType {
00073
00077 TD_PUSMemData*
startAddress;
00078
00082 TD_PUSMemLength length;
00083
00087 unsigned short checksum;
00088 };
00089
00094 MemBlockType*
block;
00095
00099 TD_PUSNumberMemBlocks maxNumberBlocks;
00100
00104 TD_PUSNumberMemBlocks numberBlocks;
00105
00109 unsigned char*
data;
00110
00114 unsigned int tmPacketSize;
00115
00119 unsigned int maxNumberData;
00120
00124
static bool isChecksumRequired;
00125
00129 TD_PUSMemId memId;
00130
00131
public:
00132
00141
PUSMemoryDump(
void);
00142
00151
void setMaxNumberBlocks(TD_PUSNumberMemBlocks max);
00152
00158
TD_PUSNumberMemBlocks getMaxNumberBlocks() const;
00159
00169
void setNumberBlocks(TD_PUSNumberMemBlocks max);
00170
00176 TD_PUSNumberMemBlocks getNumberBlocks() const;
00177
00186
void setDumpBufferSize(
unsigned int max);
00187
00193
unsigned int getDumpBufferSize() const;
00194
00201 static
void setChecksumFlag(
bool checksumFlag);
00202
00207 static
bool isChecksumFlagSet();
00208
00220
void defineBlock(TD_PUSNumberMemBlocks i, TD_PUSMemData* start, TD_PUSMemLength length);
00221
00230 virtual
unsigned int getNumberOfBytes(
void);
00231
00246 virtual
unsigned char getUnsignedByte(
unsigned int n);
00247
00253 virtual
unsigned char* getStartAddress(
void);
00254
00261 virtual
bool isFastAcquisitionImplemented(
void);
00262
00273 TD_PUSMemData* getStartAddress(TD_PUSNumberMemBlocks i) const;
00274
00284 TD_PUSMemLength getLength(TD_PUSNumberMemBlocks i) const;
00285
00295
unsigned short getChecksum(TD_PUSNumberMemBlocks i) const;
00296
00303
void setMemoryId(TD_PUSMemId memId);
00304
00310 TD_PUSMemId getMemoryId();
00311
00318 virtual
bool isObjectConfigured(
void);
00319
00320 };
00321
00322 #endif