DUNE: Uniform Navigational Environment  2022.04.0
DUNE::IMC::Formation Class Reference

Detailed Description

Public Types

enum  TypeEnum { FC_REQUEST, FC_REPORT }
 
enum  OperationEnum {
  OP_START, OP_STOP, OP_READY, OP_EXECUTING,
  OP_FAILURE
}
 
enum  FormationReferenceFrameEnum { OP_EARTH_FIXED, OP_PATH_FIXED, OP_PATH_CURVED }
 

Public Member Functions

 Formation (void)
 
Formationclone (void) const
 
void clear (void)
 
bool fieldsEqual (const Message &msg__) const
 
int validate (void) const
 
uint8_t * serializeFields (uint8_t *bfr__) const
 
uint16_t deserializeFields (const uint8_t *bfr__, uint16_t size__)
 
uint16_t reverseDeserializeFields (const uint8_t *bfr__, uint16_t size__)
 
uint16_t getId (void) const
 
const char * getName (void) const
 
unsigned getFixedSerializationSize (void) const
 
unsigned getVariableSerializationSize (void) const
 
void fieldsToJSON (std::ostream &os__, unsigned nindent__) const
 
- Public Member Functions inherited from DUNE::IMC::Message
 Message (void)
 
virtual ~Message (void)
 
double setTimeStamp (double ts)
 
double setTimeStamp (void)
 
double getTimeStamp (void) const
 
uint16_t getSource (void) const
 
void setSource (uint16_t src)
 
uint8_t getSourceEntity (void) const
 
void setSourceEntity (uint8_t src_ent)
 
uint16_t getDestination (void) const
 
void setDestination (uint16_t dst)
 
uint8_t getDestinationEntity (void) const
 
void setDestinationEntity (uint8_t dst_ent)
 
virtual uint16_t getSubId (void) const
 
virtual void setSubId (uint16_t subid)
 
virtual fp64_t getValueFP (void) const
 
virtual void setValueFP (fp64_t val)
 
unsigned getSerializationSize (void) const
 
unsigned getPayloadSerializationSize (void) const
 
void toJSON (std::ostream &os) const
 
void toText (std::ostream &os) const
 
bool operator== (const Message &other) const
 
bool operator!= (const Message &other) const
 

Static Public Member Functions

static uint16_t getIdStatic (void)
 

Public Attributes

std::string formation_name
 
uint8_t type
 
uint8_t op
 
std::string group_name
 
std::string plan_id
 
std::string description
 
uint8_t reference_frame
 
MessageList< VehicleFormationParticipantparticipants
 
fp32_t leader_bank_lim
 
fp32_t leader_speed_min
 
fp32_t leader_speed_max
 
fp32_t leader_alt_min
 
fp32_t leader_alt_max
 
fp32_t pos_sim_err_lim
 
fp32_t pos_sim_err_wrn
 
uint16_t pos_sim_err_timeout
 
fp32_t converg_max
 
uint16_t converg_timeout
 
uint16_t comms_timeout
 
fp32_t turb_lim
 
std::string custom
 

Protected Member Functions

void setTimeStampNested (double value__)
 
void setSourceNested (uint16_t value__)
 
void setSourceEntityNested (uint8_t value__)
 
void setDestinationNested (uint16_t value__)
 
void setDestinationEntityNested (uint8_t value__)
 

Additional Inherited Members

- Protected Attributes inherited from DUNE::IMC::Message
Header m_header
 

Member Enumeration Documentation

◆ FormationReferenceFrameEnum

Formation Reference Frame.

Enumerator
OP_EARTH_FIXED 

Earth Fixed.

OP_PATH_FIXED 

Path Fixed.

OP_PATH_CURVED 

Path Curved.

◆ OperationEnum

Operation.

Enumerator
OP_START 

Start.

OP_STOP 

Stop.

OP_READY 

Ready.

OP_EXECUTING 

Executing.

OP_FAILURE 

Failure.

◆ TypeEnum

Type.

Enumerator
FC_REQUEST 

Request.

FC_REPORT 

Report.

Constructor & Destructor Documentation

◆ Formation()

DUNE::IMC::Formation::Formation ( void  )

Member Function Documentation

◆ clear()

void DUNE::IMC::Formation::clear ( void  )
virtual

Reset message's fields.

Implements DUNE::IMC::Message.

References DUNE::IMC::EntityState::description.

◆ clone()

◆ deserializeFields()

uint16_t DUNE::IMC::Formation::deserializeFields ( const uint8_t *  bfr,
uint16_t  len 
)
virtual

Deserialize message fields from a packet.

Parameters
bfrstream of bytes (packet)
lenlength of the byte stream.
Returns
number of bytes processed.

Implements DUNE::IMC::Message.

References DUNE::IMC::EntityState::description, and DUNE::IMC::deserialize().

◆ fieldsEqual()

bool DUNE::IMC::Formation::fieldsEqual ( const Message other) const
virtual

◆ fieldsToJSON()

void DUNE::IMC::Formation::fieldsToJSON ( std::ostream &  os,
unsigned  indent_level 
) const
virtual

Output the message fields (excluding header) in JSON format.

Parameters
osoutput stream.
indent_levelnumber of indentation spaces.

Reimplemented from DUNE::IMC::Message.

References DUNE::IMC::EntityState::description, and DUNE::IMC::toJSON().

◆ getFixedSerializationSize()

unsigned DUNE::IMC::Formation::getFixedSerializationSize ( void  ) const
inlinevirtual

Get the fixed amount of bytes required to properly serialize this message (variable length fields are not included).

Returns
amount of variable bytes required to serialize the message.

Reimplemented from DUNE::IMC::Message.

◆ getId()

uint16_t DUNE::IMC::Formation::getId ( void  ) const
inlinevirtual

Retrieve message's identification number.

Returns
message's identification number.

Implements DUNE::IMC::Message.

References getIdStatic().

◆ getIdStatic()

static uint16_t DUNE::IMC::Formation::getIdStatic ( void  )
inlinestatic

Referenced by getId().

◆ getName()

const char* DUNE::IMC::Formation::getName ( void  ) const
inlinevirtual

Retrieve message's name.

Returns
message's name.

Implements DUNE::IMC::Message.

◆ getVariableSerializationSize()

unsigned DUNE::IMC::Formation::getVariableSerializationSize ( void  ) const
inlinevirtual

Get the variable amount of bytes required to properly serialize this message (only the variable fields are included).

Returns
amount of variable bytes required to serialize the message.

Reimplemented from DUNE::IMC::Message.

References DUNE::IMC::EntityState::fieldsToJSON(), DUNE::IMC::getSerializationSize(), DUNE::IMC::MessageList< Type >::getSerializationSize(), DUNE::IMC::Message::setDestinationEntityNested(), DUNE::IMC::Message::setDestinationNested(), DUNE::IMC::Message::setSourceEntityNested(), DUNE::IMC::Message::setSourceNested(), and DUNE::IMC::Message::setTimeStampNested().

◆ reverseDeserializeFields()

uint16_t DUNE::IMC::Formation::reverseDeserializeFields ( const uint8_t *  bfr,
uint16_t  len 
)
virtual

Deserialize message fields from a packet, swapping the byte order.

Parameters
bfrstream of bytes (packet)
lenlength of the byte stream.
Returns
number of bytes processed.

Implements DUNE::IMC::Message.

References DUNE::IMC::EntityState::description, DUNE::IMC::deserialize(), and DUNE::IMC::reverseDeserialize().

◆ serializeFields()

uint8_t * DUNE::IMC::Formation::serializeFields ( uint8_t *  bfr__) const
virtual

◆ setDestinationEntityNested()

void DUNE::IMC::Formation::setDestinationEntityNested ( uint8_t  value)
protectedvirtual

Set the destination entity of nested messages.

Parameters
[in]valuedestination entity.

Reimplemented from DUNE::IMC::Message.

◆ setDestinationNested()

void DUNE::IMC::Formation::setDestinationNested ( uint16_t  value)
protectedvirtual

Set the destination address of nested messages.

Parameters
[in]valuedestination address.

Reimplemented from DUNE::IMC::Message.

◆ setSourceEntityNested()

void DUNE::IMC::Formation::setSourceEntityNested ( uint8_t  value)
protectedvirtual

Set the source entity of nested messages.

Parameters
[in]valuesource entity.

Reimplemented from DUNE::IMC::Message.

◆ setSourceNested()

void DUNE::IMC::Formation::setSourceNested ( uint16_t  value)
protectedvirtual

Set the source address of nested messages.

Parameters
[in]valuesource address.

Reimplemented from DUNE::IMC::Message.

◆ setTimeStampNested()

void DUNE::IMC::Formation::setTimeStampNested ( double  value)
protectedvirtual

Set the timestamp of nested messages.

Parameters
[in]valuetimestamp.

Reimplemented from DUNE::IMC::Message.

◆ validate()

int DUNE::IMC::Formation::validate ( void  ) const
virtual

Validate the message's contents.

Returns
negative value in case of a valid message or a positive value indicating the position of the invalid message field.

Implements DUNE::IMC::Message.

Member Data Documentation

◆ comms_timeout

uint16_t DUNE::IMC::Formation::comms_timeout

Communications time-out.

Referenced by fieldsEqual().

◆ converg_max

fp32_t DUNE::IMC::Formation::converg_max

Convergence threshold.

Referenced by fieldsEqual().

◆ converg_timeout

uint16_t DUNE::IMC::Formation::converg_timeout

Convergence time-out.

Referenced by fieldsEqual().

◆ custom

std::string DUNE::IMC::Formation::custom

Custom settings for maneuver.

Referenced by fieldsEqual().

◆ description

std::string DUNE::IMC::Formation::description

Plan Description.

Referenced by fieldsEqual().

◆ formation_name

std::string DUNE::IMC::Formation::formation_name

Formation Name.

Referenced by fieldsEqual().

◆ group_name

std::string DUNE::IMC::Formation::group_name

Target Group Name.

Referenced by fieldsEqual().

◆ leader_alt_max

fp32_t DUNE::IMC::Formation::leader_alt_max

Formation Leader Maximum Altitude.

Referenced by fieldsEqual().

◆ leader_alt_min

fp32_t DUNE::IMC::Formation::leader_alt_min

Formation Leader Minimum Altitude.

Referenced by fieldsEqual().

◆ leader_bank_lim

fp32_t DUNE::IMC::Formation::leader_bank_lim

Formation Leader Bank Limit.

Referenced by fieldsEqual().

◆ leader_speed_max

fp32_t DUNE::IMC::Formation::leader_speed_max

Formation Leader Maximum Speed.

Referenced by fieldsEqual().

◆ leader_speed_min

fp32_t DUNE::IMC::Formation::leader_speed_min

Formation Leader Minimum Speed.

Referenced by fieldsEqual().

◆ op

uint8_t DUNE::IMC::Formation::op

Operation.

Referenced by fieldsEqual().

◆ participants

MessageList<VehicleFormationParticipant> DUNE::IMC::Formation::participants

Formation Participants.

Referenced by fieldsEqual().

◆ plan_id

std::string DUNE::IMC::Formation::plan_id

Formation Plan ID.

Referenced by fieldsEqual().

◆ pos_sim_err_lim

fp32_t DUNE::IMC::Formation::pos_sim_err_lim

Position mismatch limit.

Referenced by fieldsEqual().

◆ pos_sim_err_timeout

uint16_t DUNE::IMC::Formation::pos_sim_err_timeout

Position mismatch time-out.

Referenced by fieldsEqual().

◆ pos_sim_err_wrn

fp32_t DUNE::IMC::Formation::pos_sim_err_wrn

Position mismatch threshold.

Referenced by fieldsEqual().

◆ reference_frame

uint8_t DUNE::IMC::Formation::reference_frame

Formation Reference Frame.

Referenced by fieldsEqual().

◆ turb_lim

fp32_t DUNE::IMC::Formation::turb_lim

Turbulence limit.

Referenced by fieldsEqual().

◆ type

uint8_t DUNE::IMC::Formation::type

Type.

Referenced by fieldsEqual().

Collaboration diagram for DUNE::IMC::Formation:
Collaboration graph