/* * TmStorePackets.h * * Created on: 11.03.2015 * Author: baetz */ #ifndef FRAMEWORK_TMSTORAGE_TMSTOREPACKETS_H_ #define FRAMEWORK_TMSTORAGE_TMSTOREPACKETS_H_ #include #include #include #include class ServiceSubservice: public SerialLinkedListAdapter { public: SerializeElement service; SerialFixedArrayListAdapter subservices; LinkedElement linkedSubservices; ServiceSubservice() : SerialLinkedListAdapter(&service), linkedSubservices( &subservices) { service.setNext(&linkedSubservices); } }; class ChangeSelectionDefinition: public SerialLinkedListAdapter { public: SerializeElement apid; SerialFixedArrayListAdapter serviceList; LinkedElement linkedServiceList; ChangeSelectionDefinition() : SerialLinkedListAdapter(&apid), linkedServiceList( &serviceList) { apid.setNext(&linkedServiceList); } }; class TmPacketInformation: public SerialLinkedListAdapter { public: TmPacketInformation(TmPacketMinimal* packet) : SerialLinkedListAdapter(&apid) { setAllNext(); setContent(packet); } TmPacketInformation() : SerialLinkedListAdapter(&apid), apid( SpacePacketBase::LIMIT_APID), sourceSequenceCount(0), serviceType( 0), serviceSubtype(0), subCounter(0) { setAllNext(); } void reset() { apid = SpacePacketBase::LIMIT_APID; sourceSequenceCount = 0; serviceType = 0; serviceSubtype = 0; subCounter = 0; } void setContent(TmPacketMinimal* packet) { apid = packet->getAPID(); sourceSequenceCount = packet->getPacketSequenceCount(); serviceType = packet->getService(); serviceSubtype = packet->getSubService(); subCounter = packet->getPacketSubcounter(); } void setContent(TmPacketInformation* content) { apid.entry = content->apid.entry; sourceSequenceCount.entry = content->sourceSequenceCount.entry; serviceType.entry = content->serviceType.entry; serviceSubtype.entry = content->serviceSubtype.entry; subCounter.entry = content->subCounter.entry; } bool isValid() { return (apid < SpacePacketBase::LIMIT_APID) ? true : false; } private: SerializeElement apid; SerializeElement sourceSequenceCount; SerializeElement serviceType; SerializeElement serviceSubtype; SerializeElement subCounter; void setAllNext() { apid.setNext(&sourceSequenceCount); sourceSequenceCount.setNext(&serviceType); serviceType.setNext(&serviceSubtype); serviceSubtype.setNext(&subCounter); } }; #endif /* FRAMEWORK_TMSTORAGE_TMSTOREPACKETS_H_ */