Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends
sawyer::Message Class Reference

#include <Message.h>

Inheritance diagram for sawyer::Message:
Inheritance graph

List of all members.

Public Member Functions

uint16_t getChecksum ()
uint8_t getFlags ()
uint8_t getLength ()
uint8_t getLengthComp ()
size_t getPayload (void *buf, size_t max_size)
size_t getPayloadLength ()
size_t getTotalLength ()
uint16_t getType ()
size_t getType (void *buf, size_t max_size)
size_t getTypeLength ()
uint8_t getVersion ()
bool isCommand ()
bool isData ()
bool isRequest ()
bool isValid (char *whyNot=NULL, size_t strLen=0)
 Message ()
 Message (void *input, size_t msg_len)
 Message (const Message &other)
 Message (uint16_t type, uint8_t *payload, size_t payload_len, uint32_t timestamp=0, uint8_t flags=0, uint8_t version=0)
virtual std::ostream & printMessage (std::ostream &stream=std::cout)
void printRaw (std::ostream &stream=std::cout)
void send ()
MessagesendRequest ()
size_t toBytes (void *buf, size_t buf_size)
virtual ~Message ()

Static Public Member Functions

static Messagefactory (void *input, size_t msg_len)
static MessagepopNext ()
static MessagewaitNext (double timeout=0.0)

Public Attributes

uint8_t data [MAX_MSG_LENGTH]
size_t total_len

Static Public Attributes

static const size_t MAX_MSG_LENGTH = 256
static const uint8_t SOH = 0xAA
static const uint8_t STX = 0x55

Protected Types

enum  dataOffsets {

Protected Member Functions

size_t crcOffset ()
uint8_t * getPayloadPointer (size_t offset=0)
void makeValid ()
void setFlags (uint8_t flags)
void setLength (uint8_t len)
void setPayload (void *buf, size_t buf_size)
void setPayloadLength (uint8_t len)
void setType (uint16_t type)
void setVersion (uint8_t version)

Protected Attributes

bool is_sent

Static Protected Attributes

static const uint16_t CRC_INIT_VAL = 0xFFFF
static const size_t CRC_LENGTH = 2
static const size_t HEADER_LENGTH = 8


class Transport

Detailed Description

Definition at line 67 of file Message.h.

Member Enumeration Documentation

enum sawyer::Message::dataOffsets [protected]

Definition at line 83 of file Message.h.

Constructor & Destructor Documentation

Definition at line 77 of file Message.cpp.

sawyer::Message::Message ( void *  input,
size_t  msg_len 

Definition at line 84 of file Message.cpp.

sawyer::Message::Message ( const Message other)

Definition at line 93 of file Message.cpp.

sawyer::Message::Message ( uint16_t  type,
uint8_t *  payload,
size_t  payload_len,
uint32_t  timestamp = 0,
uint8_t  flags = 0,
uint8_t  version = 0 

Definition at line 101 of file Message.cpp.

Definition at line 131 of file Message.cpp.

Member Function Documentation

size_t sawyer::Message::crcOffset ( ) [inline, protected]

Definition at line 107 of file Message.h.

Message * sawyer::Message::factory ( void *  input,
size_t  msg_len 
) [static]

Instantiates the Message subclass corresponding to the type field in raw message data.

inputThe raw message data to instantiate from
msg_lenThe length of input.
An instance of the correct Message subclass

Definition at line 423 of file Message.cpp.

Definition at line 248 of file Message.cpp.

Reimplemented in sawyer::DataSafetySystemStatus.

Definition at line 238 of file Message.cpp.

Definition at line 223 of file Message.cpp.

Definition at line 228 of file Message.cpp.

size_t sawyer::Message::getPayload ( void *  buf,
size_t  buf_size 

Copies message payload into a provided buffer.

bufThe buffer to fill
buf_sizeMaximum length of buf
number of bytes copied.

Definition at line 204 of file Message.cpp.

size_t sawyer::Message::getPayloadLength ( ) [inline]

Definition at line 161 of file Message.h.

uint8_t * sawyer::Message::getPayloadPointer ( size_t  offset = 0) [protected]

Get a pointer to the payload withing this Message's internal storage.

offsetThe offset from the beginning of the payload.
a pointer to this Message's internal storage.

Definition at line 218 of file Message.cpp.

size_t sawyer::Message::getTotalLength ( ) [inline]

Definition at line 168 of file Message.h.

Definition at line 243 of file Message.cpp.

size_t sawyer::Message::getType ( void *  buf,
size_t  max_size 
size_t sawyer::Message::getTypeLength ( ) [inline]

Definition at line 156 of file Message.h.

Definition at line 233 of file Message.cpp.

bool sawyer::Message::isCommand ( ) [inline]

Definition at line 177 of file Message.h.

bool sawyer::Message::isData ( ) [inline]

Definition at line 187 of file Message.h.

bool sawyer::Message::isRequest ( ) [inline]

Definition at line 182 of file Message.h.

bool sawyer::Message::isValid ( char *  whyNot = NULL,
size_t  strLen = 0 

Checks the consistency of this message.

whyNotOptionally, a reason for validation failure will be written here.
strLenLength of the optional whyNot string
true if the message is valid, false otherwise.

Definition at line 329 of file Message.cpp.

void sawyer::Message::makeValid ( ) [protected]

Sets SOH, STX, length, and checksum so that this message becomes valid.

Definition at line 372 of file Message.cpp.

std::ostream & sawyer::Message::printMessage ( std::ostream &  stream = std::cout) [virtual]
void sawyer::Message::printRaw ( std::ostream &  stream = std::cout)

Definition at line 405 of file Message.cpp.

Definition at line 136 of file Message.cpp.

Definition at line 168 of file Message.cpp.

void sawyer::Message::setFlags ( uint8_t  flags) [protected]

Definition at line 267 of file Message.cpp.

void sawyer::Message::setLength ( uint8_t  len) [protected]

Definition at line 253 of file Message.cpp.

void sawyer::Message::setPayload ( void *  buf,
size_t  buf_size 
) [protected]

Set the payload of this message. Modifies the length of the message as necessary, as per setPayloadLength.

See also:
bufBuffer containing the new payload.
buf_sizeLength of buf.

Definition at line 296 of file Message.cpp.

void sawyer::Message::setPayloadLength ( uint8_t  len) [protected]

Changes the payload length of the packet. Does not update packet len/~len fields or the checksum. Call makeValid() to update these fields.

lenThe new payload length

Definition at line 282 of file Message.cpp.

void sawyer::Message::setType ( uint16_t  type) [protected]

Definition at line 272 of file Message.cpp.

void sawyer::Message::setVersion ( uint8_t  version) [protected]

Definition at line 262 of file Message.cpp.

size_t sawyer::Message::toBytes ( void *  buf,
size_t  buf_size 

Copy the complete raw content of this message to a buffer.

bufThe buffer to copy to
buf_sizeThe maximum length of buf
buf on success, NULL on failure

Definition at line 311 of file Message.cpp.

Message * sawyer::Message::waitNext ( double  timeout = 0.0) [static]

Friends And Related Function Documentation

friend class Transport [friend]

Definition at line 99 of file Message.h.

Member Data Documentation

const uint16_t sawyer::Message::CRC_INIT_VAL = 0xFFFF [static, protected]

Definition at line 78 of file Message.h.

const size_t sawyer::Message::CRC_LENGTH = 2 [static, protected]

Definition at line 77 of file Message.h.

Definition at line 72 of file Message.h.

const size_t sawyer::Message::HEADER_LENGTH = 8 [static, protected]

Definition at line 80 of file Message.h.

bool sawyer::Message::is_sent [protected]

Definition at line 97 of file Message.h.

const size_t sawyer::Message::MAX_MSG_LENGTH = 256 [static]

Definition at line 70 of file Message.h.

Definition at line 102 of file Message.h.

const uint8_t sawyer::Message::SOH = 0xAA [static]

Definition at line 103 of file Message.h.

const uint8_t sawyer::Message::STX = 0x55 [static]

Definition at line 104 of file Message.h.

Definition at line 74 of file Message.h.

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

Author(s): Mike Purvis , Paul Bovbel , Carl
autogenerated on Sat Jun 8 2019 20:32:33