renormalized line endings
This commit is contained in:
@ -1,95 +1,95 @@
|
||||
#ifndef PLATFORM_TMTCSERVICES_TMSTOREBACKENDIF_H_
|
||||
#define PLATFORM_TMTCSERVICES_TMSTOREBACKENDIF_H_
|
||||
|
||||
#include "../returnvalues/HasReturnvaluesIF.h"
|
||||
#include "../objectmanager/SystemObjectIF.h"
|
||||
#include "../parameters/HasParametersIF.h"
|
||||
#include "../storagemanager/StorageManagerIF.h"
|
||||
#include "../timemanager/Clock.h"
|
||||
class TmPacketInformation;
|
||||
class TmPacketMinimal;
|
||||
class SpacePacketBase;
|
||||
class ApidSsc;
|
||||
|
||||
class TmStoreBackendIF : public HasParametersIF {
|
||||
public:
|
||||
static const uint8_t INTERFACE_ID = CLASS_ID::TM_STORE_BACKEND_IF;
|
||||
static const ReturnValue_t BUSY = MAKE_RETURN_CODE(1);
|
||||
static const ReturnValue_t FULL = MAKE_RETURN_CODE(2);
|
||||
static const ReturnValue_t EMPTY = MAKE_RETURN_CODE(3);
|
||||
static const ReturnValue_t NULL_REQUESTED = MAKE_RETURN_CODE(4);
|
||||
static const ReturnValue_t TOO_LARGE = MAKE_RETURN_CODE(5);
|
||||
static const ReturnValue_t NOT_READY = MAKE_RETURN_CODE(6);
|
||||
static const ReturnValue_t DUMP_ERROR = MAKE_RETURN_CODE(7);
|
||||
static const ReturnValue_t CRC_ERROR = MAKE_RETURN_CODE(8);
|
||||
static const ReturnValue_t TIMEOUT = MAKE_RETURN_CODE(9);
|
||||
static const ReturnValue_t IDLE_PACKET_FOUND = MAKE_RETURN_CODE(10);
|
||||
static const ReturnValue_t TELECOMMAND_FOUND = MAKE_RETURN_CODE(11);
|
||||
static const ReturnValue_t NO_PUS_A_TM = MAKE_RETURN_CODE(12);
|
||||
static const ReturnValue_t TOO_SMALL = MAKE_RETURN_CODE(13);
|
||||
static const ReturnValue_t BLOCK_NOT_FOUND = MAKE_RETURN_CODE(14);
|
||||
static const ReturnValue_t INVALID_REQUEST = MAKE_RETURN_CODE(15);
|
||||
|
||||
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::MEMORY;
|
||||
static const Event STORE_SEND_WRITE_FAILED = MAKE_EVENT(0, SEVERITY::LOW); //!< Initiating sending data to store failed. Low, par1: returnCode, par2: integer (debug info)
|
||||
static const Event STORE_WRITE_FAILED = MAKE_EVENT(1, SEVERITY::LOW); //!< Data was sent, but writing failed. Low, par1: returnCode, par2: 0
|
||||
static const Event STORE_SEND_READ_FAILED = MAKE_EVENT(2, SEVERITY::LOW); //!< Initiating reading data from store failed. Low, par1: returnCode, par2: 0
|
||||
static const Event STORE_READ_FAILED = MAKE_EVENT(3, SEVERITY::LOW); //!< Data was requested, but access failed. Low, par1: returnCode, par2: 0
|
||||
static const Event UNEXPECTED_MSG = MAKE_EVENT(4, SEVERITY::LOW); //!< An unexpected TM packet or data message occurred. Low, par1: 0, par2: integer (debug info)
|
||||
static const Event STORING_FAILED = MAKE_EVENT(5, SEVERITY::LOW); //!< Storing data failed. May simply be a full store. Low, par1: returnCode, par2: integer (sequence count of failed packet).
|
||||
static const Event TM_DUMP_FAILED = MAKE_EVENT(6, SEVERITY::LOW); //!< Dumping retrieved data failed. Low, par1: returnCode, par2: integer (sequence count of failed packet).
|
||||
static const Event STORE_INIT_FAILED = MAKE_EVENT(7, SEVERITY::LOW); //!< Corrupted init data or read error. Low, par1: returnCode, par2: integer (debug info)
|
||||
static const Event STORE_INIT_EMPTY = MAKE_EVENT(8, SEVERITY::INFO); //!< Store was not initialized. Starts empty. Info, parameters both zero.
|
||||
static const Event STORE_CONTENT_CORRUPTED = MAKE_EVENT(9, SEVERITY::LOW); //!< Data was read out, but it is inconsistent. Low par1: Memory address of corruption, par2: integer (debug info)
|
||||
static const Event STORE_INITIALIZE = MAKE_EVENT(10, SEVERITY::INFO); //!< Info event indicating the store will be initialized, either at boot or after IOB switch. Info. pars: 0
|
||||
static const Event INIT_DONE = MAKE_EVENT(11, SEVERITY::INFO); //!< Info event indicating the store was successfully initialized, either at boot or after IOB switch. Info. pars: 0
|
||||
static const Event DUMP_FINISHED = MAKE_EVENT(12, SEVERITY::INFO); //!< Info event indicating that dumping finished successfully. par1: Number of dumped packets. par2: APID/SSC (16bits each)
|
||||
static const Event DELETION_FINISHED = MAKE_EVENT(13, SEVERITY::INFO); //!< Info event indicating that deletion finished successfully. par1: Number of deleted packets. par2: APID/SSC (16bits each)
|
||||
static const Event DELETION_FAILED = MAKE_EVENT(14, SEVERITY::LOW); //!< Info event indicating that something went wrong during deletion. pars: 0
|
||||
static const Event AUTO_CATALOGS_SENDING_FAILED = MAKE_EVENT(15, SEVERITY::INFO);//!< Info that the a auto catalog report failed
|
||||
|
||||
virtual ~TmStoreBackendIF() {}
|
||||
|
||||
/**
|
||||
* What do I need to implement here ?
|
||||
* @param opCode
|
||||
* @return
|
||||
*/
|
||||
virtual ReturnValue_t performOperation(uint8_t opCode) = 0;
|
||||
virtual ReturnValue_t initialize() = 0;
|
||||
|
||||
/**
|
||||
* Implement the storage of TM packets to mass memory
|
||||
* @param tmPacket
|
||||
* @return
|
||||
*/
|
||||
virtual ReturnValue_t storePacket(TmPacketMinimal* tmPacket) = 0;
|
||||
virtual ReturnValue_t setFetchLimitTime(const timeval* loverLimit, const timeval* upperLimit) = 0;
|
||||
virtual ReturnValue_t setFetchLimitBlocks(uint32_t startAddress, uint32_t endAddress) = 0;
|
||||
virtual ReturnValue_t fetchPackets(bool fromBegin = false) = 0;
|
||||
virtual ReturnValue_t initializeStore(object_id_t dumpTarget) = 0;
|
||||
virtual ReturnValue_t dumpIndex(store_address_t* storeId) = 0;
|
||||
|
||||
/**
|
||||
* TODO: Adapt for file management system?
|
||||
* @param startAddress
|
||||
* @param endAddress
|
||||
* @return
|
||||
*/
|
||||
virtual ReturnValue_t deleteBlocks(uint32_t startAddress, uint32_t endAddress) = 0;
|
||||
virtual ReturnValue_t deleteTime(const timeval* timeUntil,
|
||||
uint32_t* deletedPackets) = 0;
|
||||
virtual void resetStore(bool clearStore, bool resetWrite, bool resetRead) = 0;
|
||||
virtual bool isReady() = 0;
|
||||
virtual uint32_t availableData() = 0;
|
||||
virtual float getPercentageFilled() const = 0;
|
||||
virtual uint32_t getStoredPacketsCount() const = 0;
|
||||
virtual TmPacketInformation* getOldestPacket() = 0;
|
||||
virtual TmPacketInformation* getYoungestPacket() = 0;
|
||||
virtual float getDataRate() = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* PLATFORM_TMTCSERVICES_TMSTOREBACKENDIF_H_ */
|
||||
#ifndef PLATFORM_TMTCSERVICES_TMSTOREBACKENDIF_H_
|
||||
#define PLATFORM_TMTCSERVICES_TMSTOREBACKENDIF_H_
|
||||
|
||||
#include "../returnvalues/HasReturnvaluesIF.h"
|
||||
#include "../objectmanager/SystemObjectIF.h"
|
||||
#include "../parameters/HasParametersIF.h"
|
||||
#include "../storagemanager/StorageManagerIF.h"
|
||||
#include "../timemanager/Clock.h"
|
||||
class TmPacketInformation;
|
||||
class TmPacketMinimal;
|
||||
class SpacePacketBase;
|
||||
class ApidSsc;
|
||||
|
||||
class TmStoreBackendIF : public HasParametersIF {
|
||||
public:
|
||||
static const uint8_t INTERFACE_ID = CLASS_ID::TM_STORE_BACKEND_IF;
|
||||
static const ReturnValue_t BUSY = MAKE_RETURN_CODE(1);
|
||||
static const ReturnValue_t FULL = MAKE_RETURN_CODE(2);
|
||||
static const ReturnValue_t EMPTY = MAKE_RETURN_CODE(3);
|
||||
static const ReturnValue_t NULL_REQUESTED = MAKE_RETURN_CODE(4);
|
||||
static const ReturnValue_t TOO_LARGE = MAKE_RETURN_CODE(5);
|
||||
static const ReturnValue_t NOT_READY = MAKE_RETURN_CODE(6);
|
||||
static const ReturnValue_t DUMP_ERROR = MAKE_RETURN_CODE(7);
|
||||
static const ReturnValue_t CRC_ERROR = MAKE_RETURN_CODE(8);
|
||||
static const ReturnValue_t TIMEOUT = MAKE_RETURN_CODE(9);
|
||||
static const ReturnValue_t IDLE_PACKET_FOUND = MAKE_RETURN_CODE(10);
|
||||
static const ReturnValue_t TELECOMMAND_FOUND = MAKE_RETURN_CODE(11);
|
||||
static const ReturnValue_t NO_PUS_A_TM = MAKE_RETURN_CODE(12);
|
||||
static const ReturnValue_t TOO_SMALL = MAKE_RETURN_CODE(13);
|
||||
static const ReturnValue_t BLOCK_NOT_FOUND = MAKE_RETURN_CODE(14);
|
||||
static const ReturnValue_t INVALID_REQUEST = MAKE_RETURN_CODE(15);
|
||||
|
||||
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::MEMORY;
|
||||
static const Event STORE_SEND_WRITE_FAILED = MAKE_EVENT(0, SEVERITY::LOW); //!< Initiating sending data to store failed. Low, par1: returnCode, par2: integer (debug info)
|
||||
static const Event STORE_WRITE_FAILED = MAKE_EVENT(1, SEVERITY::LOW); //!< Data was sent, but writing failed. Low, par1: returnCode, par2: 0
|
||||
static const Event STORE_SEND_READ_FAILED = MAKE_EVENT(2, SEVERITY::LOW); //!< Initiating reading data from store failed. Low, par1: returnCode, par2: 0
|
||||
static const Event STORE_READ_FAILED = MAKE_EVENT(3, SEVERITY::LOW); //!< Data was requested, but access failed. Low, par1: returnCode, par2: 0
|
||||
static const Event UNEXPECTED_MSG = MAKE_EVENT(4, SEVERITY::LOW); //!< An unexpected TM packet or data message occurred. Low, par1: 0, par2: integer (debug info)
|
||||
static const Event STORING_FAILED = MAKE_EVENT(5, SEVERITY::LOW); //!< Storing data failed. May simply be a full store. Low, par1: returnCode, par2: integer (sequence count of failed packet).
|
||||
static const Event TM_DUMP_FAILED = MAKE_EVENT(6, SEVERITY::LOW); //!< Dumping retrieved data failed. Low, par1: returnCode, par2: integer (sequence count of failed packet).
|
||||
static const Event STORE_INIT_FAILED = MAKE_EVENT(7, SEVERITY::LOW); //!< Corrupted init data or read error. Low, par1: returnCode, par2: integer (debug info)
|
||||
static const Event STORE_INIT_EMPTY = MAKE_EVENT(8, SEVERITY::INFO); //!< Store was not initialized. Starts empty. Info, parameters both zero.
|
||||
static const Event STORE_CONTENT_CORRUPTED = MAKE_EVENT(9, SEVERITY::LOW); //!< Data was read out, but it is inconsistent. Low par1: Memory address of corruption, par2: integer (debug info)
|
||||
static const Event STORE_INITIALIZE = MAKE_EVENT(10, SEVERITY::INFO); //!< Info event indicating the store will be initialized, either at boot or after IOB switch. Info. pars: 0
|
||||
static const Event INIT_DONE = MAKE_EVENT(11, SEVERITY::INFO); //!< Info event indicating the store was successfully initialized, either at boot or after IOB switch. Info. pars: 0
|
||||
static const Event DUMP_FINISHED = MAKE_EVENT(12, SEVERITY::INFO); //!< Info event indicating that dumping finished successfully. par1: Number of dumped packets. par2: APID/SSC (16bits each)
|
||||
static const Event DELETION_FINISHED = MAKE_EVENT(13, SEVERITY::INFO); //!< Info event indicating that deletion finished successfully. par1: Number of deleted packets. par2: APID/SSC (16bits each)
|
||||
static const Event DELETION_FAILED = MAKE_EVENT(14, SEVERITY::LOW); //!< Info event indicating that something went wrong during deletion. pars: 0
|
||||
static const Event AUTO_CATALOGS_SENDING_FAILED = MAKE_EVENT(15, SEVERITY::INFO);//!< Info that the a auto catalog report failed
|
||||
|
||||
virtual ~TmStoreBackendIF() {}
|
||||
|
||||
/**
|
||||
* What do I need to implement here ?
|
||||
* @param opCode
|
||||
* @return
|
||||
*/
|
||||
virtual ReturnValue_t performOperation(uint8_t opCode) = 0;
|
||||
virtual ReturnValue_t initialize() = 0;
|
||||
|
||||
/**
|
||||
* Implement the storage of TM packets to mass memory
|
||||
* @param tmPacket
|
||||
* @return
|
||||
*/
|
||||
virtual ReturnValue_t storePacket(TmPacketMinimal* tmPacket) = 0;
|
||||
virtual ReturnValue_t setFetchLimitTime(const timeval* loverLimit, const timeval* upperLimit) = 0;
|
||||
virtual ReturnValue_t setFetchLimitBlocks(uint32_t startAddress, uint32_t endAddress) = 0;
|
||||
virtual ReturnValue_t fetchPackets(bool fromBegin = false) = 0;
|
||||
virtual ReturnValue_t initializeStore(object_id_t dumpTarget) = 0;
|
||||
virtual ReturnValue_t dumpIndex(store_address_t* storeId) = 0;
|
||||
|
||||
/**
|
||||
* TODO: Adapt for file management system?
|
||||
* @param startAddress
|
||||
* @param endAddress
|
||||
* @return
|
||||
*/
|
||||
virtual ReturnValue_t deleteBlocks(uint32_t startAddress, uint32_t endAddress) = 0;
|
||||
virtual ReturnValue_t deleteTime(const timeval* timeUntil,
|
||||
uint32_t* deletedPackets) = 0;
|
||||
virtual void resetStore(bool clearStore, bool resetWrite, bool resetRead) = 0;
|
||||
virtual bool isReady() = 0;
|
||||
virtual uint32_t availableData() = 0;
|
||||
virtual float getPercentageFilled() const = 0;
|
||||
virtual uint32_t getStoredPacketsCount() const = 0;
|
||||
virtual TmPacketInformation* getOldestPacket() = 0;
|
||||
virtual TmPacketInformation* getYoungestPacket() = 0;
|
||||
virtual float getDataRate() = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* PLATFORM_TMTCSERVICES_TMSTOREBACKENDIF_H_ */
|
||||
|
@ -1,63 +1,63 @@
|
||||
#ifndef PLATFORM_TMTCSERVICES_TMSTOREFRONTENDIF_H_
|
||||
#define PLATFORM_TMTCSERVICES_TMSTOREFRONTENDIF_H_
|
||||
|
||||
#include "../returnvalues/HasReturnvaluesIF.h"
|
||||
#include "../tmstorage/TmStorePackets.h"
|
||||
#include "../ipc/MessageQueueSenderIF.h"
|
||||
class TmPacketMinimal;
|
||||
class SpacePacketBase;
|
||||
class TmStoreBackendIF;
|
||||
|
||||
class TmStoreFrontendIF {
|
||||
public:
|
||||
virtual TmStoreBackendIF* getBackend() const = 0;
|
||||
|
||||
/**
|
||||
* What do I need to implement here?
|
||||
* This is propably used by PUS Service 15 so we should propably check for messages..
|
||||
* Provide base implementation?
|
||||
* @param opCode
|
||||
* @return
|
||||
*/
|
||||
virtual ReturnValue_t performOperation(uint8_t opCode) = 0;
|
||||
/**
|
||||
* Callback from the back-end to indicate a certain packet was received.
|
||||
* front-end takes care of discarding/downloading the packet.
|
||||
* @param packet Pointer to the newly received Space Packet.
|
||||
* @param address Start address of the packet found
|
||||
* @param isLastPacket Indicates if no more packets can be fetched.
|
||||
* @return If more packets shall be fetched, RETURN_OK must be returned.
|
||||
* Any other code stops fetching packets.
|
||||
*/
|
||||
virtual ReturnValue_t packetRetrieved(TmPacketMinimal* packet, uint32_t address) = 0;
|
||||
virtual void noMorePacketsInStore() = 0;
|
||||
virtual void handleRetrievalFailed(ReturnValue_t errorCode, uint32_t parameter1 = 0, uint32_t parameter2 = 0) = 0;
|
||||
/**
|
||||
* To get the queue where commands shall be sent.
|
||||
* @return Id of command queue.
|
||||
*/
|
||||
virtual MessageQueueId_t getCommandQueue() const = 0;
|
||||
virtual ReturnValue_t fetchPackets(ApidSsc start, ApidSsc end) = 0;
|
||||
virtual ReturnValue_t deletePackets(ApidSsc upTo) = 0;
|
||||
virtual ReturnValue_t checkPacket(SpacePacketBase* tmPacket) = 0;
|
||||
virtual bool isEnabled() const = 0;
|
||||
virtual void setEnabled(bool enabled) = 0;
|
||||
virtual void resetDownlinkedPacketCount() = 0;
|
||||
virtual ReturnValue_t setDumpTarget(object_id_t dumpTarget) = 0;
|
||||
static const uint8_t INTERFACE_ID = CLASS_ID::TM_STORE_FRONTEND_IF;
|
||||
static const ReturnValue_t BUSY = MAKE_RETURN_CODE(1);
|
||||
static const ReturnValue_t LAST_PACKET_FOUND = MAKE_RETURN_CODE(2);
|
||||
static const ReturnValue_t STOP_FETCH = MAKE_RETURN_CODE(3);
|
||||
static const ReturnValue_t TIMEOUT = MAKE_RETURN_CODE(4);
|
||||
static const ReturnValue_t TM_CHANNEL_FULL = MAKE_RETURN_CODE(5);
|
||||
static const ReturnValue_t NOT_STORED = MAKE_RETURN_CODE(6);
|
||||
static const ReturnValue_t ALL_DELETED = MAKE_RETURN_CODE(7);
|
||||
static const ReturnValue_t INVALID_DATA = MAKE_RETURN_CODE(8);
|
||||
static const ReturnValue_t NOT_READY = MAKE_RETURN_CODE(9);
|
||||
virtual ~TmStoreFrontendIF() {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* PLATFORM_TMTCSERVICES_TMSTOREFRONTENDIF_H_ */
|
||||
#ifndef PLATFORM_TMTCSERVICES_TMSTOREFRONTENDIF_H_
|
||||
#define PLATFORM_TMTCSERVICES_TMSTOREFRONTENDIF_H_
|
||||
|
||||
#include "../returnvalues/HasReturnvaluesIF.h"
|
||||
#include "../tmstorage/TmStorePackets.h"
|
||||
#include "../ipc/MessageQueueSenderIF.h"
|
||||
class TmPacketMinimal;
|
||||
class SpacePacketBase;
|
||||
class TmStoreBackendIF;
|
||||
|
||||
class TmStoreFrontendIF {
|
||||
public:
|
||||
virtual TmStoreBackendIF* getBackend() const = 0;
|
||||
|
||||
/**
|
||||
* What do I need to implement here?
|
||||
* This is propably used by PUS Service 15 so we should propably check for messages..
|
||||
* Provide base implementation?
|
||||
* @param opCode
|
||||
* @return
|
||||
*/
|
||||
virtual ReturnValue_t performOperation(uint8_t opCode) = 0;
|
||||
/**
|
||||
* Callback from the back-end to indicate a certain packet was received.
|
||||
* front-end takes care of discarding/downloading the packet.
|
||||
* @param packet Pointer to the newly received Space Packet.
|
||||
* @param address Start address of the packet found
|
||||
* @param isLastPacket Indicates if no more packets can be fetched.
|
||||
* @return If more packets shall be fetched, RETURN_OK must be returned.
|
||||
* Any other code stops fetching packets.
|
||||
*/
|
||||
virtual ReturnValue_t packetRetrieved(TmPacketMinimal* packet, uint32_t address) = 0;
|
||||
virtual void noMorePacketsInStore() = 0;
|
||||
virtual void handleRetrievalFailed(ReturnValue_t errorCode, uint32_t parameter1 = 0, uint32_t parameter2 = 0) = 0;
|
||||
/**
|
||||
* To get the queue where commands shall be sent.
|
||||
* @return Id of command queue.
|
||||
*/
|
||||
virtual MessageQueueId_t getCommandQueue() const = 0;
|
||||
virtual ReturnValue_t fetchPackets(ApidSsc start, ApidSsc end) = 0;
|
||||
virtual ReturnValue_t deletePackets(ApidSsc upTo) = 0;
|
||||
virtual ReturnValue_t checkPacket(SpacePacketBase* tmPacket) = 0;
|
||||
virtual bool isEnabled() const = 0;
|
||||
virtual void setEnabled(bool enabled) = 0;
|
||||
virtual void resetDownlinkedPacketCount() = 0;
|
||||
virtual ReturnValue_t setDumpTarget(object_id_t dumpTarget) = 0;
|
||||
static const uint8_t INTERFACE_ID = CLASS_ID::TM_STORE_FRONTEND_IF;
|
||||
static const ReturnValue_t BUSY = MAKE_RETURN_CODE(1);
|
||||
static const ReturnValue_t LAST_PACKET_FOUND = MAKE_RETURN_CODE(2);
|
||||
static const ReturnValue_t STOP_FETCH = MAKE_RETURN_CODE(3);
|
||||
static const ReturnValue_t TIMEOUT = MAKE_RETURN_CODE(4);
|
||||
static const ReturnValue_t TM_CHANNEL_FULL = MAKE_RETURN_CODE(5);
|
||||
static const ReturnValue_t NOT_STORED = MAKE_RETURN_CODE(6);
|
||||
static const ReturnValue_t ALL_DELETED = MAKE_RETURN_CODE(7);
|
||||
static const ReturnValue_t INVALID_DATA = MAKE_RETURN_CODE(8);
|
||||
static const ReturnValue_t NOT_READY = MAKE_RETURN_CODE(9);
|
||||
virtual ~TmStoreFrontendIF() {
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* PLATFORM_TMTCSERVICES_TMSTOREFRONTENDIF_H_ */
|
||||
|
@ -1,165 +1,165 @@
|
||||
#include "../objectmanager/ObjectManagerIF.h"
|
||||
#include "../tmstorage/TmStoreMessage.h"
|
||||
|
||||
TmStoreMessage::~TmStoreMessage() {
|
||||
|
||||
}
|
||||
|
||||
TmStoreMessage::TmStoreMessage() {
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setEnableStoringMessage(CommandMessage* cmd,
|
||||
bool setEnabled) {
|
||||
cmd->setCommand(ENABLE_STORING);
|
||||
cmd->setParameter(setEnabled);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setDeleteContentMessage(CommandMessage* cmd,
|
||||
ApidSsc upTo) {
|
||||
cmd->setCommand(DELETE_STORE_CONTENT);
|
||||
cmd->setParameter((upTo.apid<<16) + upTo.ssc);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setDownlinkContentMessage(CommandMessage* cmd,
|
||||
ApidSsc fromPacket,
|
||||
ApidSsc toPacket) {
|
||||
cmd->setCommand(DOWNLINK_STORE_CONTENT);
|
||||
cmd->setParameter((fromPacket.apid<<16) + fromPacket.ssc);
|
||||
cmd->setParameter2((toPacket.apid<<16) + toPacket.ssc);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ApidSsc TmStoreMessage::getPacketId1(CommandMessage* cmd) {
|
||||
ApidSsc temp;
|
||||
temp.apid = (cmd->getParameter() >> 16) & 0xFFFF;
|
||||
temp.ssc = cmd->getParameter() & 0xFFFF;
|
||||
return temp;
|
||||
}
|
||||
|
||||
ApidSsc TmStoreMessage::getPacketId2(CommandMessage* cmd) {
|
||||
ApidSsc temp;
|
||||
temp.apid = (cmd->getParameter2() >> 16) & 0xFFFF;
|
||||
temp.ssc = cmd->getParameter2() & 0xFFFF;
|
||||
return temp;
|
||||
}
|
||||
|
||||
bool TmStoreMessage::getEnableStoring(CommandMessage* cmd) {
|
||||
return (bool)cmd->getParameter();
|
||||
}
|
||||
|
||||
void TmStoreMessage::setChangeSelectionDefinitionMessage(
|
||||
CommandMessage* cmd, bool addDefinition, store_address_t store_id) {
|
||||
cmd->setCommand(CHANGE_SELECTION_DEFINITION);
|
||||
cmd->setParameter(addDefinition);
|
||||
cmd->setParameter2(store_id.raw);
|
||||
}
|
||||
|
||||
void TmStoreMessage::clear(CommandMessage* cmd) {
|
||||
switch(cmd->getCommand()) {
|
||||
case SELECTION_DEFINITION_REPORT:
|
||||
case STORE_CATALOGUE_REPORT:
|
||||
case CHANGE_SELECTION_DEFINITION:
|
||||
case INDEX_REPORT:
|
||||
case DELETE_STORE_CONTENT_TIME:
|
||||
case DOWNLINK_STORE_CONTENT_TIME: {
|
||||
StorageManagerIF *ipcStore = objectManager->get<StorageManagerIF>(
|
||||
objects::IPC_STORE);
|
||||
if (ipcStore != NULL) {
|
||||
ipcStore->deleteData(getStoreId(cmd));
|
||||
}
|
||||
}
|
||||
/* NO BREAK falls through*/
|
||||
case DELETE_STORE_CONTENT_BLOCKS:
|
||||
case DOWNLINK_STORE_CONTENT_BLOCKS:
|
||||
case REPORT_INDEX_REQUEST:
|
||||
cmd->setCommand(CommandMessage::UNKNOWN_COMMAND);
|
||||
cmd->setParameter(0);
|
||||
cmd->setParameter2(0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
store_address_t TmStoreMessage::getStoreId(const CommandMessage* cmd) {
|
||||
store_address_t temp;
|
||||
temp.raw = cmd->getParameter2();
|
||||
return temp;
|
||||
}
|
||||
|
||||
bool TmStoreMessage::getAddToSelection(CommandMessage* cmd) {
|
||||
return (bool)cmd->getParameter();
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setReportSelectionDefinitionMessage(
|
||||
CommandMessage* cmd) {
|
||||
cmd->setCommand(REPORT_SELECTION_DEFINITION);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
void TmStoreMessage::setSelectionDefinitionReportMessage(
|
||||
CommandMessage* cmd, store_address_t storeId) {
|
||||
cmd->setCommand(SELECTION_DEFINITION_REPORT);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setReportStoreCatalogueMessage(
|
||||
CommandMessage* cmd) {
|
||||
cmd->setCommand(REPORT_STORE_CATALOGUE);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
void TmStoreMessage::setStoreCatalogueReportMessage(CommandMessage* cmd, object_id_t objectId,
|
||||
store_address_t storeId) {
|
||||
cmd->setCommand(STORE_CATALOGUE_REPORT);
|
||||
cmd->setParameter(objectId);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
|
||||
object_id_t TmStoreMessage::getObjectId(CommandMessage* cmd) {
|
||||
return cmd->getParameter();
|
||||
}
|
||||
|
||||
void TmStoreMessage::setDownlinkContentTimeMessage(CommandMessage* cmd,
|
||||
store_address_t storeId) {
|
||||
cmd->setCommand(DOWNLINK_STORE_CONTENT_TIME);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
|
||||
uint32_t TmStoreMessage::getAddressLow(CommandMessage* cmd){
|
||||
return cmd->getParameter();
|
||||
}
|
||||
uint32_t TmStoreMessage::getAddressHigh(CommandMessage* cmd){
|
||||
return cmd->getParameter2();
|
||||
}
|
||||
|
||||
void TmStoreMessage::setDeleteContentTimeMessage(CommandMessage* cmd,
|
||||
store_address_t storeId) {
|
||||
cmd->setCommand(DELETE_STORE_CONTENT_TIME);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setDeleteBlocksMessage(CommandMessage* cmd, uint32_t addressLow, uint32_t addressHigh){
|
||||
cmd->setCommand(DELETE_STORE_CONTENT_BLOCKS);
|
||||
cmd->setParameter(addressLow);
|
||||
cmd->setParameter2(addressHigh);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
ReturnValue_t TmStoreMessage::setDownlinkBlocksMessage(CommandMessage* cmd, uint32_t addressLow, uint32_t addressHigh){
|
||||
cmd->setCommand(DOWNLINK_STORE_CONTENT_BLOCKS);
|
||||
cmd->setParameter(addressLow);
|
||||
cmd->setParameter2(addressHigh);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
ReturnValue_t TmStoreMessage::setIndexRequestMessage(CommandMessage* cmd){
|
||||
cmd->setCommand(REPORT_INDEX_REQUEST);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
void TmStoreMessage::setIndexReportMessage(CommandMessage* cmd, store_address_t storeId){
|
||||
cmd->setCommand(INDEX_REPORT);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
#include "../objectmanager/ObjectManagerIF.h"
|
||||
#include "../tmstorage/TmStoreMessage.h"
|
||||
|
||||
TmStoreMessage::~TmStoreMessage() {
|
||||
|
||||
}
|
||||
|
||||
TmStoreMessage::TmStoreMessage() {
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setEnableStoringMessage(CommandMessage* cmd,
|
||||
bool setEnabled) {
|
||||
cmd->setCommand(ENABLE_STORING);
|
||||
cmd->setParameter(setEnabled);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setDeleteContentMessage(CommandMessage* cmd,
|
||||
ApidSsc upTo) {
|
||||
cmd->setCommand(DELETE_STORE_CONTENT);
|
||||
cmd->setParameter((upTo.apid<<16) + upTo.ssc);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setDownlinkContentMessage(CommandMessage* cmd,
|
||||
ApidSsc fromPacket,
|
||||
ApidSsc toPacket) {
|
||||
cmd->setCommand(DOWNLINK_STORE_CONTENT);
|
||||
cmd->setParameter((fromPacket.apid<<16) + fromPacket.ssc);
|
||||
cmd->setParameter2((toPacket.apid<<16) + toPacket.ssc);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ApidSsc TmStoreMessage::getPacketId1(CommandMessage* cmd) {
|
||||
ApidSsc temp;
|
||||
temp.apid = (cmd->getParameter() >> 16) & 0xFFFF;
|
||||
temp.ssc = cmd->getParameter() & 0xFFFF;
|
||||
return temp;
|
||||
}
|
||||
|
||||
ApidSsc TmStoreMessage::getPacketId2(CommandMessage* cmd) {
|
||||
ApidSsc temp;
|
||||
temp.apid = (cmd->getParameter2() >> 16) & 0xFFFF;
|
||||
temp.ssc = cmd->getParameter2() & 0xFFFF;
|
||||
return temp;
|
||||
}
|
||||
|
||||
bool TmStoreMessage::getEnableStoring(CommandMessage* cmd) {
|
||||
return (bool)cmd->getParameter();
|
||||
}
|
||||
|
||||
void TmStoreMessage::setChangeSelectionDefinitionMessage(
|
||||
CommandMessage* cmd, bool addDefinition, store_address_t store_id) {
|
||||
cmd->setCommand(CHANGE_SELECTION_DEFINITION);
|
||||
cmd->setParameter(addDefinition);
|
||||
cmd->setParameter2(store_id.raw);
|
||||
}
|
||||
|
||||
void TmStoreMessage::clear(CommandMessage* cmd) {
|
||||
switch(cmd->getCommand()) {
|
||||
case SELECTION_DEFINITION_REPORT:
|
||||
case STORE_CATALOGUE_REPORT:
|
||||
case CHANGE_SELECTION_DEFINITION:
|
||||
case INDEX_REPORT:
|
||||
case DELETE_STORE_CONTENT_TIME:
|
||||
case DOWNLINK_STORE_CONTENT_TIME: {
|
||||
StorageManagerIF *ipcStore = objectManager->get<StorageManagerIF>(
|
||||
objects::IPC_STORE);
|
||||
if (ipcStore != NULL) {
|
||||
ipcStore->deleteData(getStoreId(cmd));
|
||||
}
|
||||
}
|
||||
/* NO BREAK falls through*/
|
||||
case DELETE_STORE_CONTENT_BLOCKS:
|
||||
case DOWNLINK_STORE_CONTENT_BLOCKS:
|
||||
case REPORT_INDEX_REQUEST:
|
||||
cmd->setCommand(CommandMessage::UNKNOWN_COMMAND);
|
||||
cmd->setParameter(0);
|
||||
cmd->setParameter2(0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
store_address_t TmStoreMessage::getStoreId(const CommandMessage* cmd) {
|
||||
store_address_t temp;
|
||||
temp.raw = cmd->getParameter2();
|
||||
return temp;
|
||||
}
|
||||
|
||||
bool TmStoreMessage::getAddToSelection(CommandMessage* cmd) {
|
||||
return (bool)cmd->getParameter();
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setReportSelectionDefinitionMessage(
|
||||
CommandMessage* cmd) {
|
||||
cmd->setCommand(REPORT_SELECTION_DEFINITION);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
void TmStoreMessage::setSelectionDefinitionReportMessage(
|
||||
CommandMessage* cmd, store_address_t storeId) {
|
||||
cmd->setCommand(SELECTION_DEFINITION_REPORT);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setReportStoreCatalogueMessage(
|
||||
CommandMessage* cmd) {
|
||||
cmd->setCommand(REPORT_STORE_CATALOGUE);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
void TmStoreMessage::setStoreCatalogueReportMessage(CommandMessage* cmd, object_id_t objectId,
|
||||
store_address_t storeId) {
|
||||
cmd->setCommand(STORE_CATALOGUE_REPORT);
|
||||
cmd->setParameter(objectId);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
|
||||
object_id_t TmStoreMessage::getObjectId(CommandMessage* cmd) {
|
||||
return cmd->getParameter();
|
||||
}
|
||||
|
||||
void TmStoreMessage::setDownlinkContentTimeMessage(CommandMessage* cmd,
|
||||
store_address_t storeId) {
|
||||
cmd->setCommand(DOWNLINK_STORE_CONTENT_TIME);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
|
||||
uint32_t TmStoreMessage::getAddressLow(CommandMessage* cmd){
|
||||
return cmd->getParameter();
|
||||
}
|
||||
uint32_t TmStoreMessage::getAddressHigh(CommandMessage* cmd){
|
||||
return cmd->getParameter2();
|
||||
}
|
||||
|
||||
void TmStoreMessage::setDeleteContentTimeMessage(CommandMessage* cmd,
|
||||
store_address_t storeId) {
|
||||
cmd->setCommand(DELETE_STORE_CONTENT_TIME);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
|
||||
ReturnValue_t TmStoreMessage::setDeleteBlocksMessage(CommandMessage* cmd, uint32_t addressLow, uint32_t addressHigh){
|
||||
cmd->setCommand(DELETE_STORE_CONTENT_BLOCKS);
|
||||
cmd->setParameter(addressLow);
|
||||
cmd->setParameter2(addressHigh);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
ReturnValue_t TmStoreMessage::setDownlinkBlocksMessage(CommandMessage* cmd, uint32_t addressLow, uint32_t addressHigh){
|
||||
cmd->setCommand(DOWNLINK_STORE_CONTENT_BLOCKS);
|
||||
cmd->setParameter(addressLow);
|
||||
cmd->setParameter2(addressHigh);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
ReturnValue_t TmStoreMessage::setIndexRequestMessage(CommandMessage* cmd){
|
||||
cmd->setCommand(REPORT_INDEX_REQUEST);
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
|
||||
void TmStoreMessage::setIndexReportMessage(CommandMessage* cmd, store_address_t storeId){
|
||||
cmd->setCommand(INDEX_REPORT);
|
||||
cmd->setParameter2(storeId.raw);
|
||||
}
|
||||
|
@ -1,63 +1,63 @@
|
||||
#ifndef FRAMEWORK_TMSTORAGE_TMSTOREMESSAGE_H_
|
||||
#define FRAMEWORK_TMSTORAGE_TMSTOREMESSAGE_H_
|
||||
|
||||
#include "../ipc/CommandMessage.h"
|
||||
#include "../storagemanager/StorageManagerIF.h"
|
||||
#include "../tmstorage/TmStorePackets.h"
|
||||
#include "../objectmanager/SystemObjectIF.h"
|
||||
class TmStoreMessage {
|
||||
public:
|
||||
static ReturnValue_t setEnableStoringMessage(CommandMessage* cmd,
|
||||
bool setEnabled);
|
||||
static ReturnValue_t setDeleteContentMessage(CommandMessage* cmd,
|
||||
ApidSsc upTo);
|
||||
static ReturnValue_t setDownlinkContentMessage(CommandMessage* cmd,
|
||||
ApidSsc fromPacket, ApidSsc toPacket);
|
||||
static void setChangeSelectionDefinitionMessage(CommandMessage* cmd,
|
||||
bool addDefinition, store_address_t store_id);
|
||||
static ReturnValue_t setReportSelectionDefinitionMessage(
|
||||
CommandMessage* cmd);
|
||||
static void setSelectionDefinitionReportMessage(CommandMessage* cmd,
|
||||
store_address_t storeId);
|
||||
static ReturnValue_t setReportStoreCatalogueMessage(CommandMessage* cmd);
|
||||
static void setStoreCatalogueReportMessage(CommandMessage* cmd, object_id_t objectId,
|
||||
store_address_t storeId);
|
||||
static void setDownlinkContentTimeMessage(CommandMessage* cmd,
|
||||
store_address_t storeId);
|
||||
static void setIndexReportMessage(CommandMessage* cmd, store_address_t storeId);
|
||||
static ReturnValue_t setDeleteBlocksMessage(CommandMessage* cmd, uint32_t addressLow, uint32_t addressHigh);
|
||||
static ReturnValue_t setDownlinkBlocksMessage(CommandMessage* cmd, uint32_t addressLow, uint32_t addressHigh);
|
||||
static ReturnValue_t setIndexRequestMessage(CommandMessage* cmd);
|
||||
static void setDeleteContentTimeMessage(CommandMessage* cmd,
|
||||
store_address_t storeId);
|
||||
static void clear(CommandMessage* cmd);
|
||||
static object_id_t getObjectId(CommandMessage* cmd);
|
||||
static ApidSsc getPacketId1(CommandMessage* cmd);
|
||||
static ApidSsc getPacketId2(CommandMessage* cmd);
|
||||
static bool getEnableStoring(CommandMessage* cmd);
|
||||
static bool getAddToSelection(CommandMessage* cmd);
|
||||
static uint32_t getAddressLow(CommandMessage* cmd);
|
||||
static uint32_t getAddressHigh(CommandMessage* cmd);
|
||||
|
||||
static store_address_t getStoreId(const CommandMessage* cmd);
|
||||
virtual ~TmStoreMessage();
|
||||
static const uint8_t MESSAGE_ID = messagetypes::TM_STORE;
|
||||
static const Command_t ENABLE_STORING = MAKE_COMMAND_ID(1);
|
||||
static const Command_t DELETE_STORE_CONTENT = MAKE_COMMAND_ID(2);
|
||||
static const Command_t DOWNLINK_STORE_CONTENT = MAKE_COMMAND_ID(3);
|
||||
static const Command_t CHANGE_SELECTION_DEFINITION = MAKE_COMMAND_ID(4);
|
||||
static const Command_t REPORT_SELECTION_DEFINITION = MAKE_COMMAND_ID(5);
|
||||
static const Command_t SELECTION_DEFINITION_REPORT = MAKE_COMMAND_ID(6);
|
||||
static const Command_t REPORT_STORE_CATALOGUE = MAKE_COMMAND_ID(7);
|
||||
static const Command_t STORE_CATALOGUE_REPORT = MAKE_COMMAND_ID(8);
|
||||
static const Command_t DOWNLINK_STORE_CONTENT_TIME = MAKE_COMMAND_ID(9);
|
||||
static const Command_t DELETE_STORE_CONTENT_TIME = MAKE_COMMAND_ID(10);
|
||||
static const Command_t DELETE_STORE_CONTENT_BLOCKS = MAKE_COMMAND_ID(11);
|
||||
static const Command_t DOWNLINK_STORE_CONTENT_BLOCKS = MAKE_COMMAND_ID(12);
|
||||
static const Command_t REPORT_INDEX_REQUEST = MAKE_COMMAND_ID(13);
|
||||
static const Command_t INDEX_REPORT = MAKE_COMMAND_ID(14);
|
||||
private:
|
||||
TmStoreMessage();
|
||||
};
|
||||
|
||||
#endif /* FRAMEWORK_TMSTORAGE_TMSTOREMESSAGE_H_ */
|
||||
#ifndef FRAMEWORK_TMSTORAGE_TMSTOREMESSAGE_H_
|
||||
#define FRAMEWORK_TMSTORAGE_TMSTOREMESSAGE_H_
|
||||
|
||||
#include "../ipc/CommandMessage.h"
|
||||
#include "../storagemanager/StorageManagerIF.h"
|
||||
#include "../tmstorage/TmStorePackets.h"
|
||||
#include "../objectmanager/SystemObjectIF.h"
|
||||
class TmStoreMessage {
|
||||
public:
|
||||
static ReturnValue_t setEnableStoringMessage(CommandMessage* cmd,
|
||||
bool setEnabled);
|
||||
static ReturnValue_t setDeleteContentMessage(CommandMessage* cmd,
|
||||
ApidSsc upTo);
|
||||
static ReturnValue_t setDownlinkContentMessage(CommandMessage* cmd,
|
||||
ApidSsc fromPacket, ApidSsc toPacket);
|
||||
static void setChangeSelectionDefinitionMessage(CommandMessage* cmd,
|
||||
bool addDefinition, store_address_t store_id);
|
||||
static ReturnValue_t setReportSelectionDefinitionMessage(
|
||||
CommandMessage* cmd);
|
||||
static void setSelectionDefinitionReportMessage(CommandMessage* cmd,
|
||||
store_address_t storeId);
|
||||
static ReturnValue_t setReportStoreCatalogueMessage(CommandMessage* cmd);
|
||||
static void setStoreCatalogueReportMessage(CommandMessage* cmd, object_id_t objectId,
|
||||
store_address_t storeId);
|
||||
static void setDownlinkContentTimeMessage(CommandMessage* cmd,
|
||||
store_address_t storeId);
|
||||
static void setIndexReportMessage(CommandMessage* cmd, store_address_t storeId);
|
||||
static ReturnValue_t setDeleteBlocksMessage(CommandMessage* cmd, uint32_t addressLow, uint32_t addressHigh);
|
||||
static ReturnValue_t setDownlinkBlocksMessage(CommandMessage* cmd, uint32_t addressLow, uint32_t addressHigh);
|
||||
static ReturnValue_t setIndexRequestMessage(CommandMessage* cmd);
|
||||
static void setDeleteContentTimeMessage(CommandMessage* cmd,
|
||||
store_address_t storeId);
|
||||
static void clear(CommandMessage* cmd);
|
||||
static object_id_t getObjectId(CommandMessage* cmd);
|
||||
static ApidSsc getPacketId1(CommandMessage* cmd);
|
||||
static ApidSsc getPacketId2(CommandMessage* cmd);
|
||||
static bool getEnableStoring(CommandMessage* cmd);
|
||||
static bool getAddToSelection(CommandMessage* cmd);
|
||||
static uint32_t getAddressLow(CommandMessage* cmd);
|
||||
static uint32_t getAddressHigh(CommandMessage* cmd);
|
||||
|
||||
static store_address_t getStoreId(const CommandMessage* cmd);
|
||||
virtual ~TmStoreMessage();
|
||||
static const uint8_t MESSAGE_ID = messagetypes::TM_STORE;
|
||||
static const Command_t ENABLE_STORING = MAKE_COMMAND_ID(1);
|
||||
static const Command_t DELETE_STORE_CONTENT = MAKE_COMMAND_ID(2);
|
||||
static const Command_t DOWNLINK_STORE_CONTENT = MAKE_COMMAND_ID(3);
|
||||
static const Command_t CHANGE_SELECTION_DEFINITION = MAKE_COMMAND_ID(4);
|
||||
static const Command_t REPORT_SELECTION_DEFINITION = MAKE_COMMAND_ID(5);
|
||||
static const Command_t SELECTION_DEFINITION_REPORT = MAKE_COMMAND_ID(6);
|
||||
static const Command_t REPORT_STORE_CATALOGUE = MAKE_COMMAND_ID(7);
|
||||
static const Command_t STORE_CATALOGUE_REPORT = MAKE_COMMAND_ID(8);
|
||||
static const Command_t DOWNLINK_STORE_CONTENT_TIME = MAKE_COMMAND_ID(9);
|
||||
static const Command_t DELETE_STORE_CONTENT_TIME = MAKE_COMMAND_ID(10);
|
||||
static const Command_t DELETE_STORE_CONTENT_BLOCKS = MAKE_COMMAND_ID(11);
|
||||
static const Command_t DOWNLINK_STORE_CONTENT_BLOCKS = MAKE_COMMAND_ID(12);
|
||||
static const Command_t REPORT_INDEX_REQUEST = MAKE_COMMAND_ID(13);
|
||||
static const Command_t INDEX_REPORT = MAKE_COMMAND_ID(14);
|
||||
private:
|
||||
TmStoreMessage();
|
||||
};
|
||||
|
||||
#endif /* FRAMEWORK_TMSTORAGE_TMSTOREMESSAGE_H_ */
|
||||
|
@ -1,300 +1,300 @@
|
||||
#ifndef FRAMEWORK_TMSTORAGE_TMSTOREPACKETS_H_
|
||||
#define FRAMEWORK_TMSTORAGE_TMSTOREPACKETS_H_
|
||||
|
||||
#include "../serialize/SerialFixedArrayListAdapter.h"
|
||||
#include "../serialize/SerializeElement.h"
|
||||
#include "../serialize/SerialLinkedListAdapter.h"
|
||||
#include "../serialize/SerialBufferAdapter.h"
|
||||
#include "../tmtcpacket/pus/TmPacketMinimal.h"
|
||||
#include "../timemanager/TimeStamperIF.h"
|
||||
#include "../timemanager/CCSDSTime.h"
|
||||
#include "../globalfunctions/timevalOperations.h"
|
||||
|
||||
class ServiceSubservice: public SerialLinkedListAdapter<SerializeIF> {
|
||||
public:
|
||||
SerializeElement<uint8_t> service;
|
||||
SerialFixedArrayListAdapter<uint8_t, 16> subservices;
|
||||
LinkedElement<SerializeIF> linkedSubservices;
|
||||
ServiceSubservice() :
|
||||
SerialLinkedListAdapter<SerializeIF>(&service), linkedSubservices(
|
||||
&subservices) {
|
||||
service.setNext(&linkedSubservices);
|
||||
}
|
||||
};
|
||||
|
||||
class ApidSsc: public SerializeIF {
|
||||
public:
|
||||
ApidSsc() :
|
||||
apid(SpacePacketBase::LIMIT_APID), ssc(0) {
|
||||
}
|
||||
ApidSsc(uint16_t apid, uint16_t ssc) :
|
||||
apid(apid), ssc(ssc) {
|
||||
}
|
||||
uint16_t apid;
|
||||
uint16_t ssc;
|
||||
ReturnValue_t serialize(uint8_t** buffer, size_t* size,
|
||||
size_t maxSize, Endianness streamEndianness) const {
|
||||
ReturnValue_t result = SerializeAdapter::serialize(&apid,
|
||||
buffer, size, maxSize, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
return SerializeAdapter::serialize(&ssc, buffer, size,
|
||||
maxSize, streamEndianness);
|
||||
|
||||
}
|
||||
|
||||
size_t getSerializedSize() const {
|
||||
return sizeof(apid) + sizeof(ssc);
|
||||
}
|
||||
|
||||
ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
|
||||
Endianness streamEndianness) {
|
||||
ReturnValue_t result = SerializeAdapter::deSerialize(&apid,
|
||||
buffer, size, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
return SerializeAdapter::deSerialize(&ssc, buffer, size,
|
||||
streamEndianness);
|
||||
}
|
||||
};
|
||||
|
||||
class ChangeSelectionDefinition: public SerialLinkedListAdapter<SerializeIF> {
|
||||
public:
|
||||
SerializeElement<uint16_t> apid;
|
||||
SerialFixedArrayListAdapter<ServiceSubservice, 16> serviceList;
|
||||
LinkedElement<SerializeIF> linkedServiceList;
|
||||
ChangeSelectionDefinition() :
|
||||
SerialLinkedListAdapter<SerializeIF>(&apid), linkedServiceList(
|
||||
&serviceList) {
|
||||
apid.setNext(&linkedServiceList);
|
||||
}
|
||||
};
|
||||
|
||||
class TmPacketInformation: public SerializeIF {
|
||||
public:
|
||||
TmPacketInformation(TmPacketMinimal* packet){
|
||||
setContent(packet);
|
||||
}
|
||||
TmPacketInformation() :apid(
|
||||
SpacePacketBase::LIMIT_APID), sourceSequenceCount(0), serviceType(
|
||||
0), serviceSubtype(0), subCounter(0) {
|
||||
}
|
||||
void reset() {
|
||||
apid = SpacePacketBase::LIMIT_APID;
|
||||
sourceSequenceCount = 0;
|
||||
serviceType = 0;
|
||||
serviceSubtype = 0;
|
||||
subCounter = 0;
|
||||
memset(rawTimestamp, 0, sizeof(rawTimestamp));
|
||||
}
|
||||
void setContent(TmPacketMinimal* packet) {
|
||||
apid = packet->getAPID();
|
||||
sourceSequenceCount = packet->getPacketSequenceCount();
|
||||
serviceType = packet->getService();
|
||||
serviceSubtype = packet->getSubService();
|
||||
subCounter = packet->getPacketSubcounter();
|
||||
memset(rawTimestamp, 0, sizeof(rawTimestamp));
|
||||
const uint8_t* pField = NULL;
|
||||
uint32_t size = 0;
|
||||
ReturnValue_t result = packet->getPacketTimeRaw(&pField, &size);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return;
|
||||
}
|
||||
if (*pField == CCSDSTime::P_FIELD_CDS_SHORT
|
||||
&& size <= TimeStamperIF::MISSION_TIMESTAMP_SIZE) {
|
||||
//Shortcut to avoid converting CDS back and forth.
|
||||
memcpy(rawTimestamp, pField, size);
|
||||
return;
|
||||
}
|
||||
timeval time = { 0, 0 };
|
||||
result = packet->getPacketTime(&time);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return;
|
||||
}
|
||||
|
||||
CCSDSTime::CDS_short cdsFormat;
|
||||
result = CCSDSTime::convertToCcsds(&cdsFormat, &time);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return;
|
||||
}
|
||||
memcpy(rawTimestamp, &cdsFormat, sizeof(cdsFormat));
|
||||
}
|
||||
void setContent(TmPacketInformation* content) {
|
||||
apid = content->apid;
|
||||
sourceSequenceCount = content->sourceSequenceCount;
|
||||
serviceType = content->serviceType;
|
||||
serviceSubtype = content->serviceSubtype;
|
||||
subCounter = content->subCounter;
|
||||
memcpy(rawTimestamp, content->rawTimestamp, sizeof(rawTimestamp));
|
||||
}
|
||||
bool isValid() const {
|
||||
return (apid < SpacePacketBase::LIMIT_APID) ? true : false;
|
||||
}
|
||||
static void reset(TmPacketInformation* packet){
|
||||
packet->reset();
|
||||
}
|
||||
|
||||
static bool isOlderThan(const TmPacketInformation* packet, const timeval* cmpTime){
|
||||
if(packet->isValid()){
|
||||
timeval packetTime = {0,0};
|
||||
uint32_t foundlen = 0;
|
||||
CCSDSTime::convertFromCcsds(&packetTime,&packet->rawTimestamp[0],&foundlen,sizeof(rawTimestamp));
|
||||
if(packetTime <= *cmpTime){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isNewerThan(const TmPacketInformation* packet, const timeval* cmpTime){
|
||||
if(packet->isValid()){
|
||||
timeval packetTime = {0,0};
|
||||
uint32_t foundlen = 0;
|
||||
CCSDSTime::convertFromCcsds(&packetTime,&packet->rawTimestamp[0],&foundlen,sizeof(rawTimestamp));
|
||||
if(packetTime >= *cmpTime){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isSmallerSSC(const TmPacketInformation* packet,const ApidSsc* compareSSC){
|
||||
if(packet->isValid()){
|
||||
if(packet->apid == compareSSC->apid){
|
||||
if(packet->sourceSequenceCount <= compareSSC->ssc){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isLargerSSC(const TmPacketInformation* packet,const ApidSsc* compareSSC){
|
||||
if(packet->isValid()){
|
||||
if(packet->apid == compareSSC->apid){
|
||||
if(packet->sourceSequenceCount >= compareSSC->ssc){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
uint16_t getApid() const{
|
||||
return apid;
|
||||
}
|
||||
|
||||
uint16_t getSsc() const{
|
||||
return sourceSequenceCount;
|
||||
}
|
||||
|
||||
uint8_t getServiceType() const{
|
||||
return serviceType;
|
||||
}
|
||||
|
||||
uint8_t getServiceSubtype() const{
|
||||
return serviceSubtype;
|
||||
}
|
||||
|
||||
uint8_t getSubCounter() const{
|
||||
return subCounter;
|
||||
}
|
||||
|
||||
timeval getTime() const {
|
||||
timeval packetTime = {0,0};
|
||||
uint32_t foundlen = 0;
|
||||
CCSDSTime::convertFromCcsds(&packetTime,&this->rawTimestamp[0],&foundlen,sizeof(rawTimestamp));
|
||||
return packetTime;
|
||||
}
|
||||
|
||||
bool operator==(const TmPacketInformation& other) {
|
||||
//TODO Does not compare Raw Timestamp
|
||||
return ((apid == other.getApid())
|
||||
&& (sourceSequenceCount == other.getSsc())
|
||||
&& (serviceType == other.getServiceType()) && (serviceSubtype =
|
||||
other.getServiceSubtype()));
|
||||
}
|
||||
|
||||
|
||||
ReturnValue_t serialize(uint8_t** buffer, size_t* size,
|
||||
size_t maxSize, Endianness streamEndianness) const {
|
||||
ReturnValue_t result = SerializeAdapter::serialize(&apid,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::serialize(&sourceSequenceCount,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::serialize(&serviceType,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::serialize(&serviceSubtype,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::serialize(&subCounter,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
SerialBufferAdapter<uint8_t> adapter(rawTimestamp,sizeof(rawTimestamp));
|
||||
return adapter.serialize(buffer,size,maxSize,streamEndianness);
|
||||
}
|
||||
|
||||
size_t getSerializedSize() const {
|
||||
uint32_t size = 0;
|
||||
size += SerializeAdapter::getSerializedSize(&apid);
|
||||
size += SerializeAdapter::getSerializedSize(&sourceSequenceCount);
|
||||
size += SerializeAdapter::getSerializedSize(&serviceType);
|
||||
size += SerializeAdapter::getSerializedSize(&serviceSubtype);
|
||||
size += SerializeAdapter::getSerializedSize(&subCounter);
|
||||
SerialBufferAdapter<uint8_t> adapter(rawTimestamp,sizeof(rawTimestamp));
|
||||
size += adapter.getSerializedSize();
|
||||
return size;
|
||||
|
||||
};
|
||||
|
||||
ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
|
||||
Endianness streamEndianness) {
|
||||
ReturnValue_t result = SerializeAdapter::deSerialize(&apid, buffer,
|
||||
size, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::deSerialize(&sourceSequenceCount, buffer,
|
||||
size, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::deSerialize(&serviceType, buffer, size,
|
||||
streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::deSerialize(&serviceSubtype, buffer,
|
||||
size, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::deSerialize(&subCounter, buffer, size,
|
||||
streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
SerialBufferAdapter<uint8_t> adapter(rawTimestamp,sizeof(rawTimestamp));
|
||||
return adapter.deSerialize(buffer,size,streamEndianness);
|
||||
}
|
||||
|
||||
private:
|
||||
uint16_t apid;
|
||||
uint16_t sourceSequenceCount;
|
||||
uint8_t serviceType;
|
||||
uint8_t serviceSubtype;
|
||||
uint8_t subCounter;
|
||||
uint8_t rawTimestamp[TimeStamperIF::MISSION_TIMESTAMP_SIZE];
|
||||
|
||||
};
|
||||
#endif /* FRAMEWORK_TMSTORAGE_TMSTOREPACKETS_H_ */
|
||||
#ifndef FRAMEWORK_TMSTORAGE_TMSTOREPACKETS_H_
|
||||
#define FRAMEWORK_TMSTORAGE_TMSTOREPACKETS_H_
|
||||
|
||||
#include "../serialize/SerialFixedArrayListAdapter.h"
|
||||
#include "../serialize/SerializeElement.h"
|
||||
#include "../serialize/SerialLinkedListAdapter.h"
|
||||
#include "../serialize/SerialBufferAdapter.h"
|
||||
#include "../tmtcpacket/pus/TmPacketMinimal.h"
|
||||
#include "../timemanager/TimeStamperIF.h"
|
||||
#include "../timemanager/CCSDSTime.h"
|
||||
#include "../globalfunctions/timevalOperations.h"
|
||||
|
||||
class ServiceSubservice: public SerialLinkedListAdapter<SerializeIF> {
|
||||
public:
|
||||
SerializeElement<uint8_t> service;
|
||||
SerialFixedArrayListAdapter<uint8_t, 16> subservices;
|
||||
LinkedElement<SerializeIF> linkedSubservices;
|
||||
ServiceSubservice() :
|
||||
SerialLinkedListAdapter<SerializeIF>(&service), linkedSubservices(
|
||||
&subservices) {
|
||||
service.setNext(&linkedSubservices);
|
||||
}
|
||||
};
|
||||
|
||||
class ApidSsc: public SerializeIF {
|
||||
public:
|
||||
ApidSsc() :
|
||||
apid(SpacePacketBase::LIMIT_APID), ssc(0) {
|
||||
}
|
||||
ApidSsc(uint16_t apid, uint16_t ssc) :
|
||||
apid(apid), ssc(ssc) {
|
||||
}
|
||||
uint16_t apid;
|
||||
uint16_t ssc;
|
||||
ReturnValue_t serialize(uint8_t** buffer, size_t* size,
|
||||
size_t maxSize, Endianness streamEndianness) const {
|
||||
ReturnValue_t result = SerializeAdapter::serialize(&apid,
|
||||
buffer, size, maxSize, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
return SerializeAdapter::serialize(&ssc, buffer, size,
|
||||
maxSize, streamEndianness);
|
||||
|
||||
}
|
||||
|
||||
size_t getSerializedSize() const {
|
||||
return sizeof(apid) + sizeof(ssc);
|
||||
}
|
||||
|
||||
ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
|
||||
Endianness streamEndianness) {
|
||||
ReturnValue_t result = SerializeAdapter::deSerialize(&apid,
|
||||
buffer, size, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
return SerializeAdapter::deSerialize(&ssc, buffer, size,
|
||||
streamEndianness);
|
||||
}
|
||||
};
|
||||
|
||||
class ChangeSelectionDefinition: public SerialLinkedListAdapter<SerializeIF> {
|
||||
public:
|
||||
SerializeElement<uint16_t> apid;
|
||||
SerialFixedArrayListAdapter<ServiceSubservice, 16> serviceList;
|
||||
LinkedElement<SerializeIF> linkedServiceList;
|
||||
ChangeSelectionDefinition() :
|
||||
SerialLinkedListAdapter<SerializeIF>(&apid), linkedServiceList(
|
||||
&serviceList) {
|
||||
apid.setNext(&linkedServiceList);
|
||||
}
|
||||
};
|
||||
|
||||
class TmPacketInformation: public SerializeIF {
|
||||
public:
|
||||
TmPacketInformation(TmPacketMinimal* packet){
|
||||
setContent(packet);
|
||||
}
|
||||
TmPacketInformation() :apid(
|
||||
SpacePacketBase::LIMIT_APID), sourceSequenceCount(0), serviceType(
|
||||
0), serviceSubtype(0), subCounter(0) {
|
||||
}
|
||||
void reset() {
|
||||
apid = SpacePacketBase::LIMIT_APID;
|
||||
sourceSequenceCount = 0;
|
||||
serviceType = 0;
|
||||
serviceSubtype = 0;
|
||||
subCounter = 0;
|
||||
memset(rawTimestamp, 0, sizeof(rawTimestamp));
|
||||
}
|
||||
void setContent(TmPacketMinimal* packet) {
|
||||
apid = packet->getAPID();
|
||||
sourceSequenceCount = packet->getPacketSequenceCount();
|
||||
serviceType = packet->getService();
|
||||
serviceSubtype = packet->getSubService();
|
||||
subCounter = packet->getPacketSubcounter();
|
||||
memset(rawTimestamp, 0, sizeof(rawTimestamp));
|
||||
const uint8_t* pField = NULL;
|
||||
uint32_t size = 0;
|
||||
ReturnValue_t result = packet->getPacketTimeRaw(&pField, &size);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return;
|
||||
}
|
||||
if (*pField == CCSDSTime::P_FIELD_CDS_SHORT
|
||||
&& size <= TimeStamperIF::MISSION_TIMESTAMP_SIZE) {
|
||||
//Shortcut to avoid converting CDS back and forth.
|
||||
memcpy(rawTimestamp, pField, size);
|
||||
return;
|
||||
}
|
||||
timeval time = { 0, 0 };
|
||||
result = packet->getPacketTime(&time);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return;
|
||||
}
|
||||
|
||||
CCSDSTime::CDS_short cdsFormat;
|
||||
result = CCSDSTime::convertToCcsds(&cdsFormat, &time);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return;
|
||||
}
|
||||
memcpy(rawTimestamp, &cdsFormat, sizeof(cdsFormat));
|
||||
}
|
||||
void setContent(TmPacketInformation* content) {
|
||||
apid = content->apid;
|
||||
sourceSequenceCount = content->sourceSequenceCount;
|
||||
serviceType = content->serviceType;
|
||||
serviceSubtype = content->serviceSubtype;
|
||||
subCounter = content->subCounter;
|
||||
memcpy(rawTimestamp, content->rawTimestamp, sizeof(rawTimestamp));
|
||||
}
|
||||
bool isValid() const {
|
||||
return (apid < SpacePacketBase::LIMIT_APID) ? true : false;
|
||||
}
|
||||
static void reset(TmPacketInformation* packet){
|
||||
packet->reset();
|
||||
}
|
||||
|
||||
static bool isOlderThan(const TmPacketInformation* packet, const timeval* cmpTime){
|
||||
if(packet->isValid()){
|
||||
timeval packetTime = {0,0};
|
||||
uint32_t foundlen = 0;
|
||||
CCSDSTime::convertFromCcsds(&packetTime,&packet->rawTimestamp[0],&foundlen,sizeof(rawTimestamp));
|
||||
if(packetTime <= *cmpTime){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isNewerThan(const TmPacketInformation* packet, const timeval* cmpTime){
|
||||
if(packet->isValid()){
|
||||
timeval packetTime = {0,0};
|
||||
uint32_t foundlen = 0;
|
||||
CCSDSTime::convertFromCcsds(&packetTime,&packet->rawTimestamp[0],&foundlen,sizeof(rawTimestamp));
|
||||
if(packetTime >= *cmpTime){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isSmallerSSC(const TmPacketInformation* packet,const ApidSsc* compareSSC){
|
||||
if(packet->isValid()){
|
||||
if(packet->apid == compareSSC->apid){
|
||||
if(packet->sourceSequenceCount <= compareSSC->ssc){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isLargerSSC(const TmPacketInformation* packet,const ApidSsc* compareSSC){
|
||||
if(packet->isValid()){
|
||||
if(packet->apid == compareSSC->apid){
|
||||
if(packet->sourceSequenceCount >= compareSSC->ssc){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
uint16_t getApid() const{
|
||||
return apid;
|
||||
}
|
||||
|
||||
uint16_t getSsc() const{
|
||||
return sourceSequenceCount;
|
||||
}
|
||||
|
||||
uint8_t getServiceType() const{
|
||||
return serviceType;
|
||||
}
|
||||
|
||||
uint8_t getServiceSubtype() const{
|
||||
return serviceSubtype;
|
||||
}
|
||||
|
||||
uint8_t getSubCounter() const{
|
||||
return subCounter;
|
||||
}
|
||||
|
||||
timeval getTime() const {
|
||||
timeval packetTime = {0,0};
|
||||
uint32_t foundlen = 0;
|
||||
CCSDSTime::convertFromCcsds(&packetTime,&this->rawTimestamp[0],&foundlen,sizeof(rawTimestamp));
|
||||
return packetTime;
|
||||
}
|
||||
|
||||
bool operator==(const TmPacketInformation& other) {
|
||||
//TODO Does not compare Raw Timestamp
|
||||
return ((apid == other.getApid())
|
||||
&& (sourceSequenceCount == other.getSsc())
|
||||
&& (serviceType == other.getServiceType()) && (serviceSubtype =
|
||||
other.getServiceSubtype()));
|
||||
}
|
||||
|
||||
|
||||
ReturnValue_t serialize(uint8_t** buffer, size_t* size,
|
||||
size_t maxSize, Endianness streamEndianness) const {
|
||||
ReturnValue_t result = SerializeAdapter::serialize(&apid,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::serialize(&sourceSequenceCount,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::serialize(&serviceType,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::serialize(&serviceSubtype,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::serialize(&subCounter,buffer,size,maxSize,streamEndianness);
|
||||
if(result!=HasReturnvaluesIF::RETURN_OK){
|
||||
return result;
|
||||
}
|
||||
SerialBufferAdapter<uint8_t> adapter(rawTimestamp,sizeof(rawTimestamp));
|
||||
return adapter.serialize(buffer,size,maxSize,streamEndianness);
|
||||
}
|
||||
|
||||
size_t getSerializedSize() const {
|
||||
uint32_t size = 0;
|
||||
size += SerializeAdapter::getSerializedSize(&apid);
|
||||
size += SerializeAdapter::getSerializedSize(&sourceSequenceCount);
|
||||
size += SerializeAdapter::getSerializedSize(&serviceType);
|
||||
size += SerializeAdapter::getSerializedSize(&serviceSubtype);
|
||||
size += SerializeAdapter::getSerializedSize(&subCounter);
|
||||
SerialBufferAdapter<uint8_t> adapter(rawTimestamp,sizeof(rawTimestamp));
|
||||
size += adapter.getSerializedSize();
|
||||
return size;
|
||||
|
||||
};
|
||||
|
||||
ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
|
||||
Endianness streamEndianness) {
|
||||
ReturnValue_t result = SerializeAdapter::deSerialize(&apid, buffer,
|
||||
size, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::deSerialize(&sourceSequenceCount, buffer,
|
||||
size, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::deSerialize(&serviceType, buffer, size,
|
||||
streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::deSerialize(&serviceSubtype, buffer,
|
||||
size, streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
result = SerializeAdapter::deSerialize(&subCounter, buffer, size,
|
||||
streamEndianness);
|
||||
if (result != HasReturnvaluesIF::RETURN_OK) {
|
||||
return result;
|
||||
}
|
||||
SerialBufferAdapter<uint8_t> adapter(rawTimestamp,sizeof(rawTimestamp));
|
||||
return adapter.deSerialize(buffer,size,streamEndianness);
|
||||
}
|
||||
|
||||
private:
|
||||
uint16_t apid;
|
||||
uint16_t sourceSequenceCount;
|
||||
uint8_t serviceType;
|
||||
uint8_t serviceSubtype;
|
||||
uint8_t subCounter;
|
||||
uint8_t rawTimestamp[TimeStamperIF::MISSION_TIMESTAMP_SIZE];
|
||||
|
||||
};
|
||||
#endif /* FRAMEWORK_TMSTORAGE_TMSTOREPACKETS_H_ */
|
||||
|
Reference in New Issue
Block a user