//----------------------------------------------------------------------------- CCSDS::PACKET::Packet::Packet() //----------------------------------------------------------------------------- { resize(PRIMARY_HEADER_BYTE_SIZE); setPacketLength(); versionNumber(CCSDS::PACKET::VERSION_NUMBER); segmentationFlags(CCSDS::PACKET::SEGMENTATION_NONE); dataFieldHeaderFlag(0); }
//----------------------------------------------------------------------------- CCSDS::PACKET::Packet::Packet(size_t p_bufferSize): UTIL::DU::DU(p_bufferSize) //----------------------------------------------------------------------------- { if(p_bufferSize < PRIMARY_HEADER_BYTE_SIZE) { resize(PRIMARY_HEADER_BYTE_SIZE); } setPacketLength(); versionNumber(CCSDS::PACKET::VERSION_NUMBER); segmentationFlags(CCSDS::PACKET::SEGMENTATION_NONE); dataFieldHeaderFlag(0); }
VALUE_ret makePacketV1Hdr (PHDWORD* packet_ptr, UINT maxPacketLength) { if (maxPacketLength < packetV1HdrLength) return valueFailure; dwordClear(packet_ptr, packetV1HdrLength); setPacketLength(packet_ptr, packetV1HdrLength); setPacketHdrVersion (packet_ptr, packetV1HdrVersion); setPacketHdrLength (packet_ptr, packetV1HdrLength); unsigned long n = 1; char * cp = (char*)&n; if (*cp==1) setPacketEndianism(packet_ptr, 1); else setPacketEndianism(packet_ptr, 2); return packetV1HdrLength; }
void Header::prependSerializedHeader(vpr::BufferObjectWriter* packetWriter) { // Set Packet length setPacketLength( packetWriter->getData()->size() + RIM_PACKET_HEAD_SIZE ); std::vector<vpr::Uint8> header_data; vpr::BufferObjectWriter writer( &header_data ); // Serialize all header data. writer.writeUint16( mRIMCode ); writer.writeUint16( mPacketType ); writer.writeUint32( mFrame ); writer.writeUint32( mPacketLength ); // Prepend header onto packets data packetWriter->getData()->insert( packetWriter->getData()->begin(), header_data.begin(), header_data.end() ); packetWriter->setCurPos( getPacketLength() ); }