From 17389509025762bc9cb4876d855d025183c9b89d Mon Sep 17 00:00:00 2001 From: Andrea Bulgarelli <bulgarelli@iasfbo.inaf.it> Date: Thu, 19 Feb 2015 09:18:46 +0100 Subject: [PATCH] Added Packet::pheader(), Packet::dfheader(), Packet::sdf(), byte* PartOfPacket::getBytes() as shortcuts --- PacketLib.xcodeproj/project.pbxproj | 2 ++ .../UserInterfaceState.xcuserstate | Bin 46848 -> 46855 bytes examples/xml/packetlib_example.cpp | 19 +++++++++--------- include/Packet.h | 12 +++++++++++ include/PartOfPacket.h | 6 ++++++ src/Packet.cpp | 15 ++++++++++++++ 6 files changed, 45 insertions(+), 9 deletions(-) diff --git a/PacketLib.xcodeproj/project.pbxproj b/PacketLib.xcodeproj/project.pbxproj index fc591a4..9ea928a 100644 --- a/PacketLib.xcodeproj/project.pbxproj +++ b/PacketLib.xcodeproj/project.pbxproj @@ -150,6 +150,7 @@ DD8A42121A95C11700565702 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; DD8A42131A95C11700565702 /* TODO */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TODO; sourceTree = "<group>"; }; DD8A42151A95C11700565702 /* packetlib_example.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = packetlib_example.cpp; sourceTree = "<group>"; }; + DD8A42161A95CE4500565702 /* rta_fadc_all.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = rta_fadc_all.xml; sourceTree = "<group>"; }; DDB3B86B18CA2F8700918955 /* ByteStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ByteStream.h; sourceTree = "<group>"; }; DDB3B86C18CA2F8700918955 /* ConfigurationFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigurationFile.h; sourceTree = "<group>"; }; DDB3B86D18CA2F8700918955 /* DataFieldHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataFieldHeader.h; sourceTree = "<group>"; }; @@ -317,6 +318,7 @@ DD8A42141A95C11700565702 /* xml */ = { isa = PBXGroup; children = ( + DD8A42161A95CE4500565702 /* rta_fadc_all.xml */, DD8A42151A95C11700565702 /* packetlib_example.cpp */, ); path = xml; diff --git a/PacketLib.xcodeproj/project.xcworkspace/xcuserdata/bulgarelli.xcuserdatad/UserInterfaceState.xcuserstate b/PacketLib.xcodeproj/project.xcworkspace/xcuserdata/bulgarelli.xcuserdatad/UserInterfaceState.xcuserstate index 4e0cc302b41156a28f35e8ab4d5952c4598afad2..ce3ea1fcf54cb648d3c7f320a1ee1e1ec40ea1ba 100644 GIT binary patch delta 25085 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 UkY@k`CMGb&z@H4EVdM-&0Gike4*&oF delta 24865 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 diff --git a/examples/xml/packetlib_example.cpp b/examples/xml/packetlib_example.cpp index 2894d19..fe5d3da 100644 --- a/examples/xml/packetlib_example.cpp +++ b/examples/xml/packetlib_example.cpp @@ -36,12 +36,12 @@ int main(int argc, char* argv[]) try { packetType = ps.getPacketType("triggered_telescope1_30GEN"); - PacketLib::Field* apid = packetType->getPacketHeader()->getField("APID"); + PacketLib::Field* apid = packetType->pheader()->getField("APID"); std::cout << apid->getType() << std::endl; //assert(apid->getType() == PacketLib::LogicalFieldDataType::UINT11); //assert(apid->getName().compare("APID") == 0); - PacketLib::Field* arrayID = packetType->getPacketDataFieldHeader()->getField("ArrayID"); + PacketLib::Field* arrayID = packetType->dfheader()->getField("ArrayID"); //assert(arrayID->getType() == PacketLib::LogicalFieldDataType::UINT16); //assert(arrayID->getName().compare("ArrayID") == 0); @@ -59,23 +59,24 @@ int main(int argc, char* argv[]) PacketLib::ByteStreamPtr rawPacket = rawPackets.getNext(); PacketLib::Packet* packet = ps.getPacket(rawPacket); - //PacketLib::Field* blockfield = packet->getPacketSourceDataField()->getBlock(0)->getField("FADC00"); + //PacketLib::Field* blockfield = packet->sdf()->getBlock(0)->getField("FADC00"); //assert(blockfield->getType() == PacketLib::LogicalFieldDataType::UINT16); // use reflection interface to read content - uint16_t apid = packet->getPacketHeader()->getFieldValue("APID"); - uint16_t arrayID = packet->getPacketDataFieldHeader()->getFieldValue("ArrayID"); - uint16_t npixels = packet->getPacketSourceDataField()->getFieldValue("Number of pixels"); - uint16_t nsamples = packet->getPacketSourceDataField()->getFieldValue("Number of samples"); + uint16_t apid = packet->pheader()->getFieldValue("APID"); + uint16_t arrayID = packet->dfheader()->getFieldValue("ArrayID"); + uint16_t npixels = packet->sdf()->getFieldValue("Number of pixels"); + uint16_t nsamples = packet->sdf()->getFieldValue("Number of samples"); std::cout << apid << " " << arrayID << " " << npixels << " " << nsamples << std::endl; //get each single pixel as a 1-dimensional array + for(unsigned int j=0; j<npixels; j++) { - uint16_t* pix = (uint16_t*) packet->getPacketSourceDataField()->getBlock(j)->getByteStream()->getStream(); + uint16_t* pix = (uint16_t*) packet->sdf()->getBlock(j)->getBytes(); for(uint16_t sample=0; sample<nsamples; sample++) cout << pix[sample] << " "; cout << endl; @@ -85,7 +86,7 @@ int main(int argc, char* argv[]) //access to each single sample for(uint16_t pixel=0; pixel<npixels; pixel++) { for(uint16_t sample=0; sample<nsamples; sample++) { - cout << packet->getPacketSourceDataField()->getBlock(pixel)->getFieldValue(sample) << " "; + cout << packet->sdf()->getBlock(pixel)->getFieldValue(sample) << " "; } cout << endl; } diff --git a/include/Packet.h b/include/Packet.h index 973ba07..a736ddb 100644 --- a/include/Packet.h +++ b/include/Packet.h @@ -135,15 +135,27 @@ public: ///Get the header PacketHeader* getPacketHeader(); + ///Get the header + PacketHeader* pheader(); + ///Get the data field header DataFieldHeader* getPacketDataFieldHeader(); + ///Get the data field header + DataFieldHeader* dfheader(); + ///Get the source data field SourceDataField* getPacketSourceDataField(); + ///Get the source data field + SourceDataField* sdf(); + ///Get the tail PartOfPacket* getPacketTail(); + ///Get the tail + PartOfPacket* tail(); + /// Gets the dimension in byte of the current packet (header + datafield (data field header + sdf + tail) dword size(); diff --git a/include/PartOfPacket.h b/include/PartOfPacket.h index 27f6423..7155719 100644 --- a/include/PartOfPacket.h +++ b/include/PartOfPacket.h @@ -338,6 +338,12 @@ public: { return stream; } + + /// Get the current array of bytes from ByteStream + virtual byte* getBytes() + { + return stream->getStream(); + } virtual void memByteStream(ByteStreamPtr stream); diff --git a/src/Packet.cpp b/src/Packet.cpp index aa317f0..33bcd71 100644 --- a/src/Packet.cpp +++ b/src/Packet.cpp @@ -1166,6 +1166,10 @@ PacketHeader* Packet::getPacketHeader() { } return header; } + +PacketHeader* Packet::pheader() { + return getPacketHeader(); +} DataFieldHeader* Packet::getPacketDataFieldHeader() { @@ -1176,6 +1180,9 @@ DataFieldHeader* Packet::getPacketDataFieldHeader() { return dataField->getPacketDataFieldHeader(); } +DataFieldHeader* Packet::dfheader() { + return getPacketDataFieldHeader(); +} SourceDataField* Packet::getPacketSourceDataField() { @@ -1185,6 +1192,10 @@ SourceDataField* Packet::getPacketSourceDataField() { } return dataField->getPacketSourceDataField(); } + +SourceDataField* Packet::sdf() { + return getPacketSourceDataField(); +} PartOfPacket* Packet::getPacketTail() { @@ -1194,6 +1205,10 @@ PartOfPacket* Packet::getPacketTail() { } return dataField->getPacketTail(); } + +PartOfPacket* Packet::tail() { + return getPacketTail(); +} ByteStreamPtr Packet::getData() { //ALGORITHM FOR AUTOMATIC DECOMPRESSION: NOT IMPLEMENTED NOW. TODO -- GitLab