paqueteCnC
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
PacketBuilder Class Reference

Public Types

template<typename T1 , typename T2 >
using pairs_t = std::vector< std::pair< T1, T2 > >
 

Public Member Functions

PacketgetPacket ()
 
void newPacket (const uint8_t versionNumber, const uint8_t appIdSource, const uint8_t appIdDestination, const Packet::SequenceFlags sequenceControlFlags, const uint16_t sequenceControlCount)
 reset current construction with a new fresh packet
 
void setDataFieldHeader (const Packet::Bool8Enum ack, const uint8_t serviceType, const uint8_t serviceSubtype)
 
void addCommandVerificationAppData (const uint8_t appIdSource, const uint8_t appIdDestination, const Packet::SequenceFlags sequenceFlags, const uint16_t sequenceCount)
 
void addCommandVerificationAppData (const uint8_t appIdSource, const uint8_t appIdDestination, const Packet::SequenceFlags sequenceFlags, const uint16_t sequenceCount, const uint8_t code)
 
void addCommandVerificationAppData (const uint8_t appIdSource, const uint8_t appIdDestination, const Packet::SequenceFlags sequenceFlags, const uint16_t sequenceCount, const uint8_t code, const std::vector< std::byte > &parameters)
 
void addCommandDistributionAppData (const std::vector< uint8_t > &addAppData)
 
template<typename T >
void addCommandDistributionAppData (const pairs_t< uint8_t, T > &addressAndData)
 
void addCommandDistributionAppData (const pairs_t< int, std::byte > &lineIDAndDuration)
 
void addHousekeepingReportAppData (uint16_t structureId, PacketExtendedHousekeeping25::GenerationMode mode, const std::vector< std::byte > &parameters)
 Housekeeping parameter report with an Structure Identifier (SID), a generation mode and then the content of the report.
 

Member Function Documentation

◆ addCommandDistributionAppData() [1/3]

void PacketBuilder::addCommandDistributionAppData ( const pairs_t< int, std::byte > &  lineIDAndDuration)

CPDU It represents a sequence of pulses on certain output line.

Unline register load, this does not add a length as first byte if higher than one, thus a it is different method than the register load one.

I use int here because I am not sure about how many lines there will be

Precondition
lineIDAndDuration.size() <= Packet::APP_DATA_SIZE

◆ addCommandDistributionAppData() [2/3]

template<typename T >
void PacketBuilder::addCommandDistributionAppData ( const pairs_t< uint8_t, T > &  addressAndData)

register load It represents a setter; register[pair.first] = pair.second.

Note: In the ECSS-70-E-41A standard, register load data has as type "any" (as long as it is defined in clause 23), But because I have not read the exact types allowed, I set the type as std::byte but it may change after I have read the clause 23.

Precondition
addressAAppData.size() <= Packet::APP_DATA_SIZE

◆ addCommandDistributionAppData() [3/3]

void PacketBuilder::addCommandDistributionAppData ( const std::vector< uint8_t > &  addAppData)

******** Device command Distribution Service headers. ******** on-off register

◆ addCommandVerificationAppData() [1/3]

void PacketBuilder::addCommandVerificationAppData ( const uint8_t  appIdSource,
const uint8_t  appIdDestination,
const Packet::SequenceFlags  sequenceFlags,
const uint16_t  sequenceCount 
)

******** Telecommand Verification Service headers. ********

◆ addCommandVerificationAppData() [2/3]

void PacketBuilder::addCommandVerificationAppData ( const uint8_t  appIdSource,
const uint8_t  appIdDestination,
const Packet::SequenceFlags  sequenceFlags,
const uint16_t  sequenceCount,
const uint8_t  code 
)
Parameters
appIdSource
sequenceFlags
sequenceCount
codeerror code

◆ addCommandVerificationAppData() [3/3]

void PacketBuilder::addCommandVerificationAppData ( const uint8_t  appIdSource,
const uint8_t  appIdDestination,
const Packet::SequenceFlags  sequenceFlags,
const uint16_t  sequenceCount,
const uint8_t  code,
const std::vector< std::byte > &  parameters 
)
Parameters
appIdSource
sequenceFlags
sequenceCount
codeerror code
parameters

◆ addHousekeepingReportAppData()

void PacketBuilder::addHousekeepingReportAppData ( uint16_t  structureId,
PacketExtendedHousekeeping25::GenerationMode  mode,
const std::vector< std::byte > &  parameters 
)

Housekeeping parameter report with an Structure Identifier (SID), a generation mode and then the content of the report.

******** Housekeeping & diagnostic data reporting service headers ********

Parameters
structureIDint16_t for not because I don't know how many we need.
mode

◆ newPacket()

void PacketBuilder::newPacket ( const uint8_t  versionNumber,
const uint8_t  appIdSource,
const uint8_t  appIdDestination,
const Packet::SequenceFlags  sequenceControlFlags,
const uint16_t  sequenceControlCount 
)

reset current construction with a new fresh packet

dataFieldHeader is true by default.

Parameters
versionNumber
appIdSource
appIdDestination
sequenceControlFlags
sequenceControlCount

The documentation for this class was generated from the following files: